Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Oracle Ref Cursor and ADO do not play well together!!
Not sure if you have a solution for this yet or not, but the following
worked for me. A couple of caveats: I am not a programmer by nature, so
you will find the code could probably be much better, and I am not a
Microsoft/ASP/OLE expert by any means. Anyway, here's what worked for me:
/////////////////////////
/////////////////////////
SQL> connect scott/tiger
Connected.
SQL> create or replace package adoDemo
2 as
3 type rc_emp is ref cursor;
4 procedure getEmployees(p_cursor out rc_emp);
5 end adoDemo;
6 /
Package created.
SQL> create or replace package body adoDemo
2 as
3 procedure getEmployees(p_cursor out rc_emp) is
4 begin
5 open p_cursor for select ename from scott.emp order by ename;
6 end getEmployees;
7 end adoDemo;
8 /
Package body created.
/////////////////////////
/////////////////////////
Option Explicit
Response.Buffer = True
Response.Expires = -1000
%>
<html>
<head><title>ADO Demo</title></head>
<body> <p align=center><font size=5><b>ADO Demo</b></font> <table border> <tr><th>Employee Name</th></tr> <%
Dim cnAdoDemo
Dim rsAdoDemo
Dim cmdAdoDemo
Set cnAdoDemo = CreateObject("ADODB.Connection") Set rsAdoDemo = CreateObject("ADODB.Recordset") Set cmdAdoDemo = CreateObject("ADODB.Command")
cnAdoDemo.Provider = "OraOLEDB.Oracle" cnAdoDemo.ConnectionString = "Data Source=cds2;User ID=scott;Password=tiger;PLSQLRSet=1;"
cnAdoDemo.Open
cmdAdoDemo.ActiveConnection = cnAdoDemo
cmdAdoDemo.CommandText = "{CALL scott.adoDemo.getEmployees}"
Set rsAdoDemo = cmdAdoDemo.Execute
While Not rsAdoDemo.EOF
Response.Write("<tr><td>" & rsAdoDemo(0) & "</td></tr>") rsAdoDemo.MoveNext
rsAdoDemo.Close
cnAdoDemo.Close
Set cmdAdoDemo = Nothing
Set rsAdoDemo = Nothing
Set cnAdoDemo = Nothing
%>
</table> </p> </body> </html>
"ericn" <ericn_at_sarek.cjb.net> wrote in message
news:a271a1ed.0110301409.3703c69b_at_posting.google.com...
> I am wondering if anyone has been able to get an ADO recordset from an
> oracle stored function as a return value?
>
>
>
>
>
>
>