各位高手,小弟近日准备写一个存储过程,其有三个参数,其一是SQL语句,后两结果类型和是返回错误信息.当传过来的传数(基本是select语句),如果没有语法错误,则返回,如果有则返回状态和具体信息.请问这用什么函数.谢谢
同时我遇到一个问题就是写的存储过程在ASP中的代码如下:
set cmd=server.CreateObject("adodb.command")
set cmd.ActiveConnection=conn   '正常
cmd.CommandText="proc_auto_serial" 
cmd.CommandType=adCmdStoredProc
cmd.Parameters.refresh
cmd("@sType")=2
cmd.Execute()
这个存储在以前的项目中都能运行,但是现在不知为什么总是报错.
提示如下:错误类型:
ADODB.Command (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/hbsmain/depot/reportmanage_add_modify.asp, 第 10 
请问这是为什么?害得我现在写的存储过程全部当SQL语句来执行.
谢谢,问题解决马上给分.

解决方案 »

  1.   

    字符型就需要 cmd("@sType")="2"
      

  2.   

    cmd("@sType")=2
    改成
    cmd.Parameters(0) = 2
    试下。
      

  3.   

    参考:
        Set cmd = server.CreateObject("adodb.command")
        Set cmd.ActiveConnection = conn
        cmd.CommandType = adCmdStoredProc
        cmd.CommandText = "proc_auto_serial"
        
        PrmIn.Type = adVarChar
        PrmIn.Size = 12
        PrmIn.Value = "000"
        PrmIn.Direction = adParamInput
        cmd.Parameters.Append PrmIn
        
        PrmOut.Type = adInteger
        PrmOut.Direction = adParamOutput
        cmd.Parameters.Append PrmOut
        
        cmd.Execute
      

  4.   

    Try:
    cmd("@sType")=2
    改成
    cmd.Parameters(0).Value = 2
      

  5.   

    你写的是 @sType,后来又说@type