![]() |
Sortierung klappt nicht korrekt (SQL)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Freunde ,
ich versuche seit mitte April das Problem zu beheben ... leider bis heute ohne Erfolg. Kann bitte jemand mal in den Project reinschauen? Es sollen nach Knopf "Sort" klicken alle Einträge entsprechend vordefinierte Variabeln (HOD1 , HOD2,HOD3,.....HOD7) verglichen und in den Listbox2 erscheinen. Fehler: Es fehlen aber von PO_ADID 1 ---> 27.05.20 und von PO_ADID 5 -----> 31.05.20 Thanks in Advance :hi: |
AW: Sortierung klappt nicht korrekt (SQL)
Ich habe jetzt nur grob drüber geschaut, aber da du die Vergleiche auf String-Basis durchführst, solltest du das Format mit TFormatSettings festlegen oder noch besser wirklich den ganzzahligen Teil von TDateTime (d.h. ohne Uhrzeit) vergleichen.
|
AW: Sortierung klappt nicht korrekt (SQL)
Danke Philipp,
für deine Rückmeldung... Habe dies bereits versucht ..auch mit Vergleich: " if FDquery1.FieldByName('PO_FBEGIN_TIME').Value = HOD1 then" Ergebnis bleibt gleich. Irgendwo habe ich Fehler bzw. Denkfehler. :pale: |
AW: Sortierung klappt nicht korrekt (SQL)
Hallo,
ganzzahlig heisst: DateOf benutzen. |
AW: Sortierung klappt nicht korrekt (SQL)
Hallo Heiko,
was meinst du mit "DateOF". Nach meine Recherche Vergleichung läuft korrekt aber sobald ein Datensatz fehlt hier zB. HOD1 = 24.05.20 Ergebnis ist fehlerhaft. |
AW: Sortierung klappt nicht korrekt (SQL)
mit
if dateOf(FDquery1.FieldByName('PO_FBEGIN_TIME').AsDa teTime ) = StrToDate(HOD1) then Selbe Ergebnis...also fehlerhaft. :pale: |
AW: Sortierung klappt nicht korrekt (SQL)
Hallo,
schon mal einen Breakpoint gesetzt und nachgeschaut? |
AW: Sortierung klappt nicht korrekt (SQL)
Hmm. Du verwendest Locate + prüfst nicht, ob was gefunden wurde. Das würde ich ändern.
Die for-Schleife mit nachgelagertem Locate würde ich umbauen. Entweder ein Select, das dir gleich den gewünschten Datensatz liefert oder ein WHILE NOT EOF Lass dir doch mal ausgeben, welche Daten überhaupt gefunden werden. |
AW: Sortierung klappt nicht korrekt (SQL)
Zitat:
Um es im Debugger einfacher zu haben, würde ich hier die mathematischen Funktionen nutzen, da TDatetime intern ja ein Double ist, sprich
Delphi-Quellcode:
Damit lässt sich auf jeden Fall nachvollziehen, wann es true ergibt und wann nicht.
var val1,val2:integer;
val1:=trunc(FDquery1.FieldByName('PO_FBEGIN_TIME').AsDateTime); val2:=trunc(HOD1); if (val1=val2) then ... |
AW: Sortierung klappt nicht korrekt (SQL)
Dear Friends,
vielen lieben Dank ! für eure Hilfe und Ansätze. Nach fast 8 Tassen Kaffe / 5 Stunden habe ich nun endlich Fehler gefunden. Hier ist aktuell Ausschnitt der Code: HOD1 := DateToStr(dtp1.date); HOD2 := DateToStr(dtp1.date + 1); HOD3 := DateToStr(dtp1.date + 2); HOD4 := DateToStr(dtp1.date + 3); HOD5 := DateToStr(dtp1.date + 4); HOD6 := DateToStr(dtp1.date + 5); HOD7 := DateToStr(dtp1.date + 6); begin for i := 1 to lstItems.Items.Count do begin Emply := lstItems.Items.Strings[i - 1]; qry_RPT_PO.Close; qry_RPT_PO.SQL.Text := 'select * from Posium where PO_FBEGIN_TIME >=' + QuotedStr(datetostr(tt_D1_dt)) + 'and PO_FBEGIN_TIME <=' + QuotedStr(datetostr(tt_D1_dt + 6)) + 'and PO_ADID =' + QuotedStr(Emply) + 'order by Po_Fbegin_Time ASC'; qry_RPT_PO.Open; for L := 1 to qry_RPT_PO.RecordCount do begin if HOD1 = qry_RPT_PO.FieldByName('PO_FBEGIN_TIME').asstring then begin Emply := qry_RPT_PO.FieldByName('PO_ADID').asstring; qry_RPT_DP.Locate('HO_ADID', Emply, []); qry_RPT_DP.Edit; qry_RPT_DP.FieldByName('HO_D1').Value := qry_RPT_PO.FieldByName('PO_MEMO').asstring; qry_RPT_DP.ApplyUpdates; end; if HOD2 = qry_RPT_PO.FieldByName('PO_FBEGIN_TIME').asstring then begin Emply := qry_RPT_PO.FieldByName('PO_ADID').asstring; qry_RPT_DP.Locate('HO_ADID', Emply, []); qry_RPT_DP.Edit; qry_RPT_DP.FieldByName('HO_D2').Value := qry_RPT_PO.FieldByName('PO_MEMO').asstring; qry_RPT_DP.ApplyUpdates; end; if HOD3 = qry_RPT_PO.FieldByName('PO_FBEGIN_TIME').asstring then begin Emply := qry_RPT_PO.FieldByName('PO_ADID').asstring; qry_RPT_DP.Locate('HO_ADID', Emply, []); qry_RPT_DP.Edit; qry_RPT_DP.FieldByName('HO_D3').Value := qry_RPT_PO.FieldByName('PO_MEMO').asstring; qry_RPT_DP.ApplyUpdates; end; if HOD4 = qry_RPT_PO.FieldByName('PO_FBEGIN_TIME').asstring then begin Emply := qry_RPT_PO.FieldByName('PO_ADID').asstring; qry_RPT_DP.Locate('HO_ADID', Emply, []); qry_RPT_DP.Edit; qry_RPT_DP.FieldByName('HO_D4').Value := qry_RPT_PO.FieldByName('PO_MEMO').asstring; qry_RPT_DP.ApplyUpdates; end; if HOD5 = qry_RPT_PO.FieldByName('PO_FBEGIN_TIME').asstring then begin Emply := qry_RPT_PO.FieldByName('PO_ADID').asstring; qry_RPT_DP.Locate('HO_ADID', Emply, []); qry_RPT_DP.Edit; qry_RPT_DP.FieldByName('HO_D5').Value := qry_RPT_PO.FieldByName('PO_MEMO').asstring; qry_RPT_DP.ApplyUpdates; end; if HOD6 = qry_RPT_PO.FieldByName('PO_FBEGIN_TIME').asstring then begin Emply := qry_RPT_PO.FieldByName('PO_ADID').asstring; qry_RPT_DP.Locate('HO_ADID', Emply, []); qry_RPT_DP.Edit; qry_RPT_DP.FieldByName('HO_D6').Value := qry_RPT_PO.FieldByName('PO_MEMO').asstring; qry_RPT_DP.ApplyUpdates; end; if HOD7 = qry_RPT_PO.FieldByName('PO_FBEGIN_TIME').asstring then begin Emply := qry_RPT_PO.FieldByName('PO_ADID').asstring; qry_RPT_DP.Locate('HO_ADID', Emply, []); qry_RPT_DP.Edit; qry_RPT_DP.FieldByName('HO_D7').Value := qry_RPT_PO.FieldByName('PO_MEMO').asstring; qry_RPT_DP.ApplyUpdates; end; qry_RPT_PO.Next; end; end; end; end; __________________________________________________ ____________ May God bless you all:hello::hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 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