在access中好象没有什么Blob类型的字段,只有一个[OLE 对象]的字段类型有点象,但是又不会用,不知道在delphi里该如何将图像存储倒access数据表中!恳请各位能不吝赐教!谢谢!

解决方案 »

  1.   


    用ole跟用blob类型一样存取
      

  2.   


    存到数据库
    var
    pjpg:tjpegimage;
    pic:TMemoryStream;
    begin
    pjpg:=tjpegimage.Create;
    pjpg.LoadFromFile(F:\JPG.jpg);
    pic:=TMemoryStream.Create;
    pjpg.SaveToStream(pic);
    pic.Position:=0;
    TBlobField(dataset.FieldByName('Img')).LoadFromStream(pic);
    dataset.post;
    pic.Free;
    pjpg.free;
    end;
    从数据库取出
    var
    pjpg:tjpegimage;
    pic:TMemoryStream;
    begin
    pjpg:=tjpegimage.Create;
    pic:=TMemoryStream.Create;
    TBlobField(dataset.FieldByName('Img')).savetoStream(pic);
    pic.positon:=0;
    pjpeg.LoadFromStream(pic);
    image.graphi.bmp.assign(pjpeg);
    end;end;
      

  3.   

    非常谢谢大家,不过好象我有DBImage控件绑定到相应的数据字段时,图像还是不能显示,总是弹出“Bitmap image is not valid.”的错误提示,在Access中字段的类型我选的是[OLE 对象],不知道是什么地方错了!
      

  4.   

    这说明不支持该格式,DBImage不支持JPG,支持BMP
      

  5.   

    jpg存入数据库不用转换成流形式,读出时则需要,并且只能用image显示,dbimage不行