Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

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)

Cyberbob_at_tot 5. Mär 2007 09:41

Re: Datumseinschränkung wird nicht akzeptiert
 
Ach so, dann denke ich beides, wenn man mit :Datum_von einen Parameter anlegt, habe ich es im Statment und im query gemacht!

mikhal 5. Mär 2007 09:54

Re: Datumseinschränkung wird nicht akzeptiert
 
Bevor du die Query mit der Methode Open öffnest, musst du noch der Datenbank mitteilen, dass du mehrere Parameter verwendest. Das erfolgt über die Eigenschaft Prepared, die auf True gesetzt wird.

Es ist eine Eigenart der TAdoQuery (zumindest im Zusammenspiel mit Oracle), dass sie nur dann mit mehreren Parametern etwas anfangen kann.

Also das Ganze etwa so:
Delphi-Quellcode:
 

...
Bericht_query.Parameters.ParamByName('Datum_bis').Value:='01.03.2007';
...
Bericht_query.Prepared := True;
Bericht_query.Open;
...
Grüße
Mikhal

PS: Solltest du den von Microsoft zur Verfügung gestellten OLEDB-Provider verwenden, dann solltest du ganz schnell mal bei Oracle nachschauen und dort den von Oracle zur Verfügung gestellten runterladen, das erspart dir eine Menge Ärger!

PPS: Oben wurde bereits darauf hingewiesen: Oracle verwendet DateTime, ein Trunc um das Datumsfeld zeigt dir immer das Datum mit 0 Uhr! Wenn du also ein Datum vergleichst, solltest du immer die Funktion Trunc verwenden.

Cyberbob_at_tot 5. Mär 2007 10:29

Re: Datumseinschränkung wird nicht akzeptiert
 
Ne ist schon der Oralce Provider.

Aber das mit den Parametern funktioniert trotzdem nicht. Habe Prepare schon dauerhaft auf true gesetzt,

Delphi-Quellcode:
Bericht_query.SQL.Text := 'SELECT trunc(Date_Completed) 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.Parameters.parambyname('Datum_von').Value:='01.01.2007';
  Bericht_query.Parameters.ParamByName('Datum_bis').Value:='01.03.2007';
Bei Datum_von bekomme ich schon die Fehlermeldung, das der Parameter nicht da ist.

mkinzler 5. Mär 2007 10:35

Re: Datumseinschränkung wird nicht akzeptiert
 
Du mußt/darfst Parameter nicht Quoten:
Delphi-Quellcode:
Bericht_query.SQL.Text := 'SELECT trunc(Date_Completed) from qguaradm.DELIVERIES d where d.Firm_ID=''32770'' and d.Status <>''--'' and trunc(d.date_completed) between :Datum_von and :Datum_bis';

Cyberbob_at_tot 5. Mär 2007 10:37

Re: Datumseinschränkung wird nicht akzeptiert
 
Ups, OK gemacht. Funktioniert. Aber die Daten werden immer noch falsch ausgeben, also sind wir, was dem Fehler angeht nicht viel weiter. Versteh das auch nicht wirklich, da das Format mit Trunc doch auf mm.dd.yyyy ist, und so gebe ich es auch ein! Trotzdem will er es irgentwie nicht!

mkinzler 5. Mär 2007 10:41

Re: Datumseinschränkung wird nicht akzeptiert
 
Versuch mal
SQL-Code:
...and cast(d.date_completed as Date) ...

Peinhard 5. Mär 2007 10:43

Re: Datumseinschränkung wird nicht akzeptiert
 
Zitat:

Zitat von Cyberbob_at_tot
[...] da das Format mit Trunc doch auf mm.dd.yyyy ist, [...]

??? Übergib den Parametern mal explizit einen TDateTime und keinen String.

Cyberbob_at_tot 5. Mär 2007 11:01

Re: Datumseinschränkung wird nicht akzeptiert
 
@Peinhard
endlich strtoDatetime bei der Parameterübergabe hat geholfen, scheint so zu funktionieren, besten dank.

@mkinzler
habe Cast auch mal vesucht, kamen aber auch keine Daten raus :(

Cyberbob_at_tot 5. Mär 2007 11:14

Re: Datumseinschränkung wird nicht akzeptiert
 
Ich bins nochmal, irgentwie klappt es falsch, bekomme wohl daten aber nicht alle.

Delphi-Quellcode:
SELECT trunc(Date_Completed) as Datum from qguaradm.DELIVERIES d where d.Firm_ID='32770' and d.Status <>'--' and trunc(d.date_completed) between '01.01.2007' and '05.03.2007'
Bei der Abfrage in Delphi bekomme ich 4 Einträge, im QueryReporter 12 Einträge. Irgentwas stimmt da nicht!

Catbytes 5. Mär 2007 11:20

Re: Datumseinschränkung wird nicht akzeptiert
 
Zitat:

Zitat von Cyberbob_at_tot
Bei der Abfrage in Delphi bekomme ich 4 Einträge, im QueryReporter 12 Einträge. Irgentwas stimmt da nicht!

Gibt es bei den acht wo fehlen irgendwelche Übereinstimmungen?

Was passiert, wenn Du mal mit TTable und Filtern arbeitest (Filter einfach auf Datum setzen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Seite 2 von 5     12 34     Letzte »    

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