asp:<%@LANGUAGE="VBSCRIPT"%> 
<!--#include file="Connections/conn.asp" -->
<% 
set cm1 = Server.CreateObject("ADODB.Command")
cm1.ActiveConnection = MM_conn_STRING
cm1.CommandType = 1
cm1.CommandTimeout = 0
cm1.Prepared = true
cm1.CommandText = "{call pkg_test.get(?)}"//(?,{resultset 0, myrctype})
set para = cm1.Parameters
para.Append cm1.CreateParameter("p_id",3,1,,1)

set rs = Server.CreateObject("ADODB.Recordset")set rs=cm1.Execute  
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>中山大学附属第五医院</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK 
href="images/med.css" type=text/css 
rel=stylesheet>
</head>
<body bgcolor="#B2CFE4" text="#000000">
<%
   while not rs.eof 
   response.write rs("name")
   rs.movenext()
   wend %></body>
</html>
<%
rs.close
cm1.ActiveConnection.Close
set cm1=nothing
%>vb:
http://expert.csdn.net/Expert/topic/903/903782.xml?temp=.3816034

解决方案 »

  1.   

    一个很简单的过程:
    CREATE OR REPLACE PROCEDURE "MYTEST"  is
          name varchar;
    begin
        select operator_name into name from operator where operator_id=1;end mytest;但是在执行到:set rs=cm1.execute后,要取出rs里的字段值,为什么取不出,它告诉我:对象已被关闭,操作不被允许??什么原因?
      

  2.   

    问题一:
    name varchar;这句出了问题,要给长度。
    修改为
    name varchar2(20);问题二:
    要想返记录集不可这样,以下提供返回记录集的一个过程,要用到包体,而且要通过参数返回记录集
    CREATE OR REPLACE PACKAGE pkg_test
    AS
       TYPE myrctype IS REF CURSOR;   PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
    END pkg_test;
    /CREATE OR REPLACE PACKAGE BODY pkg_test
    AS
       PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
       IS
          sqlstr   VARCHAR2 (500);
       BEGIN
          IF p_id = 0 THEN
             OPEN p_rc FOR
                SELECT ID, NAME, sex, address, postcode, birthday
                  FROM student;
          ELSE
             sqlstr :=
                'select id,name,sex,address,postcode,birthday
               from student where id=:w_id';
             OPEN p_rc FOR sqlstr USING p_id;
          END IF;
       END get;
    END pkg_test;
    /
      

  3.   

    谢谢你,虽然还没有调试出来,但还是要很感谢你给我提供的资料。
    在调试的时候,到set rs =cm1.execute时,告诉我未找到pl/sql过程的变量名,可是我查了一下,没有设置错误啊?能再帮忙解释一下吗?
      

  4.   

    我找到错误了
    cm1.CommandText = "{call pkg_test.get(?,{resultset 0, myrctype})}"
    其中的myrctype 应该是在过程中定义的变量名,把它换成你上述pkg_test.get中的p_rc就可以了
    谢谢你。