Есть желанеи хранить все отчеты в БД (Firebird 2.5)
Создал таблицу settings
первое поле id - integer
второе blob - туда засунул файл отчета
При попытке считывания operation cannot be performed on an inactive dataset. Отстанов на строке - 10661 LR_Class.pas
- Код: Выделить всё
procedure TfrReport.LoadFromDB(Table: TDataSet; DocN: Integer);
var
Stream: TMemoryStream;
begin
Table.First;
while not Table.Eof do
begin
if Table.Fields[0].AsInteger = DocN then
begin
Stream := TMemoryStream.Create;
TfrTBlobField(Table.Fields[1]).SaveToStream(Stream);
Stream.Position := 0;
LoadFromStream(Stream);
Stream.Free;
Exit;
end;
Table.Next;
end;
end;
Добавлено спустя 1 минуту 5 секунд:
Вызываю таким кодом
- Код: Выделить всё
frReport1.LoadFromDB(DM.DataSourceSettings.DataSet,1);
frReport1.ShowReport();