AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Sortierung klappt nicht korrekt (SQL)

Sortierung klappt nicht korrekt (SQL)

Ein Thema von Gandimann · begonnen am 24. Mai 2020 · letzter Beitrag vom 26. Mai 2020
Antwort Antwort
Seite 1 von 2  1 2   
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#1

Sortierung klappt nicht korrekt (SQL)

  Alt 24. Mai 2020, 19:22
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
Angehängte Dateien
Dateityp: zip Project.zip (72,4 KB, 5x aufgerufen)
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
656 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 24. Mai 2020, 19:54
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.
  Mit Zitat antworten Zitat
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#3

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 24. Mai 2020, 20:16
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.
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?

Geändert von Gandimann (24. Mai 2020 um 20:26 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.123 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 24. Mai 2020, 20:57
Hallo,
ganzzahlig heisst:
DateOf benutzen.
Heiko
  Mit Zitat antworten Zitat
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#5

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 24. Mai 2020, 21:12
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.
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#6

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 24. Mai 2020, 21:31
mit

if dateOf(FDquery1.FieldByName('PO_FBEGIN_TIME').AsDa teTime ) = StrToDate(HOD1) then

Selbe Ergebnis...also fehlerhaft.
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?

Geändert von Gandimann (24. Mai 2020 um 21:36 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.123 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 25. Mai 2020, 07:33
Hallo,
schon mal einen Breakpoint gesetzt und nachgeschaut?
Heiko
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
982 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 25. Mai 2020, 08:03
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.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
656 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 25. Mai 2020, 08:44
Zitat:
if dateOf(FDquery1.FieldByName('PO_FBEGIN_TIME').AsDa teTime ) = StrToDate(HOD1) then
Hier nutzt du ja nur auf der einen Seite dateOf, also ein DateTime ohne Time und auf der anderen Seite einen String. Kann ja nicht gehen.
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:
  var val1,val2:integer;
  val1:=trunc(FDquery1.FieldByName('PO_FBEGIN_TIME').AsDateTime);
  val2:=trunc(HOD1);
  if (val1=val2) then
  ...
Damit lässt sich auf jeden Fall nachvollziehen, wann es true ergibt und wann nicht.
  Mit Zitat antworten Zitat
Gandimann

Registriert seit: 10. Dez 2008
105 Beiträge
 
#10

AW: Sortierung klappt nicht korrekt (SQL)

  Alt 25. Mai 2020, 22:55
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
Was ist die mehrzahl von Mopp ? !
genau !... Möpse........oder ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf