-
Forum: Datenbanken
by MyRealName,
19. Mai 2014
Also nach langer Suche habe ich das folgende herausgefunden :
1. Delphi hat nichts damit zu tun. Es ist ein Bug im Firebird 64bit
Der Unterschied war dass ich in der Datenbank die SP direkt aufgerufen habe, wenn ich von Delphi aus das getan habe, ging das über eine Zwischen-SP, die mir das Arbeiten mit verschiedenen Typen von Dokumenten vereinfacht zu einem Aufruf.
Rufe ich die SP direkt...
-
Forum: Datenbanken
by MyRealName,
19. Mai 2014
mit falschem Wert nach dem Speichern des Wareneingangs :
http://puu.sh/8Styd.png
Nach dem Ausführen der SP in einem Datenbank-Explorer :
http://puu.sh/8StAY.png
Derselbige zeigt auch jeweils diese Werte an. Und ja, ich denke auch, dass das Ergebnis immer dasselbe sein sollte. Ist es aber nicht. :shock:
-
Forum: Datenbanken
by MyRealName,
19. Mai 2014
tabelle Detail des Wareneingangs (Das Feld der Menge, wo der Fehler auftritt, ist Qty) :
CREATE TABLE IPDET (
TIPO CHAR(2) NOT NULL,
NUMBER INTEGER NOT NULL,
CONTEO INTEGER NOT NULL,
ITEM CHAR(15) NOT NULL,
LOCATION CHAR(3) NOT NULL,
COST NUMERIC(15,2),
QTY ...
-
Forum: Datenbanken
by MyRealName,
19. Mai 2014
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...
-
Forum: Datenbanken
by MyRealName,
19. Mai 2014
klar :)
aber ich habe gerade was anderes gefunden, was vielelicht Aufschluss gibt, von daher (auch weil die sourcen teilweise recht lang sind) heben wir uns das für danach auf :)
Also wenn ich die stored procedure vom Programm aufrufe, dann hat diese den Wert als 422.24 in der 1. Tabelle (wird durch UniDac in Delphi geschrieben) und die SP kopiert den Wert dann als 422.23999 in die Tabelle...
-
Forum: Datenbanken
by MyRealName,
19. Mai 2014
also dein befehl gibt das folgende aus : http://puu.sh/8SqgB.png
scheinbar 3.
und wie gesagt, die variable beim kopieren ist als Numeric(15,5) deklariert, genauso wie das source-feld und das Zielfeld.
-
Forum: Datenbanken
by MyRealName,
18. Mai 2014
Weiss nicht, ob Delphi das Problem sein kann, da der Fehler in der Stored Procedure passiert. In der Originaltablle, wo Delphi reinschreibt, kommt derWet ja korrekt an.
-
Forum: Datenbanken
by MyRealName,
18. Mai 2014
Etwas seltsames ist mir aufgefallen :
ich habe 2 Stored Procedures, die den wert kopieren, beiden arbeiten mit der gleiche Variablen-Definition, Numeric (15,5).
Die eine, wir im originalen Post schon geschrieben, wandelt mit die Daten um. Die andere nicht. Da kommt die Zahl als 422.24 an, anstatt 422,239997 etc
-
Forum: Datenbanken
by MyRealName,
18. Mai 2014
Hallo zusammen,
haben gerade mal einen Fehler in einer Berechung von Daten in der datenbank gesucht und sind auf ein recht seltsames Verhalten gestossen :
Ich schreiben in Tabelle 1 den Wert 422,24 rein. Das Feld ist als Numeric(15,5) gekennzeichnet (brauche 5 Nachkommastellen).
Eine Stored Procedure kopiert den wert dann (über eine Variable die ebenfalls als Numeric (15,5) angelegt ist...