Come utilizzare evalinsert su query SQL?Ciao a tutti,
Sto cercando di eseguire una query utilizzando un elenco e una variabile. Tuttavia, non riesco a capire come interrogare la variabile dateNow. Continuo a ricevere questo errore:
Si è verificato un errore durante il tentativo di eseguire una query: [SQLState 42601] ERRORE: errore di sintassi in corrispondenza o vicino a "00"
RIGA 4: e test_date_time tra il 03/12/2024 00:00:00 e il 03/12/...
Ecco il mio script di esempio:
namecol= {"James", "John", "Anna", "Rose")
dateNow = "03/12/2024"
eval(parse(evalinsert("\[
dt_qst = Try ( Open Database( "DSN=dbs;UID=uname;PWD=pw;APP=JMP;DATABASE=db;",
"select name, age, address, test_date_time
from db
where name in (^namecol^)
and test_date_time between ^dateNow^ 00:00:00 AM and ^dateNow^ 11:59:59 PM'",
"rawdata") )
]\")));;Automazione e scriptingfinestreRi: Come utilizzare evalinsert su query SQL?Ci sono molti piccoli errori di battitura nel tuo script che ne impediscono il funzionamento. Al di fuori di ciò è necessario utilizzare Concat Items per passare dall'elenco a una stringa. Inoltre, per rendere un po' più semplice il debug, crea la stringa di query al di fuori di Open Database e quindi utilizza la nuova stringa al suo interno.
Names Default To Here(1);
namecol= {"James", "John", "Anna", "Rose"};
dateNow = "03/12/2024";
sql_template = "\[
select
name,
age,
address,
test_date_time
from db
where
name in ('^namestr^')
and test_date_time between ^dateNow^ 00:00:00 AM and ^dateNow^ 11:59:59 PM'
]\";
namestr = Concat Items(namecol, "', '");
sql_str = Eval Insert(sql_template);
Penso anche che a questo sia già stata data risposta sostanzialmente già due volte
Come saltare l'elemento nell'elenco JSL nella query SQL se non esiste? e Come eseguire query in SQL utilizzando l'elenco da JSL
Re: Come usare evalinsert su una query SQL?Sì, ma non capisco perché continuo a ricevere questo errore
Si è verificato un errore durante il tentativo di esecuzione di una query: [SQLState 42601] ERRORE: errore di sintassi in corrispondenza o in prossimità di "00"
LINEA 10: e test_date_time tra il 03/12/2024 00:00:00 AM e il 03/12...