delphi中如何将jpg图片存入access数据库,又如何将已存入到数据库的图片读取回delphi的Image控件里,请指教!!!

解决方案 »

  1.   

    procedure savejpg(Sender: TObject);
    var
      fs : Tfilestream;
    begin
      fs := TFileStream.Create('c:\test.jpg', fmOpenRead);
      adoquery1.close;
      adoquery1.sql.text := 'select id, img from table1';
      adoquery1.open;
      adoquery1.append;
      adoquery1.fieldbyname('id').asinteger := 1;
      TBlobfield(adoquery1.fieldbyname('img')).loadfromstream(fs);
      adoquery1.post;
      fs.Free;
    end;
    -------
    procedure getjpg(Sender: TObject);
    begin
      adoquery1.close;
      adoquery1.sql.text := 'select id, img from table1';
      adoquery1.open;
      TBlobfield(adoquery1.fieldbyname('img')).savetofile('c:\test.jpg');
      image1.loadfromfile('c:\test.jpg');
    end;
      

  2.   

    保存:
      ADOQuery1.Insert;
      TBlobField(ADOQuery1.FieldByName('Image')).LoadFromFile('C:\test.jpg');
      ADOQuery1.Post;读取:
      Stream := TMemoryStream.Create;
      TBlobField(ADOQuery1.FieldByName('Image')).SaveToStream(Stream);
      Jpg := TJPEGImage.Create;
      Jpg.LoadFromStream(Stream);
      Image1.Picture.Assign(Jpg);
      Jpg.Free;
      Stream.Free;
      

  3.   

    有好几种方法: 一、 assign方法可以将一个图片存到数据库中  Adoqry.parameters.parambyname('img').assgin(image1.picture.bitmap)
    二、Tmemorystream ms:Tmemorystream
     
    ms:=Tmemorystream.create;...Adoquery.parameters[0].loadfrom(ms)....
      

  4.   

    可以说明一下吗?TBlobfield(adoquery1.fieldbyname('img')).loadfromstream(fs);
    TBlobfield(adoquery1.fieldbyname('img')).savetofile('c:\test.jpg');
    这两句的作用,还有TBlobfield是什么最后就是如何给分?
      

  5.   

    保存图片到数据库中:
    procedure AddPicToDatabase(Filename:string);
    var
      JPG:TJPEGImage;
      Stream:TMemoryStream;
    begin
    try
      jpg:=TJPEGImage.Create;
      stream:=TMemoryStream.Create;
      jpg.LoadFromFile(Filename);
      jpg.SaveToStream(stream);
      stream.Position:=0;
      TBlobField(mainfrm.Table1.FieldByName('Pic')).LoadFromStream(stream);
      jpg.Free;
      stream.Free;
    except
    end;
    end;从数据库中读出图片
    procedure LoadPicFromDatabase(Sender:TImage);
    var
      Jpg:TJpegImage;
      Stream:TMemoryStream;
    begin
      jpg:=TJpegImage.Create;
      stream:=TMemoryStream.Create;
      TBlobField(mainfrm.Table1.FieldByName('Pic')).SaveToStream(stream);  
      stream.Position:=0;
      jpg.LoadFromStream(stream);
      sender.Picture.Assign(jpg);
      jpg.Free;
      stream.Free;
    end;
    ---------------------------------------------- 
         最后教你给分:
    点管理-------------->找到Coeltdit----------->输入100分,OK完成;
      

  6.   

    http://blog.csdn.net/ghyghost/archive/2003/07/21/15773.aspx