У меня возникла проблема с Delphi 6 + Oracle 10gR2 + ADO + ClientDataSet.Delphi 6 с ADO + Oracle возвращает NUMBER с различной точностью, генерируя переполнение BCD
Всякий раз, когда я запускаю агрегированную функцию в поле NUMBER (19,9), итоговый столбец возвращает тип данных NUMBER в Delphi, а на некоторых машинах он загружается как TBCDField с точностью 38, и все идет хорошо, но на некоторых машинах он загружается как TBCDField с точностью 255, и я получаю переполнение BCD на поле.
Чтобы воспроизвести проблему, просто создать таблицу с номером столбца (19,9), и запустить SELECT SUM ( column_name) имя_столбца ОТ table_name GROUP BY column_name.
Несмотря на то, что столбец представляет собой НОМЕР (19,9), итоговый столбец будет НОМЕР, без определенной точности.
В Delphi загрузите запрос в ADOQuery, связанный с ним DataSetProvider и ClientDataSet, связанный с DataSetProvider. После того, как я вызываю ClientDataSet.Open, на некоторых машинах я получаю сообщение переполнения BCD в поле NUMBER, но на многих машинах он работает хорошо.
Почему я получаю эту точность 255 на некоторых машинах, когда клиенты midas.dll, ADO, server, user, oracle все равно на обеих машинах? Есть идеи?
Попробую с помощью Process Explorer. Хорошая идея. Но обе машины имеют одного и того же клиента, я уверен – Pascal