如何将数码相片存入数据库(ACCESS),又将数据库中的相片读出来显示在界面(Image控件)上,使用ADO控件连接!!!

解决方案 »

  1.   

    读取
    procedure TForm1.Button1Click(Sender: TObject);
    var
      tmpMemory : TMemoryStream;
      tmpjpg : TJPEGImage;
    begin
      Image1.Picture.Assign(nil);
      with ADOQuery1 do
      begin
        close;
        open;
        Last;
      end;
      tmpMemory := TMemoryStream.Create;
      tmpjpg := TJPEGImage.Create;
      try
        TBlobField(ADOQuery1.FieldByName('screenpc')).SaveToStream(tmpMemory);
        tmpMemory.Position := 0;
        tmpjpg.LoadFromStream(tmpMemory);
        Image1.Picture.Assign(tmpjpg);
      finally
        tmpMemory.Free;
        tmpjpg.Free;
      end;
    end;保存
    procedure TForm1.Button2Click(Sender: TObject);
    var
      tmpMemory : TMemoryStream;
      tmpBmp : TBitmap;
    begin
      tmpMemory := TMemoryStream.Create;
      tmpBmp := TBitmap.Create;
      tmpBmp.Assign(Image1.Picture.Bitmap);
      tmpBmp.SaveToStream(tmpMemory);
      tmpMemory.Position := 0;
      with ADOQuery1 do
      begin
        close;
        open;
        Append;
        TBlobField(FieldByName('screenpc')).LoadFromStream(tmpMemory);
        post;
      end;
      
    end;
      

  2.   

    上边的程序,我试了保存,有问题,提示丢失ADOQuery1的SQL操作,我把ADOQuery1换成Table1,可以使用,但只能保存位图,而不能保存JPEG格式的数码相片,请高手指点一下~~~
      

  3.   

    做一下JPG和BMP的类型转换,网上有很多这样的代码。