为什么这段代码不起作用:
使用此代码保存图像就好了(我也看到了报告中的图像):
gallery.append;
gallery.FieldByName('Image').Assign(pic.Picture.Bitmap);
gallery.post;
然而这段代码:
Gallery.Insert;
S := CreateBlobStream(gallery.FieldByName('Image'), bmWrite);
Image1.Picture.Bitmap.SaveToStream(S);
gallery.Post;
S.Free;
导致错误'DataSet未处于编辑或插入模式'。所以我使用了第一个。
但是将其恢复到Timage中的表单会导致“无效的位图格式”
var S : TStream ;
s := gallery.CreateBlobStream(gallery.FieldByName('Image'), bmRead);
Pic.Picture.Bitmap.LoadFromStream(S);
s.Free;
任何图像都会显示错误。我也使用About.com上的教程尝试了DBimage,并不断收到错误。 数据库是Access 2010,图像字段是OLE(blob)。 有点卡住了。
取值
答案 0 :(得分:0)
我想出来了:
这是如何将Access数据库中的JPG图像显示到Timage:
使用此代码将图像保存到数据库
gallery.append; gallery.FieldByName( '图像')分配(pic.Picture.Bitmap)。 gallery.post;
图库是AdoTable,图像是包含图像的Access字段名称。 现在将图像显示回Delphi Timage组件: 1.在Uses子句中,包含单元的那个使用(File --Use Unit)put:
Uses Jpeg
然后使用此代码显示图像:
var
jpg:TJPegImage;
begin
jpg :=TjpegImage.Create;
jpg.Assign(TblobField(gallery.FieldByName('Image')));
pic.Picture.Bitmap.Assign(jpg);
jpg.Free;
end;
那有多酷。