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

从存储过程使用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); 
+0

命令“ptrCom-> ActiveConnection-> PutCursorLocation(ADODB :: adUseClient)”解决了它! :-) 谢谢! – TCS 2011-06-08 17:36:41