Zitat von
x000x:
... Gibt es bei TQuery nicht auch AsDateTime? dann brauchst du dein Datum nicht noch in einen String umwandeln...
Hai davar,
wie x000x richtig anmerkte solltest Du zum setzen von Parametern immer versuchen den richtigen Datentyp zu verwenden.
Dies macht es nicht nur leichter für dich sondern Du hast durch Typumwandlungen auch immer eine unnötige Fehlerquelle erzeugt.
Dein Code könnte dann zum Beispiel so aussehen:
Delphi-Quellcode:
procedure TForm1.btn_SqlTestClick(Sender: TObject);
begin
with DBs.QHTrHin
do
begin
Close;
// Verbindung schliessen
ParamCheck := True;
// Parameter benutzen
SQL.Text := '
SELECT * FROM DBs\Flugdate WHERE DatumHin = :datum';
// SQL setzen
Params.Items[0].AsDate := date;
// Ersten Parameter setzen
Open;
// Abfrage durchführen
ShowMessage(FieldByName('
Datum').AsString);
// Feld "Datum" als String
Close;
// Und nach dem arbeiten wieder schliessen
end;
end;
Gerade bei Datumsfeldern kannst Du dir bei
SQL-Abfragen ganz schnell ein Eigentor schiessen.
Jede Datenbank erwartet ein Datum, wenn es als String in dem
Query steht, in dem vom
DBMS vorgegebenen Format.
Bei
mySQL wäre das: YYYY-MM-DD
Bei
MSSQL ist es das in den Regionaloptionen des Rechners auf dem der Server läuft eingestellen Format
usw.
usw.
Datum solltest Du alles daran setzen ein Datum immer als TDate bzw. TDateTime an die
DB zu senden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"