【问题标题】:ADODB::_RecordsetPtr::GetRecordCount() failureADODB::_RecordsetPtr::GetRecordCount() 失败
【发布时间】:2013-08-22 14:50:34
【问题描述】:

我正在尝试使用 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

我可以知道我错了吗?

非常感谢。

【问题讨论】:

    标签: c++ select ado


    【解决方案1】:

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

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

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

    有关详细文档,请参阅此 MSDN 页面。

    【讨论】:

      猜你喜欢
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 2015-11-15
      • 2017-01-04
      相关资源
      最近更新 更多