Unexpected end of command in statement

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

smguenther
**
Beiträge: 23
Registriert: So, 22.04.2007 14:07

Unexpected end of command in statement

Beitrag von smguenther »

Hallo,

ich versuche mit den folgende Zeilen eines Makros die Tabelle datum meiner DB abzufragen, das Kriterium ist das Feld Datum. Die Namen der Tabelle und des Feldes habe ich mehrfach kontrolliert.

sTabName = "datum"
feld = "Datum"
skrit = " WHERE """ & feld & """ LIKE '%' "

sSQL= "SELECT * FROM """ & sTabName & """ " & skrit & """"

ResultSet=Statement.executeQuery(sSQL)

Beim Ausführen des Makros erhalte ich die Fehlermeldung

Message: Unexpected end of command in statement[SELECT * FROM "datum" WHERE "Datum" LIKE %' "]

Von dieser Meldung her sieht es ja so aus, als wäre das letzte doppelte Anführungszeichen vor der eckigen Klammer zuviel.
Wenn ich dieses Zeichen am im String sSQL entferne erhalet ich eine Fehlermeldung. Auch der String skrit scheint mir korrektur zu sein.

Hat eine(r) von Euch eine Idee, woran es liegt?

Danke,

Stefan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Unexpected end of command in statement

Beitrag von komma4 »

..vielleicht daran, dass "LIKE %" -Prozent what- kein Vergleich ist?


Wenn Dein Feld DATUM das Format date hat, solltest Du etwas formulieren, wie:

Code: Alles auswählen

 WHERE "DATUM" > to_date('31.07.2007 00:00:00', 'DD.MM.YYYY HH24:MI:SS')

Die verwendbare Syntax (und die Konvertierungs-Funktionen) sind auf jeden Fall abhängig von der verwendeten DB-engine und dem benutzen Verbindungstreiber (ODBC/JDBC/...). Dieses Codebeispiel gilt bspw. für eine ORACLE-Datenbank [hier: nicht mit OOo angebunden!]

Wenn Du die interne HSQLDB nutzt findest Du eine Dokumentation auf http://www.hsqldb.org
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
smguenther
**
Beiträge: 23
Registriert: So, 22.04.2007 14:07

Re: Unexpected end of command in statement

Beitrag von smguenther »

Hi,
komma4 hat geschrieben:..vielleicht daran, dass "LIKE %" -Prozent what- kein Vergleich ist?
Mist, zu lange mit MySQL gearbeitet.
komma4 hat geschrieben: Wenn Dein Feld DATUM das Format date hat, solltest Du etwas formulieren, wie:

Code: Alles auswählen

 WHERE "DATUM" > to_date('31.07.2007 00:00:00', 'DD.MM.YYYY HH24:MI:SS')
ich habe das Beispiel einmal etwas einfacher gestaltet, um mit meinem Fehler zu nähern:

dummy="abc"
sTabName = "datum"
feld = "Feld"

skrit = " WHERE """ & feld & """='" & dummy & "' "
sSQL= "SELECT * FROM """ & sTabName & """ " & skrit & """"

Feld ist ein ganz normales Textfeld, mit bisher zwei angelegten Werten (abc , xyz)
Jetzt lautet die Fehlermeldung aber immer noch:

Message: Unexpected end of command in statement [SELECT * FROM "datum" WHERE "Feld"='abc' "]

Wenn ich in Sachen SQL nicht gerade in Folge des Mittagessens völlig auf dem Schlauch stehe, dann ist die Syntax doch richtig, oder nicht?

Gruß & Danke,

Stefan
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Unexpected end of command in statement

Beitrag von komma4 »

Dein sSQL-string beginnt mit SELECT und endet mit """" ...

Vielleicht auch vorne """" ?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
smguenther
**
Beiträge: 23
Registriert: So, 22.04.2007 14:07

Re: Unexpected end of command in statement [GELÖST]

Beitrag von smguenther »

komma4 hat geschrieben:Dein sSQL-string beginnt mit SELECT und endet mit """" ...

Vielleicht auch vorne """" ?
;-)) ne, so einfach läßt sich eine Makro nicht austricksen.

Hier die Lösung, auch mit funktionierendem LIKE und %:

sTabName = "datum"
feld = "Feld"
krit="LIKE '%'"
skrit = " WHERE """ & feld & """" & krit & ""
sSQL= "select """ & feld & """ from """ & sTabName & """" & skrit & ""

Wenn ich mich richtig erinnere - ich habe einige Male skrit und sSQL verändert, dann lag es an den Anführungszeichen in skrit.
Ich bin mir zwar nicht sicher, ob es nicht auch eine einfachere Lösung gibt, aber so funktioniert es erst einmal.

Gruß und Danke für die Hilfe,

Stefan
Antworten