我想将fastReport的报表文件保存到数据库中进行管理,在使用时读出。数据库为Access,其中保存报表文件的字段为OLE对象类型,在Delphi中的代码如下:{读报表文件并装载到报表控件中}
procedure TfrmMyReport.btnGetReportClick(Sender: TObject);
var
Stream:TMemoryStream;
begin
if (ADOTable1.State in [dsEdit,dsInsert]) then
exit;
Stream:=TMemoryStream.Create;
TBlobField(ADOTable1.FieldByName('mr_File')).SaveToStream(Stream);
frReport1.LoadFromStream(Stream);
Stream.Free;
end;{从报表控件中读出报表并保存到数据库中}
procedure TfrmMyReport.btnSetReportClick(Sender: TObject);
var
Stream:TMemoryStream;
begin
if not (ADOTable1.State in [dsEdit,dsInsert]) then
exit;
Stream:=TMemoryStream.Create;
frReport1.SaveToStream(Stream);
TBlobField(ADOTable1.FieldByName('mr_File')).LoadFromStream(Stream);
Stream.Free;
end;为什么不行?
procedure TfrmMyReport.btnGetReportClick(Sender: TObject);
var
Stream:TMemoryStream;
begin
if (ADOTable1.State in [dsEdit,dsInsert]) then
exit;
Stream:=TMemoryStream.Create;
TBlobField(ADOTable1.FieldByName('mr_File')).SaveToStream(Stream);
frReport1.LoadFromStream(Stream);
Stream.Free;
end;{从报表控件中读出报表并保存到数据库中}
procedure TfrmMyReport.btnSetReportClick(Sender: TObject);
var
Stream:TMemoryStream;
begin
if not (ADOTable1.State in [dsEdit,dsInsert]) then
exit;
Stream:=TMemoryStream.Create;
frReport1.SaveToStream(Stream);
TBlobField(ADOTable1.FieldByName('mr_File')).LoadFromStream(Stream);
Stream.Free;
end;为什么不行?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货