![]() |
Datenbank: MsSql • Version: Com • Zugriff über: FireDac
Unterschiedliche Ergebnisse Heidi vs TFDQuery
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo Zusammen,
ich habe ein Phänomen, dass ich mir nicht erklären kann... Ich baue meine SQL-Statements mit HeidSQL zusammen und übertrage sie dann in meine Software. Das hat bislang auch immer gut geklappt. Jetzt habe ich aber ein Statement, welches mir in HeidiSQL das richtige Ergebnis liefert, aber in meinem Programm ein anderes... Hier das SQL-Statement:
Delphi-Quellcode:
Die beiden Ergebnisse und das HeidiSQL-Statement hänge ich als Bilder an. Bei Result_HeidiSQL bekomme ich richtiger Weise unterschiedliche Bewegungsdaten mit den unterschiedlichen Lagerorten. Bei Result_TFDQuery sind die Bewegungsdaten und Lagerorte identisch, nämlich wie die älteste Bewegung.
procedure TMxSQL.Get_StockMovements(KDArtikelNr, BDArtikelNr: string; var LStream: TMemoryStream);
var Logic: TLogic; MsQuery: TFDQuery; MsQryArtikelNr: TFDQuery; begin Logic := TLogic.create; Logic.Set_Query(MsQuery, DB_Modul.MSConnect); Logic.Set_Query(MsQryArtikelNr, DB_Modul.MSConnect); Try if KDArtikelNr <> '' then begin MsQryArtikelNr.SQL.Add('select max(afg__ref) as afg__ref from afgart__ where zynrefkl = :KdArtikelNr'); MsQryArtikelNr.ParamByName('KdArtikelNr').AsString:= KDArtikelNr; MsQryArtikelNr.Open; BDArtikelNr:= MsQryArtikelNr.FieldByName('afg__ref').AsString end; MsQuery.SQL.Add('SELECT '+ 'h.afg__ref AS BD_ArtikelNr, '+ 'a.zynrefkl AS Kd_ArtikelNr, '+ 'a.afg_oms1 AS Bezeichnung, '+ 'max(h.kla__ref) AS Kd_Nummer, '+ 'max(h.kla__rpn) AS Kd_Name, '+ 'max(h.datum___) AS Bewegung, '+ 'h.vak__ref AS Lagerort '+ 'FROM hisafg__ h '+ 'LEFT JOIN afgart__ a ON a.afg__ref = h.afg__ref '+ 'WHERE h.afg__ref = :BDArtikelID '+ 'GROUP BY '+ 'h.afg__ref, '+ 'a.zynrefkl, '+ 'a.afg_oms1, '+ 'h.vak__ref '+ 'order by MAX(h.datum___) DESC '); MsQuery.ParamByName('BDArtikelID').AsString:= BDArtikelNr; MsQuery.Open; if Assigned(LStream) then begin LStream:= QryToStream(MsQuery); end; Finally MsQuery.Free; MsQryArtikelNr.Free; Logic.Free; End; end; Die Tatsache, dass das Ergebnis unterschiedlich ist, verunsichert mich... Kann mir jemand da etwas zu sagen? Vielen Dank Patrick |
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Guten Morgen,
da die Queries auf den ersten Blick identisch sind, das Ergebnis aber unterschiedlich, nennt meine Glaskugel 2 mögliche Fehlerquellen: 1. unterschiedliche Datenbanken 2. unterschiedliche Abfragen. bzgl. 2 meine ich: Im Grid wird halt nicht die Query angezeigt, die du hier zeigst. Etwas das mich triggert, mit der Frage aber vermutlich nix zu tun hat: Warum ist der Parameter LStream mit einem var deklariert? Das ist hier nicht notwendig, da du den Stream nicht innerhalb der Methode erzeugst. Grüße Lemmy |
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Teste das SQL mit einem anderen Frontend als HeidiSQL.
HeidiSQL habe ich nur kurz genutzt, weil es mir manchmal falsche Ergebnisse geliefert hat. |
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Zitat:
Aber ich schließe mich in Deiner Vermutung der Möglichkeit 1 an. Wahrscheinlich sind die Quellen unterschiedlich. Bei Heidi bist Du vielleicht im Testsystem unterwegs und bei den anderen Werten in Live-System? |
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
:gruebel: Der gleiche Artikel...verschiedene Lagerorte? (Bild 1)
|
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Zitat:
Bei uns gibt es auch Überbestandslagerorte, das muss also kein Fehler sein. |
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
vielen Dank für Eure Antworten. Leider kann ich es ausschließen, dass es sich um unterschiedliche Datenbanken handelt. Die ist definitiv die selbe! Ich werde es mal mit einem anderen Query-Manager testen. Könnt Ihr einen empfehlen? Aber das löst das grundsätzliche Problem noch nicht, wie ich im meinem Programm die Daten so ausgegeben bekomme, wie sie benötigt werden (Result_Heidi). Ich hänge mal ein Screenshot an, wie die Daten ohne Gruppierung vorliegen... Vielen Dank Patrick |
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Zitat:
Zitat:
|
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Jo, oder "Masse" und ein Ort reicht nicht.
Wir haben es auch bei einigen Kunden, welche auch teilweise eigene Lagerorte für bestimmte Maschienen haben, oder auch mehrere Produktionshallen usw. Ein Kunde hat auch ein extra Lager für einen seiner Kunden, der bei sich kein Lager hat. ... nur das Bewegung und Lagerort falsch? Nja Datum könnte sein, wenn MAX und GROUP in falscher Reihenfolge (MAX auf Alles oder nur die Gruppe). Und der Lagerort, wenn vorm Gruppieren eine andere Reihenfolge, bzw. welcher der Datensätze beim GROUP dann genommen wird. Aber das Query sollte doch in der DB (Datenbankserver) ausgeführt werden und demnach kann es doch eigentlich keinen Unterschied machen, welcher Client das Ergebnis abruft? :gruebel: Ist ja nicht sowas wie SQLite, wo der Client die eigentlich Arbeit macht und die DB nur die Daten hält. |
AW: Unterschiedliche Ergebnisse Heidi vs TFDQuery
Warum eigentlich ADD (hoffentlich wird irgendwamm mal ein CLEAR nicht vergessen) und nicht einfach TEXT?
PS: Delphi 12 und MultiLineStrings :angle:
Code:
Implizite AS hasse ich irgendwie. Würde mir eher wünschen man könnte sowas deaktivieren.
MsQuery.SQL.Text := '''
SELECT h.afg__ref AS BD_ArtikelNr, a.zynrefkl AS Kd_ArtikelNr, a.afg_oms1 AS Bezeichnung, max(h.kla__ref) AS Kd_Nummer, max(h.kla__rpn) AS Kd_Name, max(h.datum___) AS Bewegung, h.vak__ref AS Lagerort FROM hisafg__ h LEFT JOIN afgart__ a ON a.afg__ref = h.afg__ref WHERE h.afg__ref = :BDArtikelID GROUP BY h.afg__ref, a.zynrefkl, a.afg_oms1, h.vak__ref ORDER BY MAX(h.datum___) DESC '''; MsQuery.SQL.Add(''' SELECT ... ORDER BY MAX(h.datum___) DESC '''); Hier hatten wir mal ein Komma vergessen und uns gewundert, warum ein Feld den komplett falschen Inhalt hat ... klar, war ja der Inhalt des anderen Feldes.
Delphi-Quellcode:
FROM hisafg__ AS h
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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-2025 by Thomas Breitkreuz