Hallo,
ich habe folgendes Problem. Wenn ich Daten aus einer Oracle DB bzw MSSQL auslese gibt es normal beim darstellen in einen DBGrid keine Schwierigkeiten.
Wird aber in Oracle der Datentyp number benutzt mit eine size=16 oder in MSSQL den Datentyp numeric dann kommt es zum Überlauf wenn die Dezimalstellen der Zahl > 15 ist. Bei diesen Typen benutzt ADO den Delphityp TBCDField wenn die Eigenschaft 'EnableBCD' des jeweiligen AdoDataSets 'true' ist. Ergebnis es wird ein 'Overflow' im DBGrid angezeigt. Ist die Eigenschaft auf false gesetzt benutzt ADO den Typ TFloatField welcher natürlich bei grossen Zahlen ein Potenz anzeigt.
In der Hilfe steht man solle den Typ TVariantField bei großen Zahlen nutzen. Ist auch ok aber wie soll ich diesen einstellen bzw zuweisen wenn
die Eigenschaft 'EnableBCD' ein Boolean-wert ist?
Da meist unbekannte SQL-Statements benutzt werden kann ich die readonly-Eigenschaft auch nicht zur Laufzeit ändern.
HAt jemand einen Rat?
Danke.
ich habe folgendes Problem. Wenn ich Daten aus einer Oracle DB bzw MSSQL auslese gibt es normal beim darstellen in einen DBGrid keine Schwierigkeiten.
Wird aber in Oracle der Datentyp number benutzt mit eine size=16 oder in MSSQL den Datentyp numeric dann kommt es zum Überlauf wenn die Dezimalstellen der Zahl > 15 ist. Bei diesen Typen benutzt ADO den Delphityp TBCDField wenn die Eigenschaft 'EnableBCD' des jeweiligen AdoDataSets 'true' ist. Ergebnis es wird ein 'Overflow' im DBGrid angezeigt. Ist die Eigenschaft auf false gesetzt benutzt ADO den Typ TFloatField welcher natürlich bei grossen Zahlen ein Potenz anzeigt.
In der Hilfe steht man solle den Typ TVariantField bei großen Zahlen nutzen. Ist auch ok aber wie soll ich diesen einstellen bzw zuweisen wenn
die Eigenschaft 'EnableBCD' ein Boolean-wert ist?
Da meist unbekannte SQL-Statements benutzt werden kann ich die readonly-Eigenschaft auch nicht zur Laufzeit ändern.
HAt jemand einen Rat?
Danke.
Comment