Простейшая процедура, возвращающая рекордсет с Оракла:
PACKAGE SAMPLE IS
TYPE cur_out IS REF CURSOR;
PROCEDURE test(p_out OUT cur_out);
END;
PACKAGE BODY SAMPLE IS
PROCEDURE test(p_out OUT cur_out)
IS
BEGIN
open p_out for
select 1 from dual;
END;
END sample;
VB-программа:
Dim objRes As New ADODB.Recordset
Dim objCon As New ADODB.Connection
Dim objCmd As New ADODB.Command
objCon.Provider = "MSDataShape"
objCon.ConnectionString = "Data Provider=OraOLEDB.Oracle;Data Source=MyServer;User ID=MyLogin;Password=MyPassword;PLSQLRSet=True;"
objCon.Open
objCmd.ActiveConnection = objCon
objCmd.CommandType = adCmdStoredProc
objCmd.CommandText = "sample.TEST"
Set objRes = objCmd.Execute
НЕ ПЫТАЙТЕСЬ использовать СВОЙСТВО команды:
objCmd.Properties("PLSQLRSet") = True
выдается ошибка!!!
Указывайте аттрибут в строке соединения!
вставлена раскраска кода. _MM_