У меня проблема с Delphi 6 + Oracle 10gR2 + ADO + ClientDataSet.
Всякий раз, когда я запускаю агрегатную функцию для поля NUMBER(19,9), результирующий столбец возвращает тип данных NUMBER в Delphi, а на некоторых машинах он загружается как TBCDField с точностью 38, и все идет хорошо, но на некоторых машинах он загружается как TBCDField с точностью 255, и я получаю переполнение поля BCD.
Чтобы повторить проблему, просто создайте таблицу со столбцом NUMBER (19,9) и запустите SELECT SUM(column_name) column_name FROM table_name СГРУППИРОВАТЬ ПО имя_столбца.
Несмотря на то, что столбец представляет собой ЧИСЛО (19,9), результирующий столбец будет ЧИСЛОМ без определенной точности.
В Delphi загрузите запрос в ADOQuery со связанным с ним DataSetProvider и ClientDataSet, связанным с DataSetProvider. После вызова ClientDataSet.Open на некоторых машинах я получаю сообщение о переполнении BCD в поле NUMBER, но на многих машинах это работает хорошо.
Почему я получаю эту точность 255 на некоторых машинах, когда midas.dll, ADO, сервер, пользователь, клиент оракула одинаковы на обеих машинах? Любые идеи?