Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al igual que el resultado del comando se pasa como una variable del comando con nombre, los parámetros de un comando parametrizado se pueden pasar como en variables al comando con nombre.
El ejemplo de código siguiente intenta recuperar todos los pedidos realizados por el cliente cuya CustomerID es "ALKFI" de la base de datos Northwind. El valor de CustomerID se proporciona en el momento en que se llama al comando denominado.
Const DS = "MySqlServer"
Const DB = "Northwind"
Const DP = "SQLOLEDB"
Dim objConn As New ADODB.Connection
Dim objRs As New ADODB.Recordset
Dim objComm As New ADODB.Command
CommandText = "SELECT OrderID, OrderDate, " & _
"RequiredDate, ShippedDate " & _
"FROM Orders " & _
"WHERE CustomerID = ? " & _
"ORDER BY OrderID"
ConnectionString = "Provider=" & DP & _
";Data Source=" & DS & _
";Initial Catalog=" & DB & _
";Integrated Security=SSPI;"
' Connect to the data source.
objConn.Open ConnectionString
' Set a named command.
objComm.CommandText = CommandText
objComm.CommandType = adCmdText
objComm.Name = "GetOrdersOf"
Set objComm.ActiveConnection = objConn
' Call the named command, passing a CustomerID value
' as the input parameter.
' "ALFKI" is the required input parameter,
' objRs is the resultant output variable.
objConn.GetOrdersOf "ALKFI", objRs
' Display the result.
Debug.Print "All orders by ALFKI:"
Do While Not objRs.EOF
Debug.Print vbTab & objRs(0) & vbTab & objRs(1) & vbTab & _
objRs(2) & vbTab & objRs(3)
objRs.MoveNext
Loop
' Clean up.
objRs.Close
objConn.Close
Set objRs = Nothing
Set objConn = Nothing
Set objComm = Nothing
Tenga en cuenta que todos los parámetros de entrada deben preceder a cualquier variable de salida y los tipos de datos de parámetros deben coincidir o se pueden convertir en los de los campos correspondientes. La declaración siguiente:
objConn.GetOrdersOf 12345, objRs
-producirá un error de tipos de datos no coincidentes, ya que el parámetro de entrada necesario es de un tipo de String, no de un tipo de Integer.
La siguiente llamada:
objConn.GetOrdersOf "12345", objRs
-es válido, pero producirá un conjunto de resultados vacío porque no existe este tipo de registros en la base de datos.