0
我正在將VC++/SQL服務器應用程序遷移到使用Oracle。數據庫訪問是使用ADO類實現的,我無法找到通過Oracle返回的遊標的方法。使用ADO的Oracle存儲過程不是.net和VC++
的存儲過程是這樣的:
create or replace PROCEDURE GetSettings
(
cv_1 OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN cv_1 FOR
SELECT KEY ,
VALUE
FROM Settings;
END;
的代碼是一樣的東西:
_CommandPtr pCommand;
_ParameterPtr pParam1;
HRESULT hr = pCommand.CreateInstance (__uuidof (Command));
if (FAILED (hr))
return;
pCommand->ActiveConnection = m_pConn;
pCommand->CommandText = "GetSettings";
pCommand->CommandType = adCmdStoredProc;
_RecordsetPtr pRecordset;
hr = pRecordset.CreateInstance (__uuidof (Recordset));
if (FAILED (hr))
return;
pRecordset = pCommand->Execute(NULL,NULL,adCmdStoredProc);
(實際上它是使用ADO類從http://www.codeproject.com/Articles/1075/A-set-of-ADO-classes-version-2-20#TheSample02)
返回pRecordset是在一個封閉的狀態,你不能做任何事情。我想我應該爲光標傳遞一些參數,但是如何使用這些ADO函數創建/使用/訪問返回的光標?沒有遊標參數類型,我可以看到
我完全卡住,將不勝感激一些幫助
感謝