从数据库读出图像时候的错误(100分)

  • 主题发起人 主题发起人 warket
  • 开始时间 开始时间
W

warket

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ADO读取SQL2000数据库里面的一个PHOTO字段,该字段是二进制的图形,我用
MemStrm:=TMemoryStream.Create;
try
TBlobField(ADOquery1.FieldByName('PHOTO')).SaveToStream(MemStrm);
MemStrm.Position:=0;
Image1.Picture.LoadFromStream(MemStrm);//出错位置

出现了 JPG #53 错误,不知道怎么办?
 
可能和数据有关系,你保存的是图片文件吗?
 
刚才测试通过的代码
procedure disppicture;
var MemStrm:TMemoryStream;
begin
with datam.DataM1,input_Form do
begin
MemStrm:=TMemoryStream.Create;
TBlobField(Query2.fieldbyname('PHOTO')).SaveToStream(MemStrm);
MemStrm.Position:=0;
Image1.Picture.Graphic.LoadFromStream(MemStrm); //注意这里。
MemStrm.free;
end;
end;
别忘记引用 JPeg 单元
 
zywcd,这里的
with datam.DataM1,input_Form do
是什么意思呢??
而且结果也是出错。
 
其实你出错的原因很简单,就是没有在image中定义jpg的格式
两种方法可以解决。
1、在你现在的image中放置一张jpg的图片。
2、使用下面的代码处理。
var tjepg1: TJpegImage;
MemStrm:TMemoryStream;
begin
MemStrm:=TMemoryStream.Create;
tjepg1:= TJpegImage.Create;
TBlobField(Query2.fieldbyname('PHOTO')).SaveToStream(MemStrm);
MemStrm.Position:=0;
tjepg1.LoadFromStream(memStrm);
Image1.Picture..Bitmap.Assign(tjepg1); //注意这里。
MemStrm.free;
tjepg1.free;
 
zywcd说对了
 
或者你存在数据库的 不是 jpg 文件格式
 
zywcd说对了
 
接受答案了.
 
后退
顶部