Thema: Delphi Tutorial - Query

Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Tutorial - Query

  Alt 3. Nov 2005, 06:40
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"
  Mit Zitat antworten Zitat