我可以给你BlobStream读写的函数
//Field:字段名
//sFileName:要保存的文件名
procedure SetBlob(Field: TField; sFileName: string);
function BlobContent2String(const FileName: string): string;
begin
if FileExists(FileName) then
begin
with TFileStream.Create(FileName,fmShareDenyNone) do
try
SetLength(Result,Size);
Read(Pointer(Result)^,Size);
finally
Free;
end;
end
else
begin
Exit;
end;
end;
begin
if Field.DataSet.State in [dsInsert, dsEdit] then
begin
Field.AsString := BlobContent2String(sFileName);
end;
end;
//ExtName:文件扩展名,因为我要用ole打开注册的文件
function GetBlob(Field: TField; ExtName: string): string;
var
sFileName: string;
Bs: TADOBlobStream;
begin
//GetSysTemp:取得系统临时文件路经
sFileName := GetSysTemp+'tmp'+ExtName;
Bs := TADOBlobStream.Create(Field as TBlobField,bmRead);
try
Bs.SaveToFile(sFileName);
Result := sFileName;
finally
Bs.Free;
end;
end;