Execute メソッド (ADO Command)
Command オブジェクトの CommandText または CommandStream プロパティに指定されたクエリ、SQL ステートメント、またはストアド プロシージャを実行します。
構文
Set recordset = command.Execute( RecordsAffected, Parameters, Options )
戻り値
Recordset オブジェクト参照、ストリーム、または Nothing を返します。
パラメーター
RecordsAffected
省略可能。 プロバイダーが、操作の影響を受けたレコードの数を返す Long 変数。 RecordsAffected パラメーターは、アクション クエリまたはストアド プロシージャにのみ適用されます。 RecordsAffected は、結果を返すクエリまたはストアド プロシージャによって返されたレコード数を返しません。 この情報を取得するには、RecordCount プロパティを使用します。 adAsyncExecute を指定して使用した場合、Execute メソッドは正しい情報を返しません。これは、コマンドが非同期的に実行されると、メソッドが値を返す時点では、影響を受けるレコードの数がまだわからない場合があるからです。
パラメーター
省略可能。 CommandText または CommandStream に指定された入力文字列またはストリームと組み合わせて使用されるパラメーター値の Variant 配列。 (この引数で渡された場合、出力パラメーターは正しい値を返しません。)
[オプション]
省略可能。 プロバイダーによる Command オブジェクトの CommandText または CommandStream プロパティの評価方法を示す Long 値。 CommandTypeEnum 値や ExecuteOptionEnum 値を使用して作成されるビットマスク値を指定できます。 たとえば、ADO が CommandText プロパティの値をテキストと評価するようにし、コマンド テキストが実行されたときに生成される可能性があるレコードを破棄して返さないことを示す場合は、adCmdText と adExecuteNoRecords を組み合わせて使用できます。
Note
内部処理を最小限に抑えてパフォーマンスを向上させるには、ExecuteOptionEnum 値の adExecuteNoRecords を使用します。 adExecuteStream を指定した場合、adAsyncFetch と adAsynchFetchNonBlocking オプションは無視されます。 CommandTypeEnum 値の adCmdFile または adCmdTableDirect を Execute で使用しないでください。 これらの値は、Recordset の Open と Requery メソッドでオプションとしてのみ使用できます。
解説
Command オブジェクトで Execute メソッドを使用すると、オブジェクトの CommandText プロパティまたは CommandStream プロパティに指定されたクエリが実行されます。
結果は、Recordset (既定) で、またはバイナリ情報のストリームとして返されます。 バイナリ ストリームを取得するには、Options に adExecuteStream を指定し、Command.Properties("Output Stream") を設定してストリームを指定します。 結果を受け取る ADO Stream オブジェクトを指定することも、IIS Response オブジェクトなどの別のストリーム オブジェクトを指定することもできます。 adExecuteStream を指定して Execute を呼び出す前にストリームが指定されていない場合、エラーが発生します。 Execute から返されるストリームの位置は、プロバイダー固有です。
コマンドが結果 (SQL UPDATE クエリなど) を返すことを意図していない場合、adExecuteNoRecords オプションが指定されている限り、プロバイダーは Nothing を返します。それ以外の場合、Execute は閉じた Recordset を返します。 Recordset が必要ない場合、一部のアプリケーション言語ではこの戻り値を無視できます。
CommandType が adCmdStoredProc、adCmdTable、または adCmdTableDirect のときにユーザーが CommandStream の値を指定すると、Execute によってエラーが発生します。
クエリにパラメーターがある場合、Execute 呼び出しで渡されるパラメーター値でオーバーライドしない限り、Command オブジェクトのパラメーターの現在値が使用されます。 Execute メソッドを呼び出すときに一部のパラメーターの新しい値を省略することで、パラメーターのサブセットをオーバーライドできます。 パラメーターを指定する順序は、メソッドでそれらを渡すのと同じ順序です。 たとえば、4 つ (以上) のパラメーターがあり、1 番目と 4 番目のパラメーターのみで新しい値を渡す場合は、Array(var1,,,var4)
Parameters 引数として を渡します。
Note
Parameters 引数で渡された場合、出力パラメーターは正しい値を返しません。
この操作が完了すると、ExecuteComplete イベントが発行されます。
Note
URL を含むコマンドを発行する場合、http スキーマが使用されているものでは Microsoft OLE DB Provider for Internet Publishing が自動的に呼び出されます。 詳細については、「絶対 URL と相対 URL」を参照してください。
適用対象
参照
Execute、Requery、および Clear メソッドの例 (VB)
Execute、Requery、および Clear メソッドの例 (VBScript)
Execute、Requery、および Clear メソッドの例 (VC++)
CommandStream プロパティ (ADO)
CommandText プロパティ (ADO)
CommandTypeEnum
Execute メソッド (ADO Connection)
ExecuteComplete イベント (ADO)