set comm=server.createobject("adodb.command")
  With comm
    .ActiveConnection=conn
    .CommandText="lc_add"
    .CommandType=adCmdStoredProc
    .Parameters.Append .CreateParameter("@return_value",adInteger,adParamReturnValue )
    .Parameters.Append .CreateParameter("@fieldlist",advarchar,adParamInput,300,fieldlist)
    .Parameters.Append .CreateParameter("@valuelist",advarchar,adParamInput,4000,valuelist)
    .Parameters.Append .CreateParameter("@id",adInteger,adParamInput,5,ID)
    .Execute()
  End With
  changehouse=comm("@return_value")
  response.Write changehouse
  set comm=nothing

解决方案 »

  1.   

    create proc xx
    @reFlag int output
    as
    ....
    IF @@ERROR<>0 
    BEGIN 
    SET @reFlag = 0 
    ROLLBACK TRANSACTION 
    end 
    ELSE 
    BEGIN 
    SET @reFlag = 1 
    cOMMIT TRANSACTION 
    end 
    GO 
      

  2.   

    返回存储过程OUTPUT参复和RETURN返回值的原代码
    accessQQ.com 2004-3-4 ---------------------------------
    ALTER PROCEDURE sp_2
    @p int output,
    @p1 int,
    @p2 intas 
    set @p = @p1+@p2
    return 99
    ---------------------------------Function returnP()    Dim cmd As New ADODB.Command
        Set cmd.ActiveConnection = CONN
        '@return_value"这个参数在输入参数的最前面,名称是固定的
    cmd.Parameters.Append cmd.CreateParameter("@return_value", adInteger, adParamReturnValue)'输入和输出的参数顺序同存储过程的参数顺序    cmd.Parameters.Append cmd.CreateParameter("@p", adInteger, adParamOutput)
        
        cmd.Parameters.Append cmd.CreateParameter("@p1", adInteger, adParamInput,,1)
        cmd.Parameters.Append cmd.CreateParameter("@p2", adInteger, adParamInput,,2)    cmd.CommandText = "sp_2"
        cmd.CommandType = adCmdStoredProc    cmd.Execute    Dim i As Integer    For i = 0 To cmd.Parameters.Count - 1
            Debug.Print cmd.Parameters(i).Name & "=" & cmd.Parameters(i).Value
        Next iSet cmd.ActiveConnection = Nothing 
    Set cmd = NothingEnd Function'----------测试---------? returnP()
    @return_value=99
    @p=3
    @p2=2
    @p1=1