当您请求为 serverside 记录集 RecordCount 时,可能会返回-1。发生这种情况与 ActiveX 数据对象 (ADO) 版本 2.0 或更高版本,该 CursorType adOpenForwardonly 或 adOpenDynamic 时。在就会发生此事件与 ADO 1.5 仅在 cursortype adOpenForwardonly。用 OLEDB 提供程序进行测试的 JET 和 SQL Server 产生具体取决于提供程序的不同结果。
提供程序可能不支持某些 CursorTypes。当选择了不受支持的 CursorType 提供程序应选择最靠近您的请求 CursorType。请参阅与您的提供程序的文档。同时,请注意并非所有组合 LockType 和 CursorType 协同都工作。更改一个 LockType 可能强制该 CursorType 中的更改。一定要使用调试 OLEDB 提供商进行测试时检查 CursorType 的值。
解决方案:
使用服务器端游标作为该 CursorType adOpenKeyset 或 adOpenStatic 或使用客户端游标。客户端游标使用仅 adOpenStatic CursorTypes 无论哪个 CursorType 您选择的。