行セット
行セットとは、データの列を含む行の集まりです。行セットは、すべての 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 インターフェイスがある場合は、そのインターフェイスを解放する必要があります。
このセクションの内容