次の方法で共有


Connection オブジェクトに対するメソッドとしてストアド プロシージャを呼び出す

関連付けられている開かれた Connection オブジェクトのネイティブ メソッドであるかのように、ストアド プロシージャを呼び出すことができます。 これは、Connection オブジェクトで名前付きコマンドを呼び出すのと似ています。

次の Visual Basic コードの例では、Northwind サンプル データベースで CustOrdersOrders という名前のストアド プロシージャを呼び出します。便宜のためここに再掲します。

CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5) AS  
SELECT OrderID, OrderDate, RequiredDate, ShippedDate  
FROM Orders  
WHERE CustomerID = @CustomerID  
ORDER BY OrderID  

次のコード例では、関連付けられている開かれた Connection オブジェクトのネイティブ メソッドであるかのように、ストアド プロシージャを呼び出す方法を示します。

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  
  
ConnectionString = "Provider=" & DP & _  
                   ";Data Source=" & DS & _  
                   ";Initial Catalog=" & DB & _  
                   ";Integrated Security=SSPI;"  
  
' Connect to the data source.  
objConn.Open ConnectionString  
  
' Set a stored procedure  
  
Set objComm.ActiveConnection = objConn  
  
' Execute the stored procedure on  
' the active connection object...  
'    "ALFKI" is the required input parameter,  
'    objRs is the resultant output variable.  
objComm(1) = "ALFKI"
Set objRs = objComm.Execute

' Display the result.  
Debug.Print "Results returned from sp_CustOrdersOrders for 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  

参照

Connection オブジェクト (ADO)