Thema: [Firebird]

Einzelnen Beitrag anzeigen

Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
673 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: [Firebird]

  Alt 19. Mai 2014, 13:35
Delphi speichert den Wert als Delphityp zwischen, da es keinen nativen Fixed Point gibt nimmt er halt einen Float.
Nur dass Delphi den ja korrekt schreibt.

Ich erklär mal die Idee kurz :

Ich mache einen Wareneingang, es kommen 422.24 Einheiten vonn irgendwas rein (zum Bsp. Apotheken arbeiten oft mit solchen Mengen). Das Document des Wareneingangs schreibt das ganze in seine Tabellen (Master-Detail). Dort kommt alles korrekt an. Das ganze wird mit einem TUniQuery als "INSERT INTO ..." gemacht.
Wenn das alles fertig ist wird in einer anderen Transaction eine Stored Procedure aufgerufen, die dann diverse Sachen macht, unter anderem die Warenbewegung registrieren, so dass diese 422.24 Einheiten im Inventar auftreten. Dazu haben wir eine Container-Tabelle, in welche wir reinschreiben, wann welches Produkt mit Welche Dokument bewegt wurde (Wareneingang, Rechnung, Rückgabe, Rücknahme, Produktion, Bewegung zw. Lagern etc).
In diesem Container kommt der Wert (wenn die SP unter Delphi aufgerufen wird) als 422.23999 an (die SP nutzt nur die Nummer des Dokuments als Parameter, der Wert der Einheiten wird drin erst festgestellt), obwohl die Quell - Tabelle 422.24000 als Wert hat.
Rufe ich diese SP allerdings im SQL Tool auf, geht es korrekt.
  Mit Zitat antworten Zitat