我的朋友作了个ACCESS的库,他希望我帮他作个针对该库的管理系统。但他说他没办法设置保存图片的字段。
我在ACCESS里,也找不到二进制字段类型,只有OLE类型,我试着用DBImage关联到OLE字段,但打开数据集时报错:“Bitmap image is not valid.”
请问该如何设置字段类型来保存、读取图片或其他二进制文件呢?

解决方案 »

  1.   

    看一下你的uses里有没有OleCtnrs.
      

  2.   

    哦,原来和一般操作一样,是我在字段中先设置了一个OLE对象,所以DBImage认不出来。
      

  3.   

    Access只能用ole保存图片
    一個Image,兩個button.
    procedure TForm1.Button2Click(Sender: TObject);
    var
      memS:TMemoryStream;
      jpg:TJPEGImage;
    begin
      if ADODataSet1.RecordCount>0 then begin
        memS:=TMemoryStream.Create;
        ADODataSet1pic.SaveToStream(memS);
        memS.Position := 0;    jpg:=TJPEGImage.Create;
        jpg.LoadFromStream(memS);
        image1.Canvas.Draw(0,0,jpg);
        image1.Refresh;    mems.Free;
        jpg.free;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      memS:TMemoryStream;
      bmp:TBitmap;
      jpg:TJPEGImage;
    begin
      if OpenPictureDialog1.Execute then begin
        memS:=TMemoryStream.Create;
        jpg:=TJPEGImage.Create;
        jpg.LoadFromFile(OpenPictureDialog1.FileName);
        jpg.SaveToStream(mems);
        memS.Position := 0;
        image1.Canvas.Draw(0,0,jpg);    ADODataSet1.Active := true;
        ADODataSet1.Edit;
        ADODataSet1pic.LoadFromStream(memS);
        ADODataSet1.Post;    mems.Free;
        jpg.free;
      end;
    end;