如何向access数据库中OLE类型的字段插入图片,然后在QRDBimage中显示该图片呢? ( 积分: 100 )

C

cwhu

Unregistered / Unconfirmed
GUEST, unregistred user!
我借鉴别人的方法把图片保存到数据库:
procedure TForm1.savetodbClick(Sender: TObject);
//保存图像
var
strm:tmemorystream;
ext:string;
begin
if image1.picture.Graphic <> nil then
//避免image1中无图像保存出错
begin
ext:=extractfileext(openpicturedialog1.FileName );
//取出文件的扩展名
strm := tmemorystream.Create ;
try
image1.Picture.Graphic.SaveToStream(strm);
adotable1.Edit ;
strm.Position :=0;

tblobfield(adotable1.FieldByName(’myimage’)).LoadFromStream(strm);
//如需直接由文件保存可采用如下注释行
//TBlobField(adotable1.FieldByName(’myimage’)).LoadFromFile(OpenPictureDialog1.FileName);
//以下记录保存到数据库的图像格式
if uppercase(ext) = ’.BMP’ then
adotable1.FieldByName(’isbmp’).Value := 1 //BMP型图像数据
else
if (uppercase(ext) = ’.JPG’) OR ( uppercase(ext) = ’.JPEG’) then
adotable1.FieldByName(’isbmp’).Value := 0;
//JPEG型图像数据
adotable1.Post ;
finally
strm.Free ;
//笔者发现如strm采用tblobstream类,程序运行到该语句会出现问题
end;
end;
end;

把QRDBimage的datafield字段设置为该字段后,在quickreport中预览的时候图片显示不出来。。。望高手赐教!不胜感激!!
 
顶部