2011-06-08 106 views
1

我想從使用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 :-(

任何人都可以指出我究竟做錯了什麼?

謝謝!

回答

0

您是否試過只調用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