PROCEDURE p_Srvlist(v_SrvName t_srvlist.srv_name%TYPE, v_Cursor OUT t_Cursor)
AS
v_SQLStr VARCHAR2(1024);
BEGIN
v_SQLStr := 'SELECT name, port, re, pwd
FROM list
WHERE name = ''' || v_SrvName || '''';
OPEN v_Cursor FOR v_SQLStr;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END p_Srvlist;
请问我在VC中应该怎么获取到返回参数v_Cursor的值,大家看清楚了v_Cursor可是一个记录集,如果返回的是一个数,字符串等都很好做,可是记录集我就不懂了,请高手指点,最好能将相关代码写出来,谢谢!!
AS
v_SQLStr VARCHAR2(1024);
BEGIN
v_SQLStr := 'SELECT name, port, re, pwd
FROM list
WHERE name = ''' || v_SrvName || '''';
OPEN v_Cursor FOR v_SQLStr;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END p_Srvlist;
请问我在VC中应该怎么获取到返回参数v_Cursor的值,大家看清楚了v_Cursor可是一个记录集,如果返回的是一个数,字符串等都很好做,可是记录集我就不懂了,请高手指点,最好能将相关代码写出来,谢谢!!
是vb和ado的,
oracle好久没有搞了
_ParameterPtr pprmByRoyalty = NULL;pCmdChange.CreateInstance(__uuidof(Command));
pCmdChange->CommandType = adCmdStoredProc;
pCmdChange->CommandText = "pkg_test.get";
//Define Integer/variant.
pprmByRoyalty.CreateInstance(__uuidof(Parameter));
VARIANT vtRoyalty;
vtRoyalty.vt = VT_I2;
vtRoyalty.iVal = 20;
pprmByRoyalty = pCmdChange->CreateParameter("param1",adInteger,adParamInput,sizeof(int),vtRoyalty);
pCmdChange->Parameters->Append(pprmByRoyalty);pprmByRoyalty->Value = vtRoyalty;
//Create Recordset by executing the command
pCmdChange->ActiveConnection = theApp.m_pConnection;//Create Recordset by executing the command
m_pRecordset->CursorType=adOpenStatic;
m_pRecordset->LockType=adLockPessimistic;
m_pRecordset = pCmdChange->Execute(NULL,NULL,adCmdStoredProc);
m_pRecordset->Open("{CALL (?{20})}",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenStatic,adLockPessimistic,adCmdStoredProc);but m_pRecordset is a forward only recordset.