ADO (CacheSize)

适用于:Access 2013、Office 2013

指示本地缓存在内存中的 Recordset 对象的记录数。

设置和返回值

设置或返回一个必须大于 0 的 Long 值。默认值为 1。

注解

使用 CacheSize 属性可以控制一次从提供程序检索到本地内存中的记录数。例如,如果 CacheSize 为 10,则在首次打开 Recordset 对象后,提供程序会将前 10 条记录检索到本地内存中。在 Recordset 对象中移动时,提供程序将从本地内存缓冲区中返回数据。在通过缓存中的最后一条记录后,提供程序将立即从数据源中将接下来的 10 条记录检索到缓存中。

备注

[!注释] CacheSize 基于提供程序特定的属性 Maximum Open Rows (在 Recordset 对象的 Properties 集合中)。不能将 CacheSize 设置为大于 Maximum Open Rows 的值。若要修改提供程序可以打开的行数,请设置 Maximum Open Rows

CacheSize 的值可以在 Recordset 对象生存期间进行调整,但更改此值将仅影响在随后对数据源进行检索后缓存中的记录数。仅更此属性值不会更改缓存中的当前内容。

如果要检索的记录数小于 CacheSize 指定的值,提供程序将返回剩下的记录,而不会发生错误。

不允许将 CacheSize 设置为零,因为这会返回错误。

从缓存中检索的记录并不能反映其他用户对数据源所做的并发更改。若要强制更新所有已缓存的数据,请使用 Resync 方法。

如果 CacheSize 设置为大于 1 的值,并且在检索了记录后进行了删除操作,导航方法(MoveMoveFirst、MoveLast、MoveNext 和 MovePrevious)可能会导致导航到已经删除的记录。进行了初始提取后,除非尝试访问已删除行中的数据,否则提取后发生的删除不会在数据缓存中得到反映。不过,将 CacheSize 设置为 1 就可以解决此问题,因为无法提取已删除的行。