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 オブジェクトを必要に応じて削除します。
Recordset の Parameters コレクション内のオブジェクトは、Recordset が閉じられると、スコープ外に移動します (したがって利用できなくなります)。
Command を使用してストアド プロシージャを呼び出すと、ストアド プロシージャの戻り値/出力パラメーターは次のように取得されます。
パラメーターのないストアド プロシージャを呼び出すときは、Command オブジェクトで Execute メソッドを呼び出す前に、Refresh メソッドを Parameters コレクションで呼び出す必要があります。
パラメーターを指定してストアド プロシージャを呼び出し、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.
ストアド プロシージャをパラメーター付きで呼び出し、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 オブジェクト