ALTER PROCEDURE GetLog
(
@startdate smalldatetime,
@enddate smalldatetime,
@username varchar(50),
@opertype int
)
 AS
declare @a int
SELECT @a=COUNT(*) FROM operlog WHERE  (opertime BETWEEN startdate AND @enddate)  AND username=@username and opertype=@opertype
RETURN @a

解决方案 »

  1.   

    ALTER PROCEDURE GetLog
    (
    @startdate smalldatetime,
    @enddate smalldatetime,
    @username varchar(50),
    @opertype int
    )
     AS
    declare @a intRETURN (SELECT COUNT(*) FROM operlog WHERE  (opertime BETWEEN startdate AND @enddate)  AND username=@username and opertype=@opertype)
      

  2.   

    或:ALTER PROCEDURE GetLog
    (
    @startdate smalldatetime,
    @enddate smalldatetime,
    @username varchar(50),
    @opertype int,
    @输出参数 int output
    )
     AS
    SELECT @输出参数=COUNT(*) FROM operlog WHERE  (opertime BETWEEN startdate AND @enddate)  AND username=@username and opertype=@opertype
    go
      

  3.   

    ALTER PROCEDURE GetLog
    (
    @startdate smalldatetime,
    @enddate smalldatetime
    @username varchar(50),
    @opertype int,
             @re int output
    )
     AS
    SELECT @re=COUNT(*) FROM operlog WHERE  (opertime BETWEEN startdate AND @enddate)  AND username=@username and opertype=@opertypeRETURN 
    go--调用方式
    declare @re int
    exec GetLog getdate()-1,getdate,'用户名','操作类型',@re out
    print '返回记录数:'+cast(@re as varchar)
      

  4.   

    或:
    ALTER PROCEDURE GetLog
    (
    @startdate smalldatetime,
    @enddate smalldatetime
    @username varchar(50),
    @opertype int
    )
     AS
    declare @re int
    SELECT @re=COUNT(*) FROM operlog WHERE  (opertime BETWEEN startdate AND @enddate)  AND username=@username and opertype=@opertypeRETURN(@re)
    go--调用方式
    declare @re int
    exec @re=GetLog getdate()-1,getdate,'用户名','操作类型'
    print '返回记录数:'+cast(@re as varchar)
      

  5.   

    返回存储过程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
      

  6.   

    要得到存储过程值,一个是使用output参数返回,一个是直接获取返回值
    1:使用output返回
    ---------------------------------------
    ALTER PROCEDURE GetLog
    (
    @startdate smalldatetime,
    @enddate smalldatetime,
    @username varchar(50),
    @opertype int)
     AS
    SELECT @a=COUNT(*) FROM operlog WHERE  (opertime BETWEEN startdate AND @enddate)  AND username=@username and opertype=@opertype
    RETURN @a