往Access2000的ole对象中加入数据文件,如果文件小于1000,000 Bytes,则一切正常,如果文件大于1000,000 Bytes,则提示 Invalid BLOB Length,该如何解决?

解决方案 »

  1.   

    ACCESS数据库对于BLOB的最大存储值为:1000,000 Bytes,如果想解决问题的话,看来只有换数据库了!这是根治的办法!还有一个活办法是,把一个文件切成几个blob类型的字段存储,不过这样的话,可能需要自己写代码去操作具体怎么写了!比较麻烦!
      

  2.   

    可是我PB往Access中写数据,正如Microsoft所言,也能放下1G呀????
      

  3.   

    可是我用PB往Access中写数据,正如Microsoft所言,也能放下1G呀????
      

  4.   

    哪里有比较正式的文件说,ACCESS数据库对于BLOB的最大存储值为:1000,000 Bytes?
      

  5.   

    是不是通过BDE连接数据库?如是,请配置BDE的BLOB SIZE与BLOB CACHE
      

  6.   

    不行,好象与BLOB SIZE和BLOB CACHE没有关系.
      

  7.   

    你的字段设为oleobject吧,我存过,没问题,1G以内没问题.
      

  8.   

    我想知道你的方法,我可以用别的方法,但不是SQL语句,没有看到我的短信吗?
    能不能给一下代码.
      

  9.   

    转化成字符流;
    祝你好运
    ------------------------------------------------
    招聘斑主我们可以一起交流;
    呵呵
    www.nxrs.net/bbs
    谢谢,别抛砖
      

  10.   

    那就不用BLOB来存取,用串来试试,也就是把一个文件读到一个串,存入你的BLOB字段中,读出的时候也读入一个串,再把串转化为一个文件。//try!
      

  11.   

    帮忙去看看相同的问题
    http://expert.csdn.net/Expert/topic/1103/1103044.xml?temp=.8363611有代码,
      

  12.   

    procedure TForm1.CoolButton1Click(Sender: TObject);
    var
      MemStrm:TMemoryStream;
      FileStr:AnsiString;
    begin
      with TFileStream.Create('D:\mp3.exe',fmOpenRead) do
      begin
        try
          SetLength(FileStr,Size);
          Read(FileStr[1],Length(FileStr));
        finally
          Free;
        end;
      end; //存入一个串
      MemStrm:=TMemoryStream.Create;
      try
        MemStrm.Write(FileStr[1],Length(FileStr));
        MemStrm.SaveToFile('D:\1.exe');
      finally
        MemStrm.Free;
      end;//从串中读出
      FileStr:='';//释放串的空间
    end;