////连结的是DBDEMOS中的animals表,想将图片字段存在制定的路径下如“d:\1.bmp”。
问题:
一下方法,存的图片打不开。求原因!procedure TForm1.Button2Click(Sender: TObject); var
  ms: TMemoryStream;  begin
try
ms := TMemoryStream.Create;
tblobfield(query1.FieldByName('BMP')).SaveToStream(ms);
ms.SaveToFile('d:\1.bmp');
finally
  ms.Free;
end;
end;

解决方案 »

  1.   

    var
          ms : TADOBlobStream;
    begin
          ms := TADOBlobStream.Create(TBlobField(query1.FieldByName('BMP')), bmRead);
          ms.Seek(0, soFromBeginning);
          ms.SaveToFile('d:\l.bmp');
          ms.Free;
    end;
      

  2.   

    foilsman(刀仔) ,
    不行啊!
      

  3.   

    //(1)如果使用的是TTable,则要将其ReadOnly属性先置为false,然后调用Edit函数;
    //(2)如果使用的是TQuery,则要将其RequestLive属性先置为true,然后调用Edit函数;var
          ms : TADOBlobStream;
    begin
          query1.Edit;//只能是Edit;不能是Append 和 Insert;
          ms := TADOBlobStream.Create(TBlobField(query1.FieldByName('BMP')), bmRead);
          ms.Seek(0, soFromBeginning);
          ms.SaveToFile('d:\l.bmp');
          query1.Post;
          ms.Free;
    end;
      

  4.   

    将一个DBImage连接到需要的列,然后DBImage1.Savetofile('D:\a.bmp');
      

  5.   

    当然这种方式只能对BMP格式的图片进行转存
      

  6.   

    数据库中该子段default 为' ',中间有一个空格
      

  7.   

    加一行代码试试
    ms.position:=0;
    我认为也有可能是你存的图片是jpg的