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!
|
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:
Grüße... Bericht_query.Parameters.ParamByName('Datum_bis').Value:='01.03.2007'; ... Bericht_query.Prepared := True; Bericht_query.Open; ... 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. |
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:
Bei Datum_von bekomme ich schon die Fehlermeldung, das der Parameter nicht da ist.
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'; |
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';
|
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!
|
Re: Datumseinschränkung wird nicht akzeptiert
Versuch mal
SQL-Code:
...and cast(d.date_completed as Date) ...
|
Re: Datumseinschränkung wird nicht akzeptiert
Zitat:
|
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 :( |
Re: Datumseinschränkung wird nicht akzeptiert
Ich bins nochmal, irgentwie klappt es falsch, bekomme wohl daten aber nicht alle.
Delphi-Quellcode:
Bei der Abfrage in Delphi bekomme ich 4 Einträge, im QueryReporter 12 Einträge. Irgentwas stimmt da nicht!
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'
|
Re: Datumseinschränkung wird nicht akzeptiert
Zitat:
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. |
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