コマンドによる結果セットの取得
コマンド オブジェクトの使用 への移動
TADOQuery コンポーネントでは、結果セットを返すかどうかに応じて異なるメソッドを実行しますが、それとは違って TADOCommand では、結果セットを返すかどうかに関係なく、常に Execute コマンドを使ってコマンドを実行します。コマンドが結果セットを返す場合、Execute は ADO _RecordSet インターフェイスへのインターフェイスを返します。
このインターフェイスは、ADO データセットの RecordSet プロパティに代入すると、最も便利に扱うことができます。
たとえば次のコードでは、TADOCommand(ADOCommand1)を使って、結果セットを返す SELECT クエリを実行しています。その後、この結果セットは TADODataSet コンポーネント(ADODataSet1)の RecordSet プロパティに代入されています。
with ADOCommand1 do begin CommandText := 'SELECT Company, State ' + 'FROM customer ' + 'WHERE State = :StateParam'; CommandType := cmdText; Parameters.ParamByName('StateParam').Value := 'HI'; ADODataSet1.Recordset := Execute; end;
ADOCommand1->CommandText = "SELECT Company, State "; ADOCommand1->CommandText += "FROM customer "; ADOCommand1->CommandText += "WHERE State = :StateParam"; ADOCommand1->CommandType = cmdText; ADOCommand1->Parameters->ParamByName("StateParam")->Value = "HI"; ADOCommand1->Recordset = ADOCommand1->Execute();
結果セットを ADO データセットの Recordset プロパティに代入するとすぐに、データセットが自動的にアクティブになり、データを使用できるようになります。