现有一个oracle表中有两个BLOB类型字段存的是文件或者视频,大小可能有300M或者更大的文件,现在我要解决的问题就是我怎样才可以分块读取或写入这些数据,现在我一次性存SaveToStream或LoadFromStream太占内存了,如果内存太小就会溢出,所以请高手指点用什么方法可以分块读取或写入。希望有源码参考。先谢过。
注:ADO连接我用的是oracle自己的驱动,微软的好像不太好用。

解决方案 »

  1.   

    这个只能是存储的时就要分批才行,用zip压缩,存储到几条记录就可以了
      

  2.   

    http://www.eygle.com/archives/2005/04/eoaplsqloeaoeae.html用pl/sql
      

  3.   

    注:现在是DELPHI版块,我肯定是要用DELPHI操作的。
      

  4.   

    没有人会用Field或Parameters的AppendChunk属性,通过oracle存储过程实现吗
      

  5.   

    建一个文件流 TFileStreamfilestream := TFileStream.Create('d:\abc.avi', fmCreate);
    filestream.CopyFrom(blobstream, 0);
    filestream.Free();这样就把Blob字段数据保存到了文件 d:\abc.avi 中
      

  6.   

    这样用跟SaveToFile有很大区别嘛?不同样还是一次性拿到整个数据,有没有分块循环读取或写入的,比如每次只读取或写入1M
      

  7.   

    高手呢,没有DELPHI的给段VC操作数据库BLOB大字段的代码也可以