if OpenDialog1.Execute then
  TBlobField(Table1.FieldByName('Image')).LoadFromFile(OpenDialog1.FileName);

解决方案 »

  1.   

    读取:
       TBlobfield(table1.fieldbyname('iamge').savetofile(savedialog1.fileName);
       image1.picture.loadfromfile(savedialog1.filename);
      

  2.   

    table1.open;
      table1.Edit;
      table1image.Assign(image1.picture);
      table1.Post;
      table1.close;
      

  3.   

    我照chechy(我爱洁洁)说的做了一下,结果只能存BMP文件,其他类型的文件都报错,连jpg都不行,为什么?
      

  4.   

    procedure TForm7.Button1Click(Sender: TObject);      //保存.bmp格式的文件到更新包里。
    var str:Tmemorystream;
    begin
    str:=Tmemorystream.Create;
    str.LoadFromFile('d:\cai.jpg');//OpenDialog1.FileName 也可以
    str.Position:=0;    adoquery2.Append;                               //图片
        Tblobfield(adoquery2.FieldByName('image')).loadfromstream(str);
        try
        adoquery2.Post;
        finally
        str.Free;
        end;
    end;
      

  5.   

    procedure TForm5.Button1Click(Sender: TObject);
    var str:Tmemorystream;                   //修改图片POS_mgxid
    begin
    IF not ADOQUERY2.IsEmpty Then               //如果更新编号不为空
      Begin
      str:=Tmemorystream.Create;                        //读取远程更新包的数据到程序执行的目录下面
      str.Position:=0;
      Tblobfield(adoquery2.FieldByName('image')).savetostream(str);
      str.SaveToFile(ExtractFilePath(Application.ExeName)+'image\cai.jpg');
      str.Free;
      end;
      

  6.   

    我猜测,你一定有DBImage控件连接这个'image'字段,所以报错。去掉这个连接后,应该什么文件都不受限制。
      

  7.   

    chechy(我爱洁洁)是那样的,谢谢!
      

  8.   

    不过,我存入一个130k的word文档时,系统报invilid BLOB length错误,为什么?
      

  9.   

    你还是用流的方式存储吧, 这样随便什么类型的文件, 不管其多大都没问题我测试过, 将一个4.5M的.swf格式文件通过流的方式存到image类型的字段,然后再将其存放文件
      

  10.   

    需要修改BDE ADMINISTRATOR的设置,缺省的BDE好像只有32k。
    打开BDE ADMINSTRATOR,选择你的ALIAS,然后将BLOB SIZE改为1024(1M),还有BLOBS TO CACHE也改的大一些。