在VB中执行SQLServer存储过程时,如何获取存储过程的输出参数???

解决方案 »

  1.   

    Private Sub Form_Load()
        
        '先引用ADO对象库
        Dim objCn As New ADODB.Connection
        Dim objCm As New ADODB.Command
        Dim objPara As New ADODB.Parameter
        
        With objPara
            .Name = "@f2"
            .Type = adBigInt
            .Direction = adParamOutput
        End With
        
        objCn.Open "Provider=SQLOLEDB.1;PassWord=yhy;UID=sa;Initial Catalog=test;Data Source=数据源"
        With objCm
            .ActiveConnection = objCn
            .CommandType = adCmdStoredProc
            '返回值
            .Parameters.Append .CreateParameter("@f3", adBigInt, adParamReturnValue)
            '输出参数
            .Parameters.Append objPara
            .CommandText = "sp_Test"
            .Execute
            MsgBox .Parameters("@f3").Value
        End With
        '输出参数的值
        MsgBox objPara.Value
        
        Set objPara = Nothing
        Set objCm = Nothing
        Set objCn = Nothing
    End Sub'---------sp_Test的建立----------'CREATE PROCEDURE [dbo].[sp_Test]
    '@f2     BigInt OUT
    ' AS
    'set nocount on
    'declare @f3 BigInt
    'SELECT @f2 = (
    '    SELECT f2 FROM t1 WHERE f1 = 1
    '    )
    'SELECT @f3 = (
    '    SELECT f3 FROM t1 WHERE f1 = 1
    '    )
    'return @f3
    'GO