了读写BLOB 字段,ADO为这些BLOB字段提供了两种方法GetChunk和AppendChunk,通过它们,你可以象读写文件一样,把其它文件的内容写进去读出来。 
GetChunk方法 
使用方法:variable = field.GetChunk( Size ) 
其中field为一个大文本或者二进制字段,size为要从该字段获得的字节或字符数。执行完将返回一个数据起始地址。由于系统限制,我们最好能够一部分一部分地从该字段获取数据,而不是整个把全部数据读出来。如果给定的size 大小大于该字段剩余没读出的的字节数,那么GetChunk仅返回剩余的数据;如果字段为空,将返回一个null值。 
每一次顺序地调用GetChunk获取数据,都将从上一次读写没有读到的地方开始,然而如果你正从一个字段获取数据,然后又去设置或读取当前记录的另外一个字段,这样ADO就会认为你已经完成第一个字段的读取,如果你接着又读取第一个字段,ADO就会把这次调用视为一个新的GetChunk操作,将从数据的起始位置读写。如果你存取的是其它记录集对象,而且这个记录集不是第一个记录集的复制品,那么这个过程将不会打断GetChunk操作。 
如果你想使用GetChunk方法读取一个字段,你必须把字段对象的Attributes属性的adFldLong位设置为真。如果你在一个没有当前记录的字段对象上使用GetChunk方法,将返回3021错误代码(没有当前记录)。 
AppendChunk方法 
使用方法:object.AppendChunk Dataobject 为一个字段或参数对象。 
Data 为一个包含数据变量,这些数据将被追加到对象中。 
同上面一样,如果你的系统内存有限,你尽可能分多次把数据追加到字段或参数对象。 
如果你想使用AppendChunk 方法写一个字段,你需要把字段对象的字段Attributes属性的adFldLong位设置为真,第一次对一个字段对象使用AppendChunk方法,将会覆盖任何已有数据,后面调用AppendChunk将会把数据追加到存在数据的尾部。在向一个字段追加数据的时候,如果你又去设置或读取当前记录的另一个字段的值,ADO会认为你已经完成了对第一个字段的追加,再次对第一个字段调用AppendChunk方法,会被ADO解释为一次新的操作,从而覆盖已有数据。如果你存取的是其它记录集对象,而且这个记录集不是第一个记录集的复制品,那么这个过程将不会打断AppendChunk操作。如果你在一个没有当前记录的字段对象上使用AppendChunk方法,将返回错误信息(没有当前记录)。 

解决方案 »

  1.   

    前者返回大型文本或二进制数据 Field 对象的全部或部分内容 。
    语法
    variable = field.GetChunk( Size )
    Size   长整型表达式,等于所要检索的字节或字符数后者将数据追加到大型文本、二进制数据 Field 或 Parameter 对象。
    语法
    object.AppendChunk Data
    参数
    object   Field 或 Parameter 对象
    Data   变体型,包含追加到对象中的数据。说明
    使用 Field 或 Parameter 对象的 AppendChunk 方法可将长二进制或字符数据填写到对象中。在系统内存有限的情况下,可以使用 AppendChunk 方法对长整型值进行部分而非全部的操作。
    没有msdn吗?
      

  2.   

    问题是我现在用的是ACCESS,把图片放在OLE对象中,用GETCHINK和APPNEDCHUNK这2个方法,谁能够告诉我如何将ACCESS中的图像文件使用APPENDCHUNK和GETCHUNK方法来添加和读取呢?谢谢,这个问题已经折磨我到现在了。