c++ - ADODB::_RecordsetPtr::GetRecordCount() 失败

标签 c++ select ado

我正在尝试使用 ADO 在 C++ 中执行一些查询。这是我的代码

string commandline = "SELECT * FROM My_Table";

ADODB::_RecordsetPtr pRS("ADODB.Recordset");

ADODB::_ConnectionPtr pConn("ADODB.Connection");

pRS->Open(commandline.c_str(), _variant_t((IDispatch *) pConn, true), ADODB::adOpenUnspecified,  ADODB::adLockUnspecified, ADODB::adCmdText);

cout<<pRS->GetRecordCount();

我在 My_Table 中有 1000 条记录,因此我希望看到输出 1000。但是,输出是 -1

我可以知道我哪里错了吗?

非常感谢。

最佳答案

RecourdCount 属性仅在底层提供程序或游标类型实际支持它时才有效,否则返回 -1。

尝试使用静态游标(传递 ADODB::adOpenStatic 而不是 ADODB::adOpenUnspecified)

另请注意,即使提供者支持它,获取记录计数也可能会使用大量资源,因为提供者必须在知道受查询影响的记录数之前获取所有记录。

引用这个MSDN详细文档页面。

关于c++ - ADODB::_RecordsetPtr::GetRecordCount() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383841/

相关文章:

c++ - Boost asio udp套接字发送到不同的IP地址

python - 将结构从 C++ 传递到 Python

php - SQL 选择具有字符限制的所有列

MySQL - 使用 BETWEEN 搜索负经度值

sql - VBA ADO 参数化 LIKE 查询

c++ - 在延迟的自定义操作中获取 CustomActionData

c++ - 如何在 Eclipse 中调试 Android 上 OpenCV 示例的 native 代码?

mysql - 在 MySQL 中对 Union 的两个部分求和有问题

delphi - 使用TADOQuery查询TClientDataSet

SQL Server 2005 从 Excel (VBA) 运行存储过程