Delphi hat bei BCD-Feldern nur eine interne Genauigkeit von 4 Nachkommastellen weil der Wert in einem Currency-Datentyp aufbewahrt wird.
Das bedeutet, dass die Datenbank eine höhere Genauigkeit hat, als Delphi darstellen kann.
Die einfachste Lösung des Problems wäre die Numerischen Felder auf
DEC(16,4) zu reduzieren.
Die übertrieben hohe Genauigkeit der Felder wurde sicher nur aus Faulheit und/oder Unwissenheit gewählt.
Ansonsten gibt es auch noch die Möglichkeit, bei der
ADO-
Query das
Property EnableBCD auf False zu setzen. (Nachteil: Rundungsfehler sind möglich/wahrscheinlich)