次の方法で共有


Parameters コレクション (ADO)

Command オブジェクトのすべての Parameter オブジェクトを格納します。

注釈

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

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

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

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

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

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

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

  2. パラメーターを指定してストアド プロシージャを呼び出し、Parameters コレクションにパラメーターを Append で明示的に追加するとき、戻り値/出力パラメーターを Parameters コレクションに追加する必要があります。 戻り値は、最初に Parameters コレクションに追加する必要があります。 Append を使用して、他のパラメーターを 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 オブジェクト