結果の処理

コマンドの実行、またはプロバイダからの行セット オブジェクトの直接生成のいずれかによって行セット オブジェクトを作成する場合、コンシューマはその行セット内のデータにアクセスして、データを取得する必要があります。

行セットは、SQL Server Native Client OLE DB プロバイダが表形式でデータを公開できるようにするための重要な機能を持つオブジェクトです。概念的には、行セットは行の集まりを表し、各行には列データが格納されています。行セット オブジェクトでは、IRowset (行セットから順番に行をフェッチするメソッドを含みます)、IAccessor (コンシューマのプログラム変数に表形式のデータをバインドする方法を指定する一連の列バインドの定義を許可します)、IColumnsInfo (行セット内の列に関する情報を提供します)、IRowsetInfo (行セットに関する情報を提供します) などのインターフェイスが公開されます。

コンシューマは、IRowset::GetData メソッドを呼び出して、データ行を行セットからバッファに取得できます。GetData を呼び出す前に、DBBINDING 構造体のセットを使用してバッファを記述します。各バインドは、行セット内の列をコンシューマのバッファに格納する方法を記述するもので、次の情報が含まれます。

  • バインドが適用される列 (パラメータ) の序数

  • バインドされる内容 (データ値、データの長さ、バインドの状態など) に関する情報

  • バッファ内の各部分へのオフセットに関する情報

  • コンシューマのバッファ内でのデータ値の長さと型

プロバイダはデータを取得するときに、各バインドの情報を使用してコンシューマのバッファからデータを取得する位置と方法を決定します。また、コンシューマのバッファにデータを設定するときに、各バインドの情報を使用してコンシューマのバッファ内にあるデータを返す位置と方法を決定します。

DBBINDING 構造体を指定したら、アクセサを作成 (IAccessor::CreateAccessor) します。バインドの集まりであるアクセサは、コンシューマのバッファ内のデータを取得または設定するときに使用します。