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