从存储过程使用C++获取记录集ADODB CommandPtr :: Execute()
问题描述:
我想从使用ADODB的存储过程获取记录集。 成功执行存储过程(执行写入SP的所有内容),但记录集计数为“-1”。从存储过程使用C++获取记录集ADODB CommandPtr :: Execute()
下面是我在做什么(存储过程没有参数):
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);
命令“ptrCom-> ActiveConnection-> PutCursorLocation(ADODB :: adUseClient)”解决了它! :-) 谢谢! – TCS 2011-06-08 17:36:41