Как правильно сохранить отчет в BLOB?
procedure Tfrmdm.designerSaveReport(Report: TfrReport;
var ReportName: String; SaveAs: Boolean; var Saved: Boolean);
var Report_Stream : TMemoryStream;
...
begin
...
ms_query := TMSQuery.Create(nil);
try
ms_query.Connection := ms_connect;
ms_query.SQL.Text := 'select * from schet where id = 1'
OpenQuery(@ms_query, qoOpen);
report_stream := TMemoryStream.Create;
try
Report.EMFPages.SaveToStream(Report_Stream);
ms_query.Edit;
TBlobField(ms_query.FieldByName('report')).LoadFromStream(report_stream);
ms_query.Post;
finally
FreeAndNil(report_stream);
end;
Saved := true;
finally
ms_query.Free;
end; {finally}
end
Подскажите, где ошибка: данные сохраняются, но старые, которые были перед редактированием пользователя (т.е. изменения не сохраняются).
var ReportName: String; SaveAs: Boolean; var Saved: Boolean);
var Report_Stream : TMemoryStream;
...
begin
...
ms_query := TMSQuery.Create(nil);
try
ms_query.Connection := ms_connect;
ms_query.SQL.Text := 'select * from schet where id = 1'
OpenQuery(@ms_query, qoOpen);
report_stream := TMemoryStream.Create;
try
Report.EMFPages.SaveToStream(Report_Stream);
ms_query.Edit;
TBlobField(ms_query.FieldByName('report')).LoadFromStream(report_stream);
ms_query.Post;
finally
FreeAndNil(report_stream);
end;
Saved := true;
finally
ms_query.Free;
end; {finally}
end
Подскажите, где ошибка: данные сохраняются, но старые, которые были перед редактированием пользователя (т.е. изменения не сохраняются).
Комментарии
OpenQuery(@ms_query, qoOpen);
Report.PrepareReport;
report_stream := TMemoryStream.Create;
try
Report.EMFPages.SaveToStream(Report_Stream);
Пользователь ведь поредактировал отчет в дизайнере. И я хочу сохранить изменения сделанные пользователем в таблицу. Для этого я использую запрос ms_query.
Report.EMFPages.SaveToStream
а не
Report.SaveToStream ?