Fib+ и Bcd поля в кубе
При использовании FastCube с pFIBDataSet стабильно не хочет работать с BCD полями.
Выскакивает ошибка на строке 5493 в fcCube.pas:
D := BCDToDouble(TBCD(AValue^));
использую Fib+ 6.25.0 и FasCube 1.4.3
Firebird 1.5.3
Delphi 7
поля на сервере описаны как DECIMAL(15,2)
Кто-то сталкивался с таким? Есть готовое решение?
Торгашов Александр
alext@popu.lisgroup.net
Выскакивает ошибка на строке 5493 в fcCube.pas:
D := BCDToDouble(TBCD(AValue^));
использую Fib+ 6.25.0 и FasCube 1.4.3
Firebird 1.5.3
Delphi 7
поля на сервере описаны как DECIMAL(15,2)
Кто-то сталкивался с таким? Есть готовое решение?
Торгашов Александр
alext@popu.lisgroup.net
Комментарии
Сейчас проверю, отвечу.
С уважением, Олег.
Нашел особенность в работе с BCD полями в Fib+.
Исправление в fcCube.pas:
в procedure TfcArrayUniqueValues.AddValue;
заменить строку
GetMem(ATempPointer, FDataSet.Fields[DT.Index].DataSize);
на
if DT.FieldType = ftBCD then
GetMem(ATempPointer, SizeOf(TBCD))
else
GetMem(ATempPointer, FDataSet.Fields[DT.Index].DataSize);
Сообщите пожалуйста о результате.
С уважением, Олег.
С наступающим Новым Годом!
Торгашов Александр