7
me gustaría pasar parámetros a un procedimiento almacenado en SQL Server 2008 y me gustaría para almacenar los resultados en un ADODB.Recordset
ejecución de procedimientos almacenados y retornar valores de VBA
Actualmente tengo esto:
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", adInteger, 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
La pregunta es ¿cómo puedo almacenar esto en un conjunto de registros en lugar de simplemente ejecutarlo?
Está su procedimiento almacenado escrito para devolver un conjunto de registros? –
@tim Disculpe, ¿puede explicar la diferencia entre un procedimiento almacenado que devuelva un juego de registros y la alternativa? –
No todos los procedimientos almacenados están diseñados para devolver un conjunto de registros. Algunos procedimientos almacenados simplemente devuelven información a través de parámetros de "salida". ¿Has probado la sugerencia de Pynner? –