I'm having a problem with Delphi 6 + Oracle 10gR2 + ADO + ClientDataSet.
Whenever I run a aggregate function on a field NUMBER(19,9), the resulting column returns a NUMBER datatype to Delphi, and on some machines it loads as a TBCDField with a precision of 38, and everything goes well, but on some machines it loads as a TBCDField with a precision of 255, and I get a BCD overflow on the field.
To replicate the problem, just create a table with a column NUMBER (19,9), and run a SELECT SUM(column_name) column_name FROM table_name GROUP BY column_name.
Despite the fact that the column is a NUMBER(19,9), the resulting column will be a NUMBER with no precision defined.
In Delphi, load the query into a ADOQuery, with a DataSetProvider linked to it and a ClientDataSet linked to the DataSetProvider. After I call the ClientDataSet.Open, on some machines I get a BCD overflow message on the NUMBER field, but in a lot of machines it works nice.
Why am I getting this 255 precision on some machines, when the midas.dll, ADO, server, user, oracle client are all the same on both machines? Any ideas?