Könnte ein Experte mein jsl-Skript überprüfen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe versucht, ein einfaches jsl-Skript zum Abrufen von Daten aus einer SQL-Datenbank mit einer Funktionalität zum Auswählen von Daten aus einem festgelegten Zeitrahmen zu schreiben. Nach einigen Überprüfungen kann ich den Fehler jedoch immer noch nicht feststellen. Der Skript-Debugger sagt - [Microsoft] [ODBC SQL Server-Treiber] [SQL Server] Nicht geschlossenes Anführungszeichen nach der Zeichenfolge ''.
Könnte mir jemand helfen, herauszufinden, wo in meinem Skript falsch ist?
// Dieses Skript wurde geschrieben, um Daten innerhalb eines bestimmten Zeitraums abzurufen
start_time _ = "23.02.2015 12:00:00";
end_time _ = "24.02.2015 12:00:00";
Open Database ("DSN =; Description =; UID =; PWD =; APP = JMP; WSID =; DATABASE =")
"SELECT * FROM dbo.WORKWEEK
WHERE ((dCreated> = '", start_time,"')
AND (dCreated <= '", end_time,"'))
ORDER BY dCreated ",
"Aktualisierte Tabelle"
)
dCreated ist die Spalte aus der Datenbank, in der Zeitinformationen bereitgestellt wurden. Es handelt sich um einen numerischen Datentyp, eine fortlaufende Modellierungsart, und das Format ist bereits auf m / d / y / h: m: s eingestellt
Danke vielmals,
Re: Könnte ein Experte mein jsl-Skript überprüfen?C Hales ist richtig - die beiden Techniken ergänzen sich. Sie können verwenden evalinsert mit Variablen, die von ^ -Zeichen umgeben sind, um denselben Effekt wie die Verkettung von Zeichenfolgen zu erzielen. Aber das ist nicht dasselbe.
Ich nutze evalinsert gerne, weil der Code dadurch klarer erscheint, wo Sie Variablen in einen String einfügen müssen.
Re: Könnte ein Experte mein jsl-Skript überprüfen? Listen und Ausdrücke ist Teil der Online-Hilfe für JSL; Es gibt auch einen integrierten Satz von Beispielen in Help-> Scripting Index, obwohl dieses spezielle Beispiel nicht sehr detailliert ist. Hilfe-> Bücher-> Scripting Guide ist das PDF-Buch auf Ihrem Computer und enthält ein besseres Beispiel.
Ich würde sagen, die beiden Techniken ergänzen sich, und in diesem speziellen Fall kann EvalInsert Ihre JSL verständlicher machen. Sie erreichen dasselbe auf sehr unterschiedliche Weise.
Re: Könnte ein Experte mein jsl-Skript überprüfen?Hi PMroz,
Tut das EVALINSERT hat die gleiche Funktionalität / Bedeutung wie "||?
Bedeutet es ^ gleich "||?
Vielen Dank,
Re: Könnte ein Experte mein jsl-Skript überprüfen?Ich benutze EVALINSERT, um die SQL-Anweisung sauberer zu gestalten. Um es zu verwenden, schließen Sie alle Variablen, die Sie auswerten möchten, in ^ -Zeichen ein.
// Dieses Skript wurde geschrieben, um Daten innerhalb eines bestimmten Zeitraums abzurufen
Startzeit_ = "23.02.2015 12:00:00" ;
end_time_ = "24.02.2015 12:00:00" ;
sql_statement = evalinsert (
"SELECT * FROM dbo.WORKWEEK
WO dCreated> = '^ start_time_ ^'
AND dCreated <= '^ end_time_ ^'
BESTELLEN VON dCreated " ) ;
Datenbank öffnen (
"DSN =; Beschreibung =; UID =; PWD =; APP = JMP; WSID =; DATABASE =" .
sql_statement .
"Aktualisierte Tabelle"
) ;
Re: Könnte ein Experte mein jsl-Skript überprüfen?Vielen Dank Craige
Re: Könnte ein Experte mein jsl-Skript überprüfen? "SELECT * FROM dbo.WORKWEEK
WHERE ((dCreated> = '"|| start_time_ ||"')
AND (dCreated <= '"|| end_time_ ||"'))
BESTELLEN VON dCreated "
/ *:
"SELECT * FROM dbo.WORKWEEK
WO ((dCreated> = '23.02.2015 12:00:00')
AND (dCreated <= '24.02.2015 12:00:00'))
BESTELLEN VON dCreated "
Verwenden Sie || für die Stringverkettung in JSL. Ich habe das Leerzeichen zwischen dem Apostroph und dem Anführungszeichen eingefügt, damit ich sie besser sehen kann. Sie werden es höchstwahrscheinlich entfernen müssen.