Wie verwende ich evalinsert für eine SQL-Abfrage?Hallo zusammen,
Ich versuche eine Abfrage mithilfe einer Liste und einer Variablen durchzuführen. Ich kann jedoch nicht herausfinden, wie ich die dateNow-Variable abfragen kann. Ich bekomme immer wieder diesen Fehler:
Beim Versuch, eine Abfrage auszuführen, ist ein Fehler aufgetreten: [SQLState 42601] FEHLER: Syntaxfehler bei oder nahe „00“
ZEILE 4: und test_date_time zwischen 12.03.2024 00:00:00 Uhr und 12.03.2024...
Hier ist mein Beispielskript:
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") )
]\")));;Automatisierung und SkripterstellungWindowsBetreff: Wie verwende ich evalinsert für eine SQL-Abfrage?Es gibt viele kleine Tippfehler in Ihrem Skript, die verhindern, dass es funktioniert. Darüber hinaus müssen Sie Concat Items verwenden, um von einer Liste zu einer Zeichenfolge zu gelangen. Um das Debuggen etwas einfacher zu machen, erstellen Sie Ihre Abfragezeichenfolge außerhalb von Open Database und verwenden Sie dann diese neue Zeichenfolge darin.
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);
Ich denke auch, dass dies im Grunde schon zweimal beantwortet wurde
Wie überspringe ich ein Element in der JSL-Liste in einer SQL-Abfrage, wenn es nicht vorhanden ist? und Wie man in SQL mithilfe einer Liste aus JSL Abfragen durchführt
Betreff: Wie verwende ich evalinsert für SQL-Abfragen?Ja, aber ich verstehe nicht, warum ich immer wieder diese Fehlermeldung erhalten habe.
Beim Ausführen einer Abfrage ist ein Fehler aufgetreten: [SQLState 42601] FEHLER: Syntaxfehler bei oder in der Nähe von "00"
ZEILE 10: und test_date_time zwischen 03.12.2024 00:00:00 Uhr und 03.12....