次の方法で共有


Parameters コレクション (ADO)

Command オブジェクトのすべての Parameter オブジェクトが含まれます。

備考

Command オブジェクトには、Parameter オブジェクトで構成される Parameters コレクションがあります。

Command オブジェクトの Parameters コレクションで Refresh メソッドを使用すると、Command オブジェクトで指定されたストアド プロシージャまたはパラメーター化クエリのプロバイダー パラメーター情報が取得されます。 一部のプロバイダーでは、ストアド プロシージャ呼び出しやパラメーター化クエリがサポートされていません。このようなプロバイダーを使用する場合、Parameters コレクションで Refresh メソッドを呼び出すと、エラーが返されます。

独自の Parameter オブジェクトを定義していない場合、Refresh メソッドを呼び出す前に Parameters コレクションにアクセスすると、ADO によって自動的にメソッドが呼び出され、コレクションが自動的に設定されます。

呼び出すストアド プロシージャまたはパラメーター化クエリに関連付けられているパラメーターのプロパティがわかっている場合は、プロバイダーの呼び出しを最小限に抑えてパフォーマンスを向上させることができます。 CreateParameter メソッドを使用して、適切なプロパティ設定で Parameter オブジェクトを作成し、Append メソッドを使用して、それらを Parameters コレクションに追加します。 これにより、パラメーター情報のプロバイダーを呼び出すことなく、パラメーター値を設定して返すことができます。 パラメーター情報を提供しないプロバイダーに書き込む場合は、パラメーターをまったく使用できるようにするには、このメソッドを使用して Parameters コレクションを手動で設定する必要があります。 Delete メソッドを使用して、必要に応じて Parameter オブジェクトを Parameters コレクションから削除します。

ParametersRecordset のコレクション内のオブジェクトは、Recordset を閉じるとスコープ外になります (したがって、使用できなくなります)。

コマンドを使用してストアド プロシージャを呼び出すと、ストアド プロシージャの戻り値/出力パラメーターが次のように取得されます。

  1. パラメーターのないストアド プロシージャを呼び出す場合は、Command オブジェクトで Execute メソッドを呼び出す前に、Parameters コレクションの Refresh メソッドを呼び出す必要があります。

  2. パラメーターを指定してストアド プロシージャを呼び出し、Appendを使用してパラメーターを Parameters コレクションに明示的に追加する場合は、戻り値/出力パラメーターを Parameters コレクションに追加する必要があります。 戻り値は、最初に Parameters コレクションに追加する必要があります。 追加 を使用して、定義の順序で Parameters コレクションに他のパラメーターを追加します。 たとえば、ストアド プロシージャ SPWithParam には 2 つのパラメーターがあります。 最初のパラメーター InParamは adVarChar (20) として定義された入力パラメーターで、2 番目のパラメーター OutParamは adVarChar (20) として定義された出力パラメーターです。 戻り値/出力パラメーターは、次のコードで取得できます。

    ' Open Connection Conn  
    set ccmd = CreateObject("ADODB.Command")  
    ccmd.Activeconnection= Conn  
    
    ccmd.CommandText="SPWithParam"  
    ccmd.commandType = 4 'adCmdStoredProc  
    
    ccmd.parameters.Append ccmd.CreateParameter(, adInteger, adParamReturnValue, , NULL)   ' return value  
    ccmd.parameters.Append ccmd.CreateParameter("InParam", adVarChar, adParamInput, 20, "hello world")   ' input parameter  
    ccmd.parameters.Append ccmd.CreateParameter("OutParam", adVarChar, adParamOutput, 20, NULL)   ' output parameter  
    
    ccmd.execute()  
    
    ' Access ccmd.parameters(0) as return value of this stored procedure  
    ' Access ccmd.parameters("OutParam") as the output parameter of this stored procedure.  
    
    
  3. パラメーターを使用してストアド プロシージャを呼び出し、Parameters コレクションで Item メソッドを呼び出してパラメーターを構成する場合、ストアド プロシージャの戻り値/出力パラメーターは、Parameters コレクションから取得できます。 たとえば、ストアド プロシージャ SPWithParam には 2 つのパラメーターがあります。 最初のパラメーター InParamは adVarChar (20) として定義された入力パラメーターで、2 番目のパラメーター OutParamは adVarChar (20) として定義された出力パラメーターです。 戻り値/出力パラメーターは、次のコードで取得できます。

    ' Open Connection Conn  
    set ccmd = CreateObject("ADODB.Command")  
    ccmd.Activeconnection= Conn  
    
    ccmd.CommandText="SPWithParam"  
    ccmd.commandType = 4 'adCmdStoredProc  
    
    ccmd.parameters.Item("InParam").value = "hello world" ' input parameter  
    ccmd.execute()  
    
    ' Access ccmd.parameters(0) as return value of stored procedure  
    ' Access ccmd.parameters(2) or ccmd.parameters("OutParam") as the output parameter.  
    

このセクションには、次のトピックが含まれています。

関連項目

Append メソッド (ADO)
CreateParameter メソッド (ADO)
Parameter オブジェクトの