Получаю из com объекта данные в формате varDecimal - и мне их надо скормить TRxMemoryData. Передать я эти данные могу либо asBcd либо asFloat(и asInteger как частное). И как не бьюсь у меня не получается. В интернете информации нет никакой....
Кто нибудь знает как решить?
[Решено] Как сконвертировать varDecimal в real или в bcd
Модератор: Модераторы
[Решено] Как сконвертировать varDecimal в real или в bcd
Последний раз редактировалось rellai2 02.11.2016 12:05:28, всего редактировалось 1 раз.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Ввести промежуточную переменную типа double, присвоить ей varDecimal, а затем передавать значение дальше...
если бы -- Ivalid Variant Typecast
Добавлено спустя 33 минуты 37 секунд:
в общем разобрался
кому интересно:
объявляем
ну а далее
Добавлено спустя 36 секунд:
Для float все аналогично
Добавлено спустя 33 минуты 37 секунд:
в общем разобрался
кому интересно:
объявляем
Код: Выделить всё
function VarI4FromDec(var pdecIn:TDecimal; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromDec'; ну а далее
Код: Выделить всё
if aDataset.FieldDefs[m].DataType in [ftInteger,ftLargeint,ftSmallint] then
begin
if VarIsOrdinal(tmpvar) then
aDataset.Fields[m].AsInteger:= VarAsType(tmpvar,varinteger)
else
begin
if VarI4FromDec(tagdec(tmpvar), tmpInt) = S_OK then
aDataset.Fields[m].AsInteger:= tmpInt;
end;
Добавлено спустя 36 секунд:
Для float все аналогично
