¿Cómo omitir un elemento en la lista JSL en una consulta SQL si no existe?Hola a todos,
Tengo un script que consulta desde la lista JSL. Sin embargo, recibe un error cada vez que algo no existe en la base de datos. ¿Hay alguna manera de omitir lo que no existe y pasar al siguiente valor de la lista?
Tengo este ejemplo:
NameList = {"John","Jane","Anna","Dominic"};
NameItems = ConcatItems(NameList ,",");
Eval (Parse (Evalinsert("\[
db= Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)")
]\")));;Entonces, por ejemplo, John no existe, debería saltarse e ir con Jane, Anna o Dominic.
Automatización y secuencias de comandosventanasRe: ¿Cómo omitir un elemento en la lista JSL en una consulta SQL si no existe?Un operador IN no debería fallar a menos que se encuentre ninguno de los valores de la lista. Debería poder proteger este problema con una función Try()
Eval (Parse (Evalinsert("\[
db= Try( Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)") )
]\")));
Además, según mi experiencia, su operador IN debe encerrar los elementos de carácter dentro de la llamada entre comillas.
WHERE name IN ('John','Jane','Anna','Dominic')
Cambiar su JSL al siguiente cambiará la llamada del operador IN al formulario anterior
NameList = {"John","Jane","Anna","Dominic"};
NameItems = "'" || ConcatItems(NameList ,"','") || "'";Re: ¿Cómo omitir un elemento en la lista JSL en una consulta SQL si no existe?*editar
No vi la respuesta de Jim. Buena respuesta, eso sí.
No parece que la lista de nombres tenga el formato adecuado.
Juan, Jane, Anna, Dominic
Debería ser "John", "Jane", "Anna", "Dominic"
Si desea utilizar Concat Items(), deberá hacer algo como esto:
NameItems = "'" || Concat Items(NameList,"','") || "'"