Warum wandelst du die beiden DateTime-Werte für deine Datumsparameter in deinem SELECT-Statement noch einmal in ein DateTime?
Die Eigenschaft Prepared musst du jedesmal auf True setzen, wenn du Parameter geändert hast!
Delphi-Quellcode:
Bericht_query.close;
bericht_project.Open;
//Qguar_Abfragen();
Bericht_query.SQL.Clear;
// Warum willst du ein DateTime in ein DateTime casten???
Bericht_query.SQL.Text := 'SELECT trunc(Date_Completed) as Datum from qguaradm.DELIVERIES d where d.Firm_ID=''32770'' and d.Status <>''--'' and trunc(d.date_completed) between trunc(:Datum_von) and trunc(:Datum_bis)';
//Bericht_query.SQL.Text := Bericht_SQL_String;
Bericht_query.Parameters.parambyname('Datum_von').Value:=strtodatetime('01.01.2007');
Bericht_query.Parameters.ParamByName('Datum_bis').Value:=strtodatetime('05.03.2007');
Bericht_query.SQL.SaveToFile('c:\a.txt');
Bericht_query.Prepared := True; // => du übergibst hier zwei neue Parameter !
Bericht_query.Open;
Bericht_query.First;
While not Bericht_query.Eof do
Begin
Showmessage(Bericht_query.FieldByName('Datum').AsString);
Bericht_query.Next
End;
Das oben kann nur funktionieren, wenn die Parameter auch tatsächlich als Typ TDate oder TDateTime haben.
Grüße
Mikhal