我试图用DBIMAGE读取储存在SQL-SERVER中的图片,但DELPHI提示我"stream read error",该如何解决?

解决方案 »

  1.   

    你存图片时是怎么存的啊.下面是我的程序,不知道对你有没有帮助
    var tempbmp: tbitmap;
        tempjpg: tjpegimage;if lowercase(extractfileext(openpicturedialog1.filename)) = '.bmp' then
        begin
          tempbmp := tbitmap.Create;
          tempjpg := tjpegimage.Create;
          tempbmp.LoadFromFile(openpicturedialog1.filename);
          tempjpg.CompressionQuality := 100;
          tempjpg.Assign(tempbmp);
          image1.picture.bitmap.Assign(tempjpg);
          tempjpg.SaveToStream(tfstream);
          tempbmp.free;
          tempjpg.free;
        end  else  begin
          tempjpg := tjpegimage.create;
          tempjpg.CompressionQuality := 100;
          tempjpg.LoadFromFile(openpicturedialog1.filename);
          image1.picture.bitmap.Assign(tempjpg);
          tempjpg.SaveToStream(tfstream);
          tempjpg.free;
        end;tblobfield(dm.ado_cp.fieldbyname('图片')).loadfromstream(tfstream);
    tfstream.Clear;
    tfstream.Size:=0; //上面这些是保存图片的.
    ------------------------------------
    var MyJpeg: TJpegImage;
        MyStm: TMemoryStream;MyJpeg := TJpegImage.Create;
      MyStm := TMemoryStream.Create;
        try
          MyStm.Clear;
          TBlobField(ado_sel.FieldByName('cpty')).SaveToStream(MyStm);
          MyStm.Position := 0;
          MyJpeg.LoadFromStream(MyStm);
          //mystm.SaveToStream(tfstream);
         image1.picture.Bitmap.Assign(myjpeg);
        finally
         mystm.free;
         myjpeg.free;
       end;
    //这些是读取图片,
    我是读到.image 里.
      

  2.   

    我是通过SQL的INSERT语句将磁盘上的一个JPG文件送进数据表中一个IMAGE字段.根据SQL说明,图片将以二进制方式储存在SQL内.