Zitat von
Klarabella:
Wie mache ich das? Wie erstelle ich die Parameter und wie übergebe ich sie?
Ich würde in Deinem Fall folgende Reihenfolge vorschlagen:
- TQuery.SQL.Text zuweisen
- Parameter zuweisen (Datum inkl. Zeit mit AsDateTime oder Datum mit der Zeit 00:00:00 mit AsDate)
- TQuery öffnen
Wenn Du zuerst Parameter zuweist, kann es passieren, dass beim zuweisen des
SQL.Text die Parameter verloren gehen.
AsDate, AsTime und As DateTime haben alle den Typ TDateTime.
Wenn Du nur eine Datum (Uhrzeit = '00:00:00') hast, verwende ParamByName('...').AsDate.
Wenn Du nur eine Uhrzeit hast, verwende ParamByName('...').AsTime.
Wenn Du einen Wert mit Datum und Uhrzeit hast, verwende ParamByName('...').AsDateTime.
Ich würde kein Datum mit AsTime übergeben.
Das mag zwar funktionieren, aber in einer anderen Delphi Version z.B. D2006 kann das schon anders sein.
Ich verwende daher grundsätzlich AsDateTime.
Delphi-Quellcode:
sqlBefehl1 := 'SELECT * FROM Garantie_View WHERE (ablaufdatum BETWEEN ' +
':startdatum AND :enddatum)';
qryDatenbank.SQL.Text := sqlBefehl1;
qryDatenbank.ParamByName('startdatum').AsDate := Date;
qryDatenbank.ParamByName('enddatum').AsDateTime := StrToDateTime(m_end_Datum);