Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» FibPlus & Delphi XE2

Автор: AnViSe
Дата сообщения: 01.02.2012 15:52
Столкнулся со следующей проблемой:

Имеем:
База FireBird 2.5
FibPlus 6.9.9

TRead: TpFIBDataSet;

поле SUMMA_PROD имеет тип Numeric(15,2)

Набор TRead возвращает значения типа:

SUMMA_PROD
125 000,00
250 120,00
5 500,00

После преобразования в строку методом: TRead.FBN('SUMMA_PROD').AsString
имеем значения:

SUMMA_PROD
125.0
250.12
5.5

При ручной конвертации методом: FloatToStr(TRead.FBN('SUMMA_PROD').AsFloat)
имеем значения:
SUMMA_PROD
125000
250120
5500

Хотелось бы иметь второй результат но используя первый метод.
Куда рыть?

З.Ы. На Delphi 2010 все норм.

Автор: druff
Дата сообщения: 02.02.2012 09:24
6.9.9 ведь официально несовместимы с XE2? может действительно есть особенности.. Если есть исходники фибов - попробуй под отладчиком походить, увидишь где проблема.
Автор: AnViSe
Дата сообщения: 07.02.2012 08:14
Такая же проблема оказалась и с переводом полей типа TDate в String. Формат результата вместо ожидаемого dd.MM.yyyy оказался dd/MM/yyyy, хотя в региональных настройках винды указан первый формат.

Ну и напоследок может и не в тему: почему в XE2 из этой переменной FormatSettings.ShortDateFormat получаю формат dd/MM/yyyy, хотя настроен как dd.MM.yyyy.
Автор: romano501
Дата сообщения: 04.04.2013 10:42
Попробуй использовать выражение TRead.FBN('SUMMA_PROD').DisplayText. Оно отобразит значение в соотв. с форматом поля DisplayFormat. Да и от версии Delphi это не зависит
Автор: OXDBA
Дата сообщения: 04.04.2013 13:01
см. TpFIBDataSet.DefaultFormats

Страницы: 1

Предыдущая тема: ODAC и BLOB в RAD Studio 2010


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.