Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ebenso wie das Ergebnis des Befehls als out-Variable des benannten Befehls übergeben wird, können Parameter für einen parametrisierten Befehl als in-Variablen an den benannten Befehl übergeben werden.
Im folgenden Codebeispiel wird versucht, alle Bestellungen des Kunden abzurufen, deren CustomerID "ALKFI" aus der Northwind-Datenbank ist. Der Wert CustomerID- wird zum Zeitpunkt des Aufrufs des benannten Befehls angegeben.
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
Beachten Sie, dass alle Eingabeparameter vor jeder Ausgabevariable stehen müssen und die Datentypen von Parametern übereinstimmen müssen oder in die entsprechenden Felder konvertiert werden können. Die folgende Aussage:
objConn.GetOrdersOf 12345, objRs
-führt zu einem Fehler bei nicht übereinstimmenden Datentypen, da der erforderliche Eingabeparameter ein String Typ ist, nicht eines Integer- Typs.
Der folgende Aufruf:
objConn.GetOrdersOf "12345", objRs
-ist gültig, gibt aber ein leeres Resultset zurück, da in der Datenbank keine solchen Datensätze vorhanden sind.