我正在尝试使用 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详细文档页面。
我是一名优秀的程序员,十分优秀!