用ADO.Command物件。查以前的帖子,或者查MSDN.

解决方案 »

  1.   

     抄一段给你
        Dim cmdTest As ADODB.Command
        Dim parIn As ADODB.Parameter
        Dim parOut As ADODB.Parameter
        
        Set cmdTest = New ADODB.Command
        
        cmdTest.Prepared
        
        '输入参数用 adParamInput,其中名称,类型长度和值按你的需要来写
        Set parIn = cmdTest.CreateParameter(名称, 类型, adParamInput, 长度, 值)
        cmdTest.Parameters.Append parIn
        
        '输入参数用 adParamOutput
        Set parOut = cmdTest.CreateParameter("输出参数", 类型, adParamOutput, 长度, 值)
        cmdTest.Parameters.Append parOut
        
        cmdTest.Execute
        
        MsgBox cmdTest.Parameters("输出参数"), vbInformation  
      

  2.   

    存储过程里定义一个out参数;ADO.COMMAND.parameters.addPARAMETER(...) 定义相对应的接受
      

  3.   

    to xmao(小猫):
       我用你的方法做了以后,现在不出现异常,但我用 parOut->Value,得到的是"", 为什么?
      

  4.   

    Set parIn = cmdTest.CreateParameter(名称, 类型, adParamInput, 长度, 值)这里的 名称 是指在存储过程里定义的变量名还是什么?
      

  5.   

    是的
    事实上不用写得这么复杂,只要在传递参数前,调用parameters的refresh,然后就可以直接传递参数了
    as follow:
    (in sqlserver2000)
    create procdure kk
    @a int,
    @b int output
    as
    begin
         set @b=@a
    end
    (in vb)
    set conn.createobject("adodb.connection")
    set cmd=createobject("adodb.command")
    conn.open ""
    cmd.activeconnection=conn
    cmd.parameters.refresh
    cmd.parameters("@a")=1
    cmd.execute
    msgbox cmd.parameters("@b")