//就是传统的那种
写的时候是这样的
Mstream:=TMemorystream.Create;
try
Mstream.LoadFromFile(File_path+file_name);
sqlstr := 'select * from rpt_tab where rptname='''+lfilename+'''';
if ExecuteSql(ADOQuery,sqlstr,0)<>0 then exit;
ADOQuery.Edit;
Mstream.Position:=0;
(ADOQuery.fieldbyname('RptFile') as Tblobfield).LoadFromStream(Mstream);
ADOQuery.Post;
finally
Mstream.Free;
end;
读的时候是这样的:
Mstream:=Tmemorystream.Create;
try
sqlstr := 'select * from rpt_tab';
if ExecuteSql(ADOQuery,sqlstr,0)<>0 then exit;
if ADOQuery.IsEmpty then exit;
for i := 0 to ADOQuery.RecordCount - 1 do
begin
Mstream.Clear;
TBlobField(ADOQuery.FieldByName('RptFile')).savetoStream(Mstream);
if Mstream.Size>0 then
begin
Mstream.position:=0;
Mstream.SaveToFile(File_path +ADOQuery.FieldByName ('RptName').AsString+'.rpt');
end;
ADOQuery.Next;
end;
finally
Mstream.Free;
end;