Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

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)

marabu 5. Mär 2007 13:42

Re: Datumseinschränkung wird nicht akzeptiert
 
Hallo Michael,

schau nochmal in die ADO-Referenz. Wenn ich die richtig interpretiere, dann muss die property Prepared nur einmal gesetzt werden. Der Provider merkt sich diese Einstellung und übersetzt das Statement zum richtigen Zeitpunkt. Im OI genügt die Einstellung zur Entwurfszeit, da der Provider die property auch dann auswertet, wenn sich der Command Text ändert. Bei dynamisch erzeugten Command Objects muss man daran denken, dass die Standardvorgabe False ist.

Freundliche Grüße

PS: Da ich bereits in Beitrag #2 auf die vermutlich fehlerhafte Schreibweise des Datum-Literals hingewiesen habe, lassen mich mittlerweile über 30 Beiträge in diesem thread an meiner sprachlichen Ausdrucksfähigkeit zweifeln.

mikhal 5. Mär 2007 13:50

Re: Datumseinschränkung wird nicht akzeptiert
 
Hallo Achim,

du magst Recht haben, dass es normalerweise einmal reicht, Prepared auf True zu setzen. Leider habe ich im Zusammenhang mit Oracle häufig Probleme gehabt, wenn ich es nicht erneut gesetzt habe. Wohlgemerkt, nur, wenn mehrere Parameter im Spiel waren.

Grüße
Mikhal

marabu 5. Mär 2007 14:16

Re: Datumseinschränkung wird nicht akzeptiert
 
Hallo Michael,

das kann gut sein, ist dann aber eine fehlerhafte Implementierung der Spezifikation. Da ich keine Projekt-Erfahrung im Umgang mit Oracle habe, klinke ich mich mal wieder aus.

Freundliche Grüße

Cyberbob_at_tot 5. Mär 2007 14:33

Re: Datumseinschränkung wird nicht akzeptiert
 
Hallo nochmal,
das Thema scheint ja doch mehrer zu beschäftigen, habe nun mal dne Qualltext angepasst. Ich bekomme auch Daten, aber eben nur 4 und im Query Reporter, selbe Abfrage, 12.

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 :Datum_von and :Datum_bis';
  //Bericht_query.SQL.Text := Bericht_SQL_String;
  Bericht_query.Parameters.parambyname('Datum_von').Value:=strtodate('01.01.2007');
  Bericht_query.Parameters.ParamByName('Datum_bis').Value:=strtodate('05.03.2007');
  Bericht_query.Prepared := True;
  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;
Ich finde dies sowieso ziemlich komisch, aber ich doctor schon so lange dran rum, kann doch nicht so schwer sein, in Delphi die Abfrage zu implementieren!

Danke für eure Hilfe, ich hoffe wir finden eine Lösung!

marabu 5. Mär 2007 14:39

Re: Datumseinschränkung wird nicht akzeptiert
 
Nochmal im Klartext:

Delphi-Quellcode:
//...
  Bericht_query.Parameters.parambyname('Datum_von').Value := EncodeDate(2007, 1, 1);
  Bericht_query.Parameters.ParamByName('Datum_bis').Value := EncodeDate(2007, 3, 5);
//...
So würde ich es probieren...

Cyberbob_at_tot 5. Mär 2007 14:46

Re: Datumseinschränkung wird nicht akzeptiert
 
Jo habe ich so probiert. So macht er die Abfrage auch, aber auch mit zu wenig Daten im Output. es Fehlen einfach welche!

mkinzler 5. Mär 2007 14:47

Re: Datumseinschränkung wird nicht akzeptiert
 
Haben die fehlenden, etwas Gemeinsames?

Cyberbob_at_tot 5. Mär 2007 14:51

Re: Datumseinschränkung wird nicht akzeptiert
 
Nur eins, die Daten fehlen nach dem 16.01.07, die Daten sind noch da, aber z.B die vom 19.01.07 fehlen und folgende auch!

Catbytes 5. Mär 2007 14:55

Re: Datumseinschränkung wird nicht akzeptiert
 
Zitat:

Zitat von Cyberbob_at_tot
Nur eins, die Daten fehlen nach dem 16.01.07, die Daten sind noch da, aber z.B die vom 19.01.07 fehlen und folgende auch!

Und wenn Du mal between weg läßt? Also Abfrage nach allem was >=01.01.2007 ist?

Hier mal am Beispiel deiner Grundabfrage vom 1. Posting:
SQL-Code:
SELECT Date_Completed from DELIVERIES d where d.Firm_ID='32770' and d.Status <>'--' and d.date_completed>='01.01.2007'

Cyberbob_at_tot 5. Mär 2007 15:06

Re: Datumseinschränkung wird nicht akzeptiert
 
Delphi-Quellcode:
Bericht_query.SQL.Text := 'SELECT trunc(Date_Completed) as Datum from qguaradm.DELIVERIES d where d.Firm_ID=''32770'' and d.Status <>''--'' and d.date_completed>=''01.01.2007''';
Dann kommen 8 Datensätze, wohei 4 Davon aus 2006 sind. Aber das sind auch nicht alle!

Aber auch, wenn ich die Eingrenung komplett weglasse, werden 8 Datensätze von 15 angezeigt. IM Query Reporter hingeben, selbe Abfrage, alle 15 da!

Was soll das denn wieder. So langsamm denke ich, das an der Datenbank was nicht stimmt. Also wie die Daten abgelegt worden sind.

[Edit]
Auch wenn ich die Abfrage aus dem Query Reporter kopiere, und direkt in den Wide-Stringlisten-Editor einfüge, kommen auch nur 8 Datensätze!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Seite 4 von 5   « Erste     234 5      

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