行セットは、データの列を含む行のセットです。 行セットは、すべての OLE DB データ プロバイダーが結果セット データを表形式で公開できるようにする中心的なオブジェクトです。
コンシューマーが IDBCreateSession::CreateSession メソッドを使用してセッションを作成した後、コンシューマーはセッションで IOpenRowset または IDBCreateCommand インターフェイスを使用して行セットを作成できます。 SQL Server Native Client OLE DB プロバイダーでは、これらの両方のインターフェイスがサポートされています。 これらの方法の両方をここで説明します。
IOpenRowset::OpenRowset メソッドを呼び出して行セットを作成します。
これは、1 つのテーブルに対して行セットを作成することと同じです。 このメソッドは、1 つの基本テーブルのすべての行を含む行セットを開いて返します。 OpenRowset の引数の 1 つは、行セットを作成するテーブルを識別するテーブル ID です。
IDBCreateCommand::CreateCommand メソッドを呼び出して、コマンド オブジェクトを作成します。
コマンド オブジェクトは、プロバイダーがサポートするコマンドを実行します。 SQL Server Native Client OLE DB プロバイダーを使用すると、コンシューマーは SELECT ステートメントやストアド プロシージャの呼び出しなど、任意の Transact-SQL ステートメントを指定できます。 コマンド オブジェクトを使用して行セットを作成する手順は次のとおりです。
コンシューマーは、セッションで IDBCreateCommand::CreateCommand メソッドを呼び出して、コマンド オブジェクトの ICommandText インターフェイスを要求するコマンド オブジェクトを取得します。 この ICommandText インターフェイスは、実際のコマンド テキストを設定および取得します。 コンシューマーは、 ICommandText::SetCommandText メソッドを呼び出してテキスト コマンドを入力します。
ユーザーは、コマンドで ICommand::Execute メソッドを呼び出します。 コマンドの実行時にビルドされた行セット オブジェクトには、コマンドの結果セットが含まれています。
コンシューマーは 、ICommandProperties インターフェイスを使用して、 ICommand::Execute インターフェイスによって実行されるコマンドによって返される行セットのプロパティを取得または設定できます。 最も一般的に要求されるプロパティは、行セットがサポートする必要があるインターフェイスです。 コンシューマーは、インターフェイスに加えて、行セットまたはインターフェイスの動作を変更するプロパティを要求できます。
コンシューマーは 、IRowset::Release メソッドを使用して行セットを解放します。 行セットを解放すると、コンシューマーがその行セットに保持している行ハンドルが解放されます。 行セットを解放してもアクセサーは解放されません。 IAccessor インターフェイスがある場合は、引き続き解放する必要があります。