我的Access数据库里字段类型为OLE。里面保存了一张BMP格式的图片。我是这样做的procedure TMainForm.zdqClick(Sender: TObject);
var
tempstream: TMemoryStream;
bmp:TBitmap;
begin
try
tempstream:=TMemoryStream.Create;
TBlobField(ADOQuery_EP.FieldByName('E_Image')).SaveToStream(tempstream);
tempstream.Position:=0;
Bmp:=TBitmap.Create;
BMP.LoadFromStream(tempstream);
EPArchivesForm.Image1.Picture.Bitmap.Assign(BMP);
finally
tempstream.Free;
BMP.Free;
end;
end;取的时候提示Bitmap image is not valid
var
tempstream: TMemoryStream;
bmp:TBitmap;
begin
try
tempstream:=TMemoryStream.Create;
TBlobField(ADOQuery_EP.FieldByName('E_Image')).SaveToStream(tempstream);
tempstream.Position:=0;
Bmp:=TBitmap.Create;
BMP.LoadFromStream(tempstream);
EPArchivesForm.Image1.Picture.Bitmap.Assign(BMP);
finally
tempstream.Free;
BMP.Free;
end;
end;取的时候提示Bitmap image is not valid
begin
streamSaveToStream:=Tmemorystream.Create;
bmp:=TBitmap.Create;
Tblobfield(Fr_RYJBXX.qryJBXX.FieldByName('ZP')).savetostream(streamSaveToStream);
streamSaveToStream.Position:=0;
bmp.LoadFromStream(streamSaveToStream);
ImageYL.Picture.Assign(bmp);
streamSaveToStream.Free;
bmp.Free;
end;
if Fr_RYJBXX.qryJBXX.FieldByName('hzm').AsString='.jpg' then
begin
streamSaveToStream:=Tmemorystream.Create;
ImageJPEG := TJPEGImage.Create();
Tblobfield(Fr_RYJBXX.qryJBXX.FieldByName('ZP')).savetostream(streamSaveToStream);
streamSaveToStream.Position:=0;
ImageJPEG.LoadFromStream(streamSaveToStream);
ImageYL.Picture.Assign(ImageJPEG);
streamSaveToStream.Free;
ImageJPEG.Free;
end;
http://www.chinacode.com/doc/delphi/2006-06-22/78.html搜索一下,资料很多的,这个是我比较满意的方法.