Hallo Leute,
man merkt wohl, dass ich wieder hart am Arbeiten bin
Die Frage wurde schon einige Male gestellt, habe die verschiedenen Varianten auch ausprobiert - geht aber immer noch nicht.
Also folgende Abfrage:
Delphi-Quellcode:
DecodeDate(DTPvon.date, Jahr, Monat, Tag);
sdatumvon:= inttostr(Jahr) + '
-' + inttostr(Monat) + '
-' + inttostr(Tag);
query.SQL.text:= '
SELECT * FROM `arbeitszeit` WHERE datum > ' + sdatumvon;
geht nicht.
Ebenso auch das hier:
Delphi-Quellcode:
DecodeDate(DTPvon.date, Jahr, Monat, Tag);
sdatumvon:= inttostr(Jahr) + '
-' + inttostr(Monat) + '
-' + inttostr(Tag);
DecodeDate(DTPbis.date, Jahr, Monat, Tag);
sdatumbis:= inttostr(Jahr) + '
-' + inttostr(Monat) + '
-' + inttostr(Tag);
query.SQL.text:= '
SELECT * FROM `arbeitszeit` WHERE datum BETWEEN ' + sdatumvon + '
AND ' + sdatumbis;
Das Datum wird dabei überhaupt nicht berücksichtigt.
Mit
showmessage(query.Fieldbyname('datum').AsString);
wird mir z.B. "15.05.2006" angezeigt. Sollte hier nicht eigentlich das Format YYYY-MM-DD verwendet werden? Und wenn ich das datum nicht umkodiere, sondern direkt "DTPvon.date" nehme, bekomme ich auch eine Fehlermeldung, diesmal, dass die
SQL-Syntax nicht korrekt ist..
Jetzt hab ich mal zum Test
query.SQL.text:= 'SELECT * FROM `arbeitszeit` WHERE datum < ' + sdatumvon;
eingegeben und nun werden mir alle Datensätze angezeigt, in denen das Datum leer ist..
Irgendwie weiss ich nicht mehr weiter..
MfG
davar