savetofile 可以存为XML文件。 流操作可参看:转贴://写入 var MS: TFileStream; begin if OpenDialog1.Execute then begin MS:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead); MS.Position:=0; Table1.Append; //在数据库中添加一条记录 TBlobField(Table1.FieldbyName(’FieldDoc’)).LoadFromStream(MS); Table1.Post; MS.Free; end; end; // 读取 var FileSource ,FileDest : Tfilestream; fileStrd,FileStrs:string; F:File; begin with Table1 do FileSource:=CreateBlobStream(FieldbyName(’ fieldDoc’),bmRead); try if savedialog1.Execute then begin filestrd := savedialog1.FileName; end; if not FileExists(Filestrd) then//如不存在新建 begin assignFile(F,Filestrd); Rewrite(f); CloseFile(F); end; fileDest := TFileStream.Create(FileStrD,fmOpenWrite or fmShareDenyRead); try FileDest.CopyFrom(FileSource,FileSource.Size); finally FreeAndNil(FileDest); end; finally FreeAndNil(FileSource); //释放文件流 end;end;
流操作可参看:转贴://写入
var
MS: TFileStream;
begin
if OpenDialog1.Execute then
begin
MS:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
MS.Position:=0;
Table1.Append;
//在数据库中添加一条记录
TBlobField(Table1.FieldbyName(’FieldDoc’)).LoadFromStream(MS);
Table1.Post;
MS.Free;
end;
end;
// 读取
var
FileSource ,FileDest : Tfilestream;
fileStrd,FileStrs:string;
F:File;
begin
with Table1 do
FileSource:=CreateBlobStream(FieldbyName(’ fieldDoc’),bmRead);
try
if savedialog1.Execute then
begin
filestrd := savedialog1.FileName;
end;
if not FileExists(Filestrd) then//如不存在新建
begin
assignFile(F,Filestrd);
Rewrite(f);
CloseFile(F);
end; fileDest := TFileStream.Create(FileStrD,fmOpenWrite or fmShareDenyRead);
try
FileDest.CopyFrom(FileSource,FileSource.Size);
finally
FreeAndNil(FileDest);
end;
finally
FreeAndNil(FileSource); //释放文件流
end;end;
FileStream: TFileStream;
st:TStringStream;
Fname:string; Fname:=extractfiledir(application.ExeName)+'\temp\'+FieldByName('FileName').AsString;
FileStream := TFileStream.Create(fname,fmCreate or fmOpenWrite);
FileStream.Position:=0;
tblobfield(fieldbyname('FileContent')).SaveToStream(filestream);
FileStream.Free;