sql – 运行存储过程并从VBA返回值

前端之家收集整理的这篇文章主要介绍了sql – 运行存储过程并从VBA返回值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将参数传递到sql Server 2008中的存储过程,我想将结果存储在ADODB.Recordset中

目前我有这个:

Public Sub UpdateWithStoredProcedure()
        Dim cmd As New ADODB.Command
        Dim conn As ADODB.Connection
        Dim prm As ADODB.Parameter
        Dim strConn As String
        Dim strsql As String

        strConn = "Provider=sqlOLEDB.1;" & _
            "Data Source=(local); Initial Catalog=NorthWind;" & _
            "Integrated Security=SSPI"

        Set conn = New ADODB.Connection
        conn.Open strConn

        Set cmd = New ADODB.Command
        cmd.CommandText = "procOrderUpdate"
        cmd.CommandType = adCmdStoredProc
        cmd.ActiveConnection = conn

        Set prm = cmd.CreateParameter("OrderID",adInteger,adParamInput)
        cmd.Parameters.Append prm
        cmd.Parameters("OrderID").Value = 1

        Set prm = cmd.CreateParameter("OrderDate",adDate,adParamInput)
        cmd.Parameters.Append prm
        cmd.Parameters("OrderDate").Value = "1/1/2007"

        Set prm = cmd.CreateParameter("ShipVia",adParamInput)
        cmd.Parameters.Append prm
        cmd.Parameters("ShipVia").Value = 2
        Set prm = cmd.CreateParameter("Freight",adCurrency,adParamInput)
        cmd.Parameters.Append prm
        cmd.Parameters("Freight").Value = "10.5"

        'Execute the Stored Procedure
        cmd.Execute

        'Close the connection
        conn.Close
    End Sub

问题是如何将其存储在记录集中而不是仅执行它?

解决方法

我相信你所需要的就是这个
Dim Rst As ADODB.Recordset

和这个

Set Rst = cmd.Execute

猜你在找的MsSQL相关文章