Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datumseinschränkung wird nicht akzeptiert (https://www.delphipraxis.net/87714-datumseinschraenkung-wird-nicht-akzeptiert.html)

mikhal 5. Mär 2007 11:32

Re: Datumseinschränkung wird nicht akzeptiert
 
Versuch's mal so:

SQL-Code:
SELECT trunc(Date_Completed) as Datum from qguaradm.DELIVERIES d where d.Firm_ID='32770' and d.Status <>'--' and trunc(d.date_completed) between TO_DATE('01.01.2007', 'DD.MM.RRRR') and TO_DATE('05.03.2007', 'DD.MM.RRRR')
Grüße
Mikhal

Cyberbob_at_tot 5. Mär 2007 11:38

Re: Datumseinschränkung wird nicht akzeptiert
 
Nein, mir fällt nichts auf! Sind einfach nur Datums angaben.
Irgentwie zeigt er nur diese 4. Wenn ich andere aufrufe kommen keine Daten!

@mikhal
auch so, bekomme ich nur 4 Datensätze. Im Query Reporter aber alle, also dürfte es nicht am String liegen!

mikhal 5. Mär 2007 11:42

Re: Datumseinschränkung wird nicht akzeptiert
 
Mein Fehler: ich habe selbst das Trunc vergessen:

SQL-Code:
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(TO_DATE('01.01.2007', 'DD.MM.RRRR')) and TRUNC(TO_DATE('05.03.2007', 'DD.MM.RRRR'))

Cyberbob_at_tot 5. Mär 2007 11:48

Re: Datumseinschränkung wird nicht akzeptiert
 
@mikhal
Auch mit dem Trunc funkioniert es in Delphi nicht.

Ist doch ziemlich komisch, liegt das an mir oder an Delphi, habe doch alles so übergeben, das es funktionieren sollte, auch der String geht! MIST!

mikhal 5. Mär 2007 12:04

Re: Datumseinschränkung wird nicht akzeptiert
 
Ohne weiteren Quelltext wird dir dann kaum jemand weiterhelfen können. Laß mal die entsprechende Procedure sehen, in der du dieses Statement zusammenbaust und aufrufst.

Grüße
Mikhal

mkinzler 5. Mär 2007 12:06

Re: Datumseinschränkung wird nicht akzeptiert
 
Kombinier mal den Cast mit dem TO_DATE.

Cyberbob_at_tot 5. Mär 2007 12:30

Re: Datumseinschränkung wird nicht akzeptiert
 
OK Hier mal der Quelltext....
Delphi-Quellcode:
 Bericht_query.close;
  bericht_project.Open;
  //Qguar_Abfragen();
  Bericht_query.SQL.Clear;
  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(TO_DATE(:Datum_von, ''DD.MM.RRRR'')) and trunc(TO_DATE(:Datum_bis, ''DD.MM.RRRR''))';
  //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.Open;
  Bericht_query.First;
  While not Bericht_query.Eof do
  Begin
     Showmessage(Bericht_query.FieldByName('Datum').AsString);
     Bericht_query.Next
  End;
Das durchlaufen der Einträge ist nur zum test. Eigentlich übergebe ich án der Stelle an RaveReport.

mkinzler 5. Mär 2007 12:35

Re: Datumseinschränkung wird nicht akzeptiert
 
SQL-Code:
SELECT Cast(Date_Completed as Date) as Datum from qguaradm.DELIVERIES d where d.Firm_ID=''32770'' and d.Status <>''--'' and trunc(d.date_completed) between TO_DATE(:Datum_von, ''DD.MM.RRRR'') and TO_DATE(:Datum_bis, ''DD.MM.RRRR'')';

Cyberbob_at_tot 5. Mär 2007 12:39

Re: Datumseinschränkung wird nicht akzeptiert
 
"Literal stimmt nicht mit dem Format der Zeichenfolge überein"

:(

mikhal 5. Mär 2007 13:17

Re: Datumseinschränkung wird nicht akzeptiert
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.
Seite 3 von 5     123 45      

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