dbimage显示access中的图片,帮帮忙(100分)

  • 主题发起人 主题发起人 Thao
  • 开始时间 开始时间
T

Thao

Unregistered / Unconfirmed
GUEST, unregistred user!
var
Ms:TMemoryStream;
begin
Ms := TMemoryStream.Create;
Adoquery1photo.SaveToStream(Ms);
image1.Picture.Bitmap.LoadFromStream(Ms);
end;
为什么都不显示
 
保存图片?你的内存流里装的好象是整个数据集对象呀

 
那我该如何解决?
 
加上ms.position:=0;
 
to:风中流云
会提示:bitmap is not a valid
 
如果显示的是bmp图片,简单点来用:
Image1.Picture.Bitmap.Assign(TBLOBField(Adoquery1photo['imgfield'])

保存则:
Adoquery1photo.SQL.Add('insert into Pic values(:Pic)');
Adoquery1photo.Parameters.ParamByName('Pic').Assign(Image1.Picture.Bitmap);c
 
我得意思是access中存储的图片是ole对象,dbimage不能直接显示,如果要显示它,该怎么办
 
类型转换!
 
我来告诉你,如果你原来是直接以二进制保存的,则萧月禾 的是正确的.
如果你原来是在access中用什么ole放进去的,在实际的字段二进制数据中,
access在前面加了一些数据用于识别,结果导至实际的数据并非一个bmp,
(如何去掉前面的东东我也没试过).就会发生你的这种错误!
实际上你用ole字段,存数据时要自己写代码才好.存放的大小好象可以达到1G
我用ole字段存放过jpg,bmp和100M文件,速度比较慢但不是不可以.
 
access只能用ole方式存储图片吧
 
多人接受答案了。
 
后退
顶部