Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Convertion error bei Abfrage (https://www.delphipraxis.net/102784-sql-convertion-error-bei-abfrage.html)

haentschman 4. Nov 2007 22:33

Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos

SQL Convertion error bei Abfrage
 
Hallo alle...

brauche Eure Hilfe, da ich den Fehler nicht nachvollziehen kann... :evil:
Delphi-Quellcode:
SQL:= 'select ID,NUMMER,KUNDE,PREISBRUTTO,DATUM,BEZAHLT,OFFEN,VERKAUFER from VORGANG';            
  case FVorgang.ComboBox1.ItemIndex of
    0:
      begin
        SQL:=SQL + ' where';
        AbfrageBezahlt:= '';
      end;
    1:
      begin
        SQL:=SQL + ' where BEZAHLT = :bezahlt';
        AbfrageBezahlt:= 'True';
        SQL:=SQL + ' and';
      end;
    2:
      begin
        SQL:=SQL + ' where BEZAHLT = :bezahlt';
        AbfrageBezahlt:= 'False';
        SQL:=SQL + ' and';
      end;
   end;


   case FVorgang.ComboBox2.ItemIndex of
     0:
       begin
         SQL:=SQL + ' DATUM > :Datum';
         AbfrageDatum:= '20.09.2007';
       end;
     1:
       begin
         SQL:=SQL + ' DATUM > :Datum';
         AbfrageDatum:= '20.04.2007';
       end;
     2:
       begin
         SQL:=SQL + ' DATUM > :Datum';
         AbfrageDatum:= '20.09.2006';
       end;
     3:
       begin
         AbfrageDatum:= '';
       end;
   end;

  case FVorgang.ComboBox3.ItemIndex of
   0:
     begin
       SQL:=SQL + ' order by DATUM';
     end;
   1:
     begin
       SQL:=SQL + ' order by KUNDE';
     end;
   2:
     begin
       SQL:=SQL + ' order by NUMMER';
     end;
  end;

  FVorgang.ZQuery1.SQL.Text:= SQL;
  if AbfrageDatum > '' then FVorgang.ZQuery1.ParamByName('Datum').Value:= AbfrageDatum;
  if AbfrageBezahlt > '' then FVorgang.ZQuery1.ParamByName('bezahlt').Value:= AbfrageBezahlt;
  FVorgang.ZQuery1.Open;
Der zusammengesetzte SQLText lautet z.B.

select ID,NUMMER,KUNDE,PREISBRUTTO,DATUM,BEZAHLT,OFFEN,VE RKAUFER from VORGANG where DATUM > :Datum order by DATUM

Bei Open bekomme ich EZIBConvertError Meldung Convertion error .... was ist damit gemeint :gruebel:

Bitte um Hilfe, Denkanstöße...Danke :roll:

[edit]

ich hatte davor die SQL Anweisung mit SQL.Add zusammengesetzt, da hatte ich im SQLText nach jedem Add komische Sonderzeichen im String :wiejetzt:
...vieleicht kennt das ja jemand und hilft :roll:

[/edit]

Dax 4. Nov 2007 22:49

Re: SQL Convertion error bei Abfrage
 
'False' zu Boolean oder '20.09.2006' zu DateTime.. Funktioniert es, wenn du direkt die korrekten Typen benutzt?

haentschman 4. Nov 2007 22:58

Re: SQL Convertion error bei Abfrage
 
Hallo...

-da es ja keine Boolean Felder in Firebird gibt habe ich String genommen und 'True' oder 'False' abgelegt...ist mir lieber als 0 / 1 ... :???:

- das DatenbankFeld ist Date Feld... ich melde mich gleich wieder... :gruebel:

haentschman 4. Nov 2007 23:15

Re: SQL Convertion error bei Abfrage
 
Ok...

der Tip mit dem richtigen Typ war ein Treffer. :thumb:

1. Variable AbfrageDatum zu TDate gemacht...
2. AbfrageDatum:= StrToDate('20.09.2006');
3. FVorgang.ZQuery1.ParamByName('Datum').AsDate := AbfrageDatum;

Danke, Danke, Danke :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz