我的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

解决方案 »

  1.   

    if Fr_RYJBXX.qryJBXX.FieldByName('hzm').AsString='.bmp' then
        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;
      

  2.   

    DELPHI存取JPEG、BMP图像到数据库完整解决方案
    http://www.chinacode.com/doc/delphi/2006-06-22/78.html搜索一下,资料很多的,这个是我比较满意的方法.