我在SQL SERVER 服务器上写了一个存储过程
CREATE PROCEDURE PROCNAME 
@PARA1,@PARA2,...
AS
DECLARE @RETUREPara
if expression
select @RETUREPara=sum(field) from table where condition1
else
select @RETUREPara=sum(field from table where condition2
select 'Total'=@RETUREPara GO
请问如何在VB中执行这个存储过程取出@RETUREPara的值呢?

解决方案 »

  1.   

    '给你一个调用存储过程返回值的例子'例子的意思是根据一个起始日期和日期间隔,算出结束日期并返回这个结束日期
    '存储过程中包含三个参数,两个输入类型,一个输出类型
    'sp_日期 为存储过程名Public Function DateWorkout(ByVal BeginDate As String, ByVal WorkoutDate As Integer) As String
    On Error GoTo ErrTrap
        Dim cmdWork As New ADODB.Command
        Dim param1 As Parameter, param2 As Parameter, param3 As Parameter
        Set cmdWork.ActiveConnection = gadoCN
        cmdWork.CommandText = "sp_日期"
        cmdWork.CommandType = adCmdStoredProc
        Set param1 = cmdWork.CreateParameter("@BeginDate", adDBTimeStamp, adParamInput)
        cmdWork.Parameters.Append param1
        Set param2 = cmdWork.CreateParameter("@DateNum", adInteger, adParamInput)
        cmdWork.Parameters.Append param2
        Set param3 = cmdWork.CreateParameter("@EndDate", adDBTimeStamp, adParamReturnValue)
        cmdWork.Parameters.Append param3
        param1.Value = BeginDate
        param2.Value = WorkoutDate
        param3.Value = 0
        Call cmdWork.Execute
        DateWorkout = param3.Value
        On Error GoTo 0
        Exit Function
    ErrTrap:
        DateWorkout = 0
        On Error GoTo 0
    End Function'示例存储过程代码
    'CREATE PROCEDURE sp_日期(@BeginDate datetime,@DateNum integer,@EndDate datetime output)
    'AS
    '    select @EndDate = @BeginDate+@DateNum
      

  2.   

    http://blog.csdn.net/online/archive/2004/08/05/66376.aspx
    很详细了
      

  3.   

    如果在存储过程里用的是select语句返回值,那么前台就用Recordset接收;
    如果用的是Set语句返回值,那么就要用到command对象及parameter对象。