Проблема с доступом к полям Tfrxadoquery
Добрый день!
Использую Delphi7 + FastReport 4.7.61 + FastScript (внутри дизайнера). Также внутри отчета прилеплен TfrxAdoDatabase и TfrxADOQuery. Коннект осуществляется к MSSQL 2008 Express.
Задача:
Выполнить запрос к таблице БД и вывести результат в отчет. При этом одно из полей является binary полем, в котором находятся зашифрованные данные. Это поле должно передаваться в процедуру Delphi и там расшифровываться, а результат (в виде нескольких значений) возвращаться в отчет.
Проблема:
Пробовал передавать в процедуру Delphi значение поля как:
<QQ."TaxesKeyData">,
QQ.FieldByName('TaxesKeyData').AsVariant,
QQ.Fields[3].AsVariant
передается какая то белиберда, а не то, что в табле.
(QQ: TfrxADOQuery, Data: binary(36) в MSSQL).
вот код FS:
Вопрос:
Как правильно передавать (читать) значение binary-поля ?
в Delphi я, обычно, делал так:
но в FastScript метода GetData почемуто нет... или он не работает
Использую Delphi7 + FastReport 4.7.61 + FastScript (внутри дизайнера). Также внутри отчета прилеплен TfrxAdoDatabase и TfrxADOQuery. Коннект осуществляется к MSSQL 2008 Express.
Задача:
Выполнить запрос к таблице БД и вывести результат в отчет. При этом одно из полей является binary полем, в котором находятся зашифрованные данные. Это поле должно передаваться в процедуру Delphi и там расшифровываться, а результат (в виде нескольких значений) возвращаться в отчет.
Проблема:
Пробовал передавать в процедуру Delphi значение поля как:
<QQ."TaxesKeyData">,
QQ.FieldByName('TaxesKeyData').AsVariant,
QQ.Fields[3].AsVariant
передается какая то белиберда, а не то, что в табле.
(QQ: TfrxADOQuery, Data: binary(36) в MSSQL).
вот код FS:
procedure InternalDSFiscaltmOnAfterData(Sender: TfrxComponent);
var
Money, Commission, Nds: double;
OpCount: integer;
pass: variant;
Pdata: variant;
begin
pass := QQ.FieldByName('TaxesKeyData').AsVariant;
Pdata := QQ.FieldByName('Data').AsVariant;
Execute(pass, Pdata, Money, Commission, nds, OpCount);
Memo1.Text := FloatToStr(Money);
Memo2.Text := FloatToStr(Commission);
Memo3.Text := FloatToStr(nds);
Memo4.Text := IntToStr(OpCount);
end;
Вопрос:
Как правильно передавать (читать) значение binary-поля ?
в Delphi я, обычно, делал так:
var
data: array[1..36] of byte;
begin
...
QQ.FieldByName('TaxesKeyData').GetData(@data);
...
но в FastScript метода GetData почемуто нет... или он не работает
Комментарии
разобрался сам.