![]() |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Besser so:
Delphi-Quellcode:
Params.ParambyName('voDatum').Value := vonDatum.Date;
|
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Hallo,
du könntest den Benutzer die Datum- und Zeitwerte über DateTimePicker einstellen lassen:
Delphi-Quellcode:
Freundliche Grüße
begin
datSQL := '... and DATUM + ZEIT between :dtStart and dtEnd order by DATUM, ZEIT'; // ... Params.ParambyName('dtStart').AsDateTime := dtpVonDatum.Date + dtpVonZeit.Time; |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
...Ihr seit ja schnell,
also ich habs erstmal so probiert !
Delphi-Quellcode:
:
datSQL := ' and DATUM + ZEIT between (:voDatvoZeit and :biDatbiZeit) order by DATUM Zeit';
with dModul do begin ZQueryKanban.ParamByName('voDatbiZeit').AsString := QuotedStr(Datetostr(vonDatum.Date)+ ' '+ edvonDATvonZEIT.Text); zQueryKanban.ParamByName('biDatbiZeit').AsString := QuotedStr(DateToStr(bisDatum.date)+ ' '+ edBisDATbisZeit.Text); end; : : weiter unten dann dies : :
Delphi-Quellcode:
with dMODUL do begin
zQueryKanban.SQL.Clear; zQueryKANBAN.SQL.Text := dSQL+datSQL; reditSQL.Clear; rEditSQL.Lines.Add(zQueryKANBAN.SQL.Text); showmessage(zqueryKANBAN.SQL.Text); zQueryKANBAN.Open; end; nun erhalte ich die Fehlermeldung, das 'Parameter : voDatbiZeit nicht gefunden' die Daten werden von einem DateTimePicker (Datum) und Editfeld (Zeit) geliefert. Siehe obigen Screenshot im Anhang mit freundlichen Grüßen [edit=Jelly] Delphi Tags angepasst, Mfg, Jelly[/edit] |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Die Parameter müßen nach dem QueryString gesetzt werden. Dann werden die Parameter automatisch erzeugt und können gesetzt werden.
BTW Verzichte besser auf den Umweg über den String. |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Hallo mKinzler,
habs nun abgeändert, bekomme aber trotzdem die Fehlermeldung.
Delphi-Quellcode:
Verzichte besser auf den Umweg über String ? Ich habe für die Eingabe ein DateTimePicker fürs Datum und ein Editfeld für die Zeitangabe(also String). Wie kann ich da auf den String verzichten ?
datSQL := ' and DATUM + ZEIT between (:voDatvoZeit and :biDatbiZeit) order by DATUM Zeit';
// Zeige den SQL-BEFEHL with dMODUL do begin zQueryKanban.SQL.Clear; zQueryKANBAN.SQL.Text := dSQL+datSQL; ZQueryKanban.ParamByName('voDatbiZeit').AsString := QuotedStr(Datetostr(vonDatum.Date)+ ' '+ edvonDATvonZEIT.Text); zQueryKanban.ParamByName('biDatbiZeit').AsString := QuotedStr(DateToStr(bisDatum.date)+ ' '+ edBisDATbisZeit.Text); reditSQL.Clear; rEditSQL.Lines.Add(zQueryKANBAN.SQL.Text); showmessage(zqueryKANBAN.SQL.Text); zQueryKANBAN.Open; end; Gruß Nachtstreuner |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Delphi-Quellcode:
datSQL := ' and DATUM + ZEIT between :voDatvoZeit and :biDatbiZeit order by DATUM Zeit';
// Zeige den SQL-BEFEHL with dMODUL do begin //zQueryKanban.SQL.Clear; ist Überflüssig zQueryKANBAN.SQL.Text := dSQL+datSQL; ZQueryKanban.ParamByName('voDatvoZeit').asDateTime := vonDatum.Date + StrToTime(edvonDATvonZEIT.Text); zQueryKanban.ParamByName('biDatbiZeit').AsDateTime := bisDatum.date + StrToTime(edBisDATbisZeit.Text); reditSQL.Clear; rEditSQL.Lines.Add(zQueryKANBAN.SQL.Text); showmessage(zqueryKANBAN.SQL.Text); zQueryKANBAN.Open; end; |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Liste der Anhänge anzeigen (Anzahl: 2)
Danke mKinzler,
funktioniert mit denParametern, allerdings mit einem Schönheitsfehler. Folgende Params wurden übergeben : siehe Anhang Abfr_erst Die Datensätze im roten Rechteck siehe Bild Anhang (Abfrage.jpg) hätten nicht angezeigt werden dürfen, da sie nach 15:45:00 Uhr liegen. und hier noch mal der Prog.Code:
Delphi-Quellcode:
fehlt in der Query irgendwo vielleicht eine Klammer ?
// ist vonDatumbisZeit und gefüllt, und bisDatum unterschiedlich zu von Datum
// und bisDatbisZeit gefüllt, dann //*********** Zeitraum über mehrere Tage hinweg ******************************* if (length(trim(edvonDatvonZeit.Text)) = 8) and (length(trim(edVonDatbisZeit.Text)) <> 8) then begin if (length(trim(edbisDatbisZeit.Text)) = 8) and (length(trim(edBisDatvonZeit.Text)) <> 8) then begin datSQL := ' and DATUM + ZEIT between :voDatvoZeit and :biDatbiZeit order by DATUM, Zeit'; end; end; // Zeige den SQL-BEFEHL with dMODUL do begin //zQueryKanban.SQL.Clear; zQueryKANBAN.SQL.Text := dSQL+datSQL; ZQueryKanban.ParamByName('voDatvoZeit').asDateTime := vonDatum.Date + StrToTime(edvonDATvonZEIT.Text); zQueryKanban.ParamByName('biDatbiZeit').AsDateTime := bisDatum.Date + StrToTime(edBisDATbisZeit.Text); reditSQL.Clear; rEditSQL.Lines.Add(zQueryKANBAN.SQL.Text); //showmessage(zqueryKANBAN.SQL.Text); zQueryKANBAN.Open; end; mfg nachtstreuner |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Wenn Datum und Zeit 2 Felder sind würde ich sie auch getrennt abfragen. Oder besser nur ein Feld in der Datenbank verwenden.
|
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Hallo,
die Komponente TDateTimePicker enthält einen ![]() ![]() ![]() ![]() Gruß Hawkeye |
Re: SQL mit Union und Unterabfragen liefert falsches Ergebni
Hallo,
voDatbiZeit hast du im ParamByName stehen, voDatvoZeit in der SQL-Abfrage. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz