c++ - 使用 C++ ADODB CommandPtr::Execute() 从存储过程获取记录集

标签 c++ sql adodb

我正在尝试使用 ADODB 从存储过程中获取记录集。 存储过程成功执行(执行 SP 中编写的所有操作),但记录集计数为“-1”。

这是我正在做的(存储过程没有参数):

hr = ptrCom.CreateInstance(__uuidof(Command));
ptrCom->ActiveConnection = _connection;
ptrCom->CommandType = adCmdStoredProc;

ptrCom->CommandText = _bstr_t(_T("get_all_users"));

_variant_t  vtEmpty(DISP_E_PARAMNOTFOUND, VT_ERROR);
ADODB::_RecordsetPtr record_set;
HRESULT normal_hr = ptrCom->raw_Execute(&vtEmpty, &vtEmpty, adCmdStoredProc, &record_set);

int cnt = record_set->RecordCount; // PROBLEM: cnt == -1 :-(

谁能指出我做错了什么?

谢谢!

最佳答案

你试过只调用 Execute 吗?

ptrCom->Execute(NULL, NULL, ADODB::adCmdStoredProc);

返回 _RecordSetPtr。

您可能还想尝试: 设置连接后。

ptrCom->ActiveConnection->PutCursorLocation(ADODB::adUseClient);

关于c++ - 使用 C++ ADODB CommandPtr::Execute() 从存储过程获取记录集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282378/

相关文章:

C++:没有用户凭据的Windows每日任务计划

c++ - Qt - 将 QEasingCurve 的输出用于动画以外的其他内容

vba - 在 VBA 中设置与 access 数据库的连接会导致 excel 崩溃

sql-server - 同时使用 Excel 和 Microsoft SQL Server 连接字符串

C++,当从列表中获取值时,我填充其中的数组没有返回任何内容

c++ - 模板可以扩展 C++ 函数中的类吗?

sql - 在 pgSQL 上获取内部服务器错误

sql - 获取有 claim 的前 3 个月的数据

java - 当现有名称是保留字时,如何更改 HSQLDB 中的列名称?

php - 我如何处理 mysql 表中的并发插入并获取正确的插入 ID