使用 CacheSize 属性可以控制一次要从提供者那里将多少个记录检索到本地内存中。例如,如果 CacheSize 为 10,首次打开 Recordset 对象后,提供者将把前 10 个记录检索到本地内存。在 Recordset 对象中移动时,提供者将从本地内存缓冲区返回数据。 一旦移动超过缓存中的最后一个记录,提供者便将数据源中随后的 10 个记录检索到缓存中。
注 意 CacheSize 是基于提供者特有的 Maximum Open Rows 属性的(该属性在 Recordset 对象的 Properties 集合中)。不能将 CacheSize 设置为大于 Maximum Open Rows 的值。若要修改可以由提供者打开的行数,请设置 Maximum Open Rows。
可以在 Recordset 对象的存活期内调整 CacheSize 的值,但是更改该值只会影响随后从数据源检索到缓存的记录数。只更改属性值将不会更改缓存中的当前内容。
如果要检索的记录比 CacheSize 指定的少,提供者将返回剩余的记录而不会产生错误。
不允许将 CacheSize 设置为零,否则将返回错误。
从缓存检索到的记录并不反映其他用户对源数据所作的并发更改。若要强行更新所有缓存数据,请使用 Resync 方法。
如果将 CacheSize 设置为大于 1 的值,则定位方法(Move、MoveFirst、MoveLast、MoveNext 和 MovePrevious)可能导致导航操作删除记录(如果删除发生在检索到记录之后)。除非试图访问已删除的行中的数据值,当完成最初的提取后,随后的删除将不会反映到数据缓存中。但是,因为无法提取已删除的行,所以将 CacheSize 设置为 1 可解决此问题