Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TQuery.Open funktioniert nicht richtig (https://www.delphipraxis.net/37057-tquery-open-funktioniert-nicht-richtig.html)

Klarabella 30. Dez 2004 12:36


TQuery.Open funktioniert nicht richtig
 
Ich hab mit Delphi zwei Views auf eine Sybase Datenbank erstellt.
Im Programm lade ich später die Daten z.B. über folgende Abfrage:
Delphi-Quellcode:
SELECT * FROM Garantie_View WHERE (ablaufdatum BETWEEN ' +
             ':startdatum AND :enddatum)
auf dieselbe View und eine weitere View starte ich dann ähnliche Abfragen:
Delphi-Quellcode:
sqlBefehl2 := 'SELECT * FROM Garantie_View WHERE (bf_pov_feld_5 BETWEEN ' +
             ':startdatum AND :enddatum)';
  sqlBefehl3 := 'SELECT * FROM Garantie_View2 WHERE (bf_pov_feld_5 BETWEEN ' +
             ':startdatum AND :enddatum)';
Anschließend geb ich den jeweiligen SQLBefehl an eine Funktion weiter, die ein StringGrid füllen soll.

Alle Abfragen funktionieren, bis auf die erste!!! Und wenn ich die Abfrage handisch in der Datenbank als SQL-Abfrage mache, klappt das auch ohne Probleme. Was mache ich falsch???

So sieht die Funktion mit dem Füllen des Grids aus:
Delphi-Quellcode:
 qryDatenbank.SQL.Text := sql;

  qryDatenbank.Prepared := true;

  //start_datum entspricht dem aktuellen Datum
  qryDatenbank.ParamByName('startdatum').DataType := ftDate;
  qryDatenbank.ParamByName('startdatum').Value := Date;
  qryDatenbank.ParamByName('enddatum').DataType := ftDate;
  qryDatenbank.ParamByName('enddatum').Value := m_end_Datum;

  try
    qryDatenbank.Open;

    while not qryDatenbank.Eof do
...
er hat direkt beim ersten durchlauf eof!!

Bernhard Geyer 30. Dez 2004 12:39

Re: TQuery.Open funktioniert nicht richtig
 
Wie greifst Du auf die DB zu (BDE/ADO/dbExpress)?

Falls Du D5 und ADO verwendst: Hast Du schon den ADOExpress-Patch installiert?

Klarabella 30. Dez 2004 12:43

Re: TQuery.Open funktioniert nicht richtig
 
ne, ich greife über die BDE auf die Datenbank zu.
Hab eine TQuery und eine DataSource-Komponente auf dem Formular, die das STringGrid füllt.

Jelly 30. Dez 2004 12:52

Re: TQuery.Open funktioniert nicht richtig
 
Probier mal den Parameter mit AsDate zu setzen, statt mit Value.

jensw_2000 30. Dez 2004 12:55

Re: TQuery.Open funktioniert nicht richtig
 
Hänge doch mal testweise eine Datasource und ein DBGrid an deine TQuery und schau mal, welche Datenmenge dir die Abfrage zurückgibt.

Wenn EOF gleich nach dem Open TRUE ist dann gibt es keine Daten die in die Abfrage passen ... oder das Format der Übergabeparameter ist falsch. (passiert grade bei Datums- und Zeitwerten recht oft wegen der vielen Formate (dd.mm.yyyy, dd.mm.yy, MM/DD/YYYY usw ...) )


:hi:

ulrich70 30. Dez 2004 13:02

Re: TQuery.Open funktioniert nicht richtig
 
Das ist ein Problem mit dem Datums-Format.

Vesuch mal im ODBC-Treiber, bzw. der BDE eine andere Sprache einzustellen (Englisch, Deutsch, usw.).

Klarabella 30. Dez 2004 13:42

Re: TQuery.Open funktioniert nicht richtig
 
Aber kann denn das Format der Datumsabfrage falsch sein, wenn alle anderen Abfragen mit Datumsabfragen funktionieren??? :roll:

Klarabella 30. Dez 2004 13:44

Re: TQuery.Open funktioniert nicht richtig
 
oooopppsssss :oops: :oops: :oops:
Lag wohl doch am Datum... :roll:

Danke...!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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