![]() |
AW: Datum aus voriger Zeile zum berechnen
|
AW: Datum aus voriger Zeile zum berechnen
Zitat:
Du könntest über Delphi mal abfragen:
Code:
Ich hab im Kopf, die sqlite ist bei Firedac integriert, aber da bin ich mir wirklich nicht sicher. Hier gibt es sicher jemand, der das genau weiß.
select sqlite_version();
Hier noch was gefunden: ![]() |
AW: Datum aus voriger Zeile zum berechnen
Also mein SQL-Statement ist so wie hier gepostet mit Delphi 10.3.2 und FireDAC lauffähig.
|
AW: Datum aus voriger Zeile zum berechnen
Mal nebenebei: Pack das over mal nicht in eine gesonderte Zeile.
Dein Code:
Delphi-Quellcode:
Richtig wäre:
...
QText:=QText+'julianday(lag(QEchtDat,1,QEchtDat) over (order by QEchtDat)) Tage '; ...
Delphi-Quellcode:
Oder:
...
QText:=QText+'julianday(lag(QEchtDat,1,QEchtDat) over (order by QEchtDat)) Tage '; ...
Delphi-Quellcode:
Oder:
...
QText:=QText+'julianday(lag(QEchtDat,1,QEchtDat)' + 'over (order by QEchtDat)) Tage '; ...
Delphi-Quellcode:
Schau mal ob sich damit dein Problem lösen lässt.
...
QText:=QText+'julianday(lag(QEchtDat,1,QEchtDat)'; QText:=QText+'over (order by QEchtDat)) Tage '; ... |
AW: Datum aus voriger Zeile zum berechnen
Also SQL ist nicht Zeilen sensitiv. Aber Leerzeichen zwischen den Schlüsselwörtern, Feldnamen und Funktionen können nicht schaden!
|
AW: Datum aus voriger Zeile zum berechnen
SQL ist nicht Zeilensensitiv, ABER bei der Compilierung in Delphi gibt es Probleme wenn du innerhalb eines Strings die Zeile wechselst, was er laut/ copy/paste tut:
Delphi-Quellcode:
...
QText:=QText+'julianday(lag(QEchtDat,1,QEchtDat) //hier endet die Zeile ohne ' und ; oder + um den String abzuschließen over (order by QEchtDat)) Tage '; // hier geht der String weiter ohne ihn mit ' zu beginnen bzw. "over" kennt Delphi so in der Form natürlich nicht (da falsch interpretiert) ... |
AW: Datum aus voriger Zeile zum berechnen
Du hast Recht, hab ich übersehen!
|
AW: Datum aus voriger Zeile zum berechnen
Zitat:
Zitat:
|
AW: Datum aus voriger Zeile zum berechnen
Hast recht @Schokohase.
Habe aktuell das gleiche Problem -.- und die Abfrage passt in der Workbench einwandfrei, nur über den Query bekomme ich den Fehler. FDQuery.Open('SELECT * FROM ' + sDatenbank + ' WHERE seriennummer = ' + sSNR); Workbench: Einwandfrei Delphi (FDQuery.SQL): Einwandfrei Programm zur Laufzeit: Fehler FEHLER (zumindest bei mir) gefunden. Ich hatte die Datenbank per Bedingung definiert, welche aber irgendwie ins leere lief und daher leer/undefiniert war. Das führte zu meinem Fehler, evtl. hat der TE ein ähnliches Problem? AM besten mal per Showmessage(QText); deine Variablen der Query Abfrage prüfen |
AW: Datum aus voriger Zeile zum berechnen
So, musste erst mal etwas arbeiten.
Selbst mit der Abfrage in einem Zug und + kommt der gleiche Syntax Fehler bei "over" . Die Formatierung wird hier verändert ! QText:='select QEchtDat,wer,nummer,julianday(QEchtDat) -'+ ' julianday(lag(QEchtDat,1,QEchtDat) over (order by QEchtDat)) as Tage '+ 'FROM zwischen Where Jahr = "2019" and nummer = "139" ORDER BY QEchtDat'; Mit Showmessage(QText)wird alles, wie eingegeben (mit leerzeichen an den richtigen Stellen) angezeigt. Was kann ich noch testen um den Fehler zu finden ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz