我用BDE方式(我以把BDE中的Blob Size 设成6000 Blobs To Cache设成200),用image数据类型存储3~4M大的文件还是出现 “Invalid Blob length”错误,这是image数据类型的错误 还是BDE设置错误?怎么解决?

解决方案 »

  1.   

    改用ADO吧。procedure TForm1.Button1Click(Sender: TObject);
    begin
       if OpenPictureDialog1.Execute then
       Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
       ADOTable1.Append;
       TBlobField(ADOTable1.FieldByName('FImage')).LoadFromFile(OpenPictureDialog1.FileName);
       ADOTable1.Post;
    end;
      

  2.   

    谢谢pengdali
    我会用ADO试试的,但是我想知道BDE为什么不行??
      

  3.   

    将Bde的Blod size 设大一点就好了
      

  4.   

    也有可能是内存不足,这个很吃内存的
    要是数据表里的blob字段的话,要用函数getmem和函数getdata
    如果是文件的话,是imager类型的干吗要涉及到blob了,还有就是你用的是delphi6的话,先下载两个补丁包安装;
    而且delphi6对blob类型处理有漏洞
      

  5.   

    To:Kevin218
    我是把文件存入数据库的某个字段中,1M以下的都成功了,但是选了个3.6M的就不行了。
    (ADO已经我已经试过可行了)
      

  6.   

    你不妨直接设置DATABASE控件的BLOB SIZE属性
      

  7.   

    主要原因还是在BLOB SIZE 上,我原来存过10M左右的文件都没事的
      

  8.   

    to:things(平)
      直接设置DATABASE控件的'BLOB SIZE'怎么设?
      TDataBase,TTable,TQuery好像都没有这个属性。。
    to: belllab(bell):
      我已经把BLOB SIZE 设成6000(K)了呀
      你以前是怎么做的?