怎样在Oracel数据库里的BLOB字段存取图象文件(100分)

  • 主题发起人 主题发起人 caj
  • 开始时间 开始时间
C

caj

Unregistered / Unconfirmed
GUEST, unregistred user!
请教怎样在Oracel数据库里的BLOB字段存取图象文件,前台用的是delphi,我试了很多次都不行,好象要用Oracel的函数转换一下.如果您有这方面的资料请email给我,万分感谢!
 
//保存图象到数据库中

DBIMAGE1.LOADFROMFILE('');
//下面这两句一定要加
DBIMAGE1.COPYTOCLIPBOARD;
DBIMAGE1.PASTEFROMCLIPBOARD;
 
TBlob(Table1.FieldByName('bmpField')).LoadFromStream(Stream);
bmpField为你的图象字段,Stream为你从文件或ClipBoard中装入的图象流
 
示例:
将BMPFile图形文件的内容载入Table1的XXX的BLOB字段。

var
FileStream: TFileStream;
BLOBStream: TBLOBStream;
BMPFile: string;

begin
BMPFile := 'c:/ok.bmp';
if FileExists(BMPFile) then
begin
Table1.Edit;
try
FileStream := TFileStream.Create(BMPFile, fmOpenRead);
try
BLOBStream := TBLOBStream.Create
(TBLOBField(Table1.FieldByName('XXX')),bmReadWrite);
BLOBStream.CopyFrom(FileStream, FileStream.Size);
finally
BLOBStream.Free;
end;
Table1.Post;
finally
FileStream.Free;
end;
end;
end;
 
题外话,若是用ORACLE,赶快用DOA(Direct Oracle Access)吧,
性能至少比BDE快5倍
 
用流存取图像完全正确,实践很成功
 
多人接受答案了。
 
后退
顶部