首页 > 解决方案 > ADO Recordset.CacheSize 属性对客户端游标有意义吗?

问题描述

如果我有一个 ADOConnection并且CursorLocationType.adUseClient我用它来打开一个Recordset,那么设置该Recordset.CacheSize属性有什么影响吗?

来自CacheSize 属性

使用 CacheSize 属性来控制一次从提供程序检索到本地内存中的记录数。

并从光标位置的意义

在 ADO 中,使用 adUseClient CursorLocationEnum 调用客户端游标。使用非键集客户端游标,服务器通过网络将整个结果集发送到客户端计算机。

在我看来,设置CacheSize对客户端游标没有影响,因为记录已经在本地内存中。但我找不到任何明确说明这一点的官方文档。我只能找到这样的博客文章

我们将使用客户端游标... CacheSize 告诉 ADO 在游标上缓存 N 行。因为我们选择每页有 10 条记录,所以我将缓存大小设置为 10。ADO 将抓取前 10 条记录,并缓存它们。在您请求超过缓存限制之前,它不会访问数据库。

但这似乎与“服务器将整个结果集通过网络发送到客户端计算机”相矛盾。

那么实际上会发生什么?

标签: ado

解决方案


推荐阅读