请问怎么样从SQL SERVER2000里面存取JPG图片啊

解决方案 »

  1.   

    用流来存取.
    用image控件来显示.
      

  2.   

    找到1stclass3000组件,里面有个dbimage,设置类型为jpg www.51delphi.com
      

  3.   

    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;
    end;
      

  4.   

    显示数据库中的jpg图片到image中
    var 
      MyJPEG:TJPEGImage;
      MS:TMemoryStream;
    begin
      MyJPEG:=TJPEGIMage.Create;
      MS:=TMemoryStream.Create;
      try
        TBlobField(Adotable.FieldByName('图片')).savetostream(MS);
        MS.position:=0;
        MyJPEG.LoadFromStream(MS);
        Image.picture.bitmap.assign(MyJPEG);
      finally
        MyJPEg.free;
        MS.free;
      end;
    end;
    保存JPG到数据库中
    var 
      MyJPEG:TJPEGImage;
      MS:TMemoryStream;
    begin
      MyJPEG:=TJPEGIMage.Create;
      MS:=TMemoryStream.Create;
      try
        MyJPEG.Assign(Image.picture.bitmap);
        MyJPEG.SaveToStream(MS);
        MS.position:=0;
        Adotable.Edit;
        TBlobField(Adotable.FieldByName('图片')).savetostream(MS);
        AdoTable.Post;
      finally
        MyJPEg.free;
        MS.free;
      end;
    end;
      

  5.   

    装入
    tblobfield(adoquery1.FieldByName('jpg')).LoadFromFile(FileName) ;
    另存为
    tblobfield(adoquery1.FieldByName('jpg')).SaveToFile(FileName) ;
    显示
    procedure Tfrmado.DataSource1DataChange(Sender: TObject; Field: TField);
    var
    jpeg:tjpegimage;
    stream :TMemoryStream;
    begin
    if adoquery1jpg.BlobSize>0 then
    begin
    jpeg:=tjpegimage.Create;
    stream :=TMemoryStream.Create;
    tblobfield(adoquery1.FieldByName('jpg')).savetostream(stream);
    Stream.Seek(0,soFromBeginning);
    jpeg.loadfromstream(stream);
    image.Picture.Bitmap.Assign(jpeg);
    jpeg.Free;
    stream.Free;
    end
    else
    image.Picture:=nil;
    end;