Hallo,
Ich manipuliere eine
SQL-Abfrage mit einem DateTimePicker. Mit
MySQL hat das wunderbar funktioniert, nur mit Sybase
SQL Anywhere nicht.
Ich bekomme folgende Fehlermeldung beim Kompilieren: Meldung: '[Sybase][
ODBC Driver]: cannot convert 01.01.2004 to a date/time.'
Wenn ich mir aber mit Delphi über den
ODBC-Treiber zum Test das Belegdatum eines Datensatzes anschaue (z.B. über ein DBText), erscheint es im Format 00.00.0000. Dann habe ich zum Test 'Seldate := DateToStr(DateTimePicker1.Date)' in 'Seldate := DateTimeToStr(DateTimePicker1.DateTime)' geändert. Das Ergebnis ist der gleiche Fehler. Kann es sein, daß Sybase
SQL Anywhere bzw. der
ODBC-Treiber das Datum auf Deutsch anzeigt, in Abfragen aber Amerikanische Schreibweise fordert?
Auszug aus dem code:
Delphi-Quellcode:
procedure TForm1.Action2Execute(Sender: TObject);
var Seldate:
String; Anzahl: Integer;
begin
Seldate := DateToStr(DateTimePicker1.Date);
With ADOQuery1
do
Begin
SQL.Text:= '
SELECT KHKVKBelege.A0Empfaenger AS Kunde, KHKVKBelege.A1Anrede, KHKVKBelege.A1Name1, KHKVKBelege.A1Name2, KHKVKBelege.A1Strasse, KHKVKBelege.A1PLZ, KHKVKBelege.A1Ort, KHKVKBelege.Belegdatum FROM KHKVKBelege WHERE KHKVKBelege.Belegdatum >= :i_Date';
Prepared := True;
ADOQuery1.Parameters.ParamByName('
i_Date').Value := Seldate;
end;
Gruss
Gregor
[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]