2017-11-29 10 views
3

Ich habe eine Tabelle (MS SQL Server) mit Feldern des Datentyps Dezimal (18,8). In meiner Anwendung gebe ich den Wert 0,000089 ein und speichere es. Ich überprüfe mit SQL Server Management Studio die Tabelle und der Wert ist OK (0.00008000). Aber wenn ich TADOQuery verwende, um den Wert zu lesen, wird 0,0001 zurückgegeben (immer auf 4 Dezimalstellen gerundet - 0,123456789 -> 0,1235). Ich versuche TADOTable mit TDataSource und TDBTable, auch ADOExplorer Tool und Ergebnis war das gleiche. Wo ist das Problem?Delphi ADO Runden Dezimalwerte von SQL Server

+2

Bitte lesen Sie [akzeptierte-Antwort] (https://stackoverflow.com/help/accepted-answer) –

Antwort

8

Deaktivieren Sie die EnableBCD Eigenschaft in Ihrem TADOQuery Komponente

wenn EnableBCD wahr ist, es bis zu 4 Dezimalstellen unterstützen kann. Wenn EnableBCD falsch ist, wird das Feld TFloatField zugeordnet.

enter image description here

+0

Danke! Gerade jetzt habe ich festgestellt, dass das Feld als BCD bestimmt ist und beginnt zu suchen, warum. –

+3

@MadDog, Sie können ihm danken, indem Sie die Antwort upvotieren und akzeptieren. – kobik

+0

Hoppla, Entschuldigung. Ich habe es gemacht –