cmd.Parameters.Append cmd.CreateParameter(test_cursor,adVariant,adParamOutput)
我不懂ASP
您有没有关于CURSOR
的数据类型来代替adVariant

解决方案 »

  1.   

    我试编了msdn提供的所有类型,好像就这个提示的错误行在rs = cmd.Execute()处,其他的在参数地方就报错了!!
    是不是pack001.testpack这个地方错了呢?试过了大小写也不行的
      

  2.   

    你想在Asp中返回ref cursor ,
    Asp应该不支持吧!我在asp.net中用C#可以返回ref cursor 类型的变量,
    但是用vb.net就不好用,没有办法的,去问微软工程师
      

  3.   

    这个问题,
    我早就碰到过,你可以换一种方式嘛,
    你直接写一个SQL语句查询出来不就行了,
    不一定要用存储过程。
      

  4.   

    huangcaibing(Mike) 你说得倒也是,可是存储过程肯定是可以返回结果集的嘛,岂能就这么放弃??
      

  5.   

    cmd.CommandText = "pack001.testpack"?
    是这样调外部存储过的吗?我没这样用过,请先教我一下,谢谢。
    我原来是这样用的。
    cmd.commandtext="select * from table"
    或者是这样用的。
    aa="select * from table"
    cmd.commandtext=aa
    这里,让command执行pack001.testpack这一SQL语句我有点不好理解啊。
      

  6.   

    sorry.没注意看下面一行:cmd.CommandType = adCmdStoredProc
    是不是加了这一行就可以调外部存储过程了?
      

  7.   

    在这之前我写了一个独立的存储过程,是返回记录的数目的,在asp里调用一切正常,现在我想直接返回记录集,oracle里独立的存储过程不是不能返回记录集的吗,如是我写了一个包,在sqlplus里能正常返回,就是asp调用的时候出了毛病!!
      

  8.   

    http://expert.csdn.net/Expert/topic/1180/1180654.xml?temp=.2429468可能对你有帮助!!
      

  9.   

    兄弟,我是解决了,你的方法我用过,但是总是出错,你用这个方法试试。
    cn.open driver_name
    set cmd=server.CreateObject("adodb.command")
    cmd.CommandType = 1
    cmd.CommandText = "{call tinger01.selectbudgetbody(?,?,{resultset 0, myrc})}"
    set para = cmd.Parameters
    para.Append cmd.CreateParameter("p_depart_id",3,1,4,1)
    para.Append cmd.CreateParameter("p_c_cost",200,1,4,"01")
    set cmd.ActiveConnection = cn
    set cmdrc.Source = cmd
    cmdrc.Open
    其中请注意你的COMMANDTEXT这个属性中写的。还有COMMANDTYPE应该设1。
    祝你好运。
      

  10.   

    to  tinger(影虎):我用的是Oracle8.0.5,Oracle是不支持call的,你用的版本是8i的吧?我试试你的建议先!
      

  11.   

    还是不行,提示sql语句无效,错误处在cmd.execute处,我觉得两个地方有疑问,一个是包在asp中的调用,另一个就是输出游标在cmd中的参数的类型设置,我用的是8.0.5,不支持call调用,难道在8i之前,没有人这么返回结果集吗??我不死心!!!
      

  12.   

    你们是否用户名还没写呢?cmd.CommandText = "{call 用户名.tinger01.selectbudgetbody(?,?,{resultset 0, myrc})}"
      

  13.   

    tinger(影虎) 哥们,你是怎么搞定的呢?能给一个简单的代码吗?如果是Oracle8i那就算了!!我实在不知道怎么搞定这个东东!我都怀疑这个任务在8.0.5是不是不能完成的!!谁帮我搞定了这代码,拜他为师,另送100分,一共250分!!
      

  14.   

    beckhambobo(beckham) 8.0.5是不支持call调用的,再说用户名的问题在连接的时候不就已经制定了吗?