次の方法で共有


CCustomRowset (CustomRS.H)

ウィザードによって、行セット オブジェクトのエントリが生成されます。 この場合、それは CCustomRowset という名前になります。 CCustomRowset クラスは、CRowsetImpl という名前 OLE DB プロバイダー クラスを継承します。このクラスには、行セット オブジェクトに必要なすべてのインターフェイスが実装されています。 次のコードは、CRowsetImpl の継承チェーンを示します。

template <class T, class Storage, class CreatorClass,
   class ArrayType = CAtlArray<Storage>>
class CMyRowsetImpl:
   public CRowsetImpl<T, Storage, CreatorClass, ArrayType,
      CSimpleRow, IRowsetLocateImpl< T >>

CRowsetImpl は、IAccessor および IColumnsInfo インターフェイスも使用します。 これらのインターフェイスは、テーブルの出力フィールドに使われます。 このクラスでは、IRowsetIdentity の実装も提供されており、コンシューマーは 2 つの行が同じかどうかを判断できます。 IRowsetInfo インターフェイスは、行セット オブジェクトのプロパティを実装しています。 プロバイダーは、IConvertType インターフェイスを使用することで、コンシューマーによって要求されたデータ型と、プロバイダーによって使用されるデータ型の違いを解決できます。

IRowset インターフェイスは、データの取得を実際に処理します。 コンシューマーは、最初に GetNextRows というメソッドを呼び出して、行のハンドル (HROW) を取得します。 次に、コンシューマーはその HROW を指定して IRowset::GetData を呼び出し、要求されたデータを取得します。

CRowsetImpl は、複数のテンプレート パラメーターも受け取ります。 これらのパラメーターを使うと、CRowsetImpl クラスによるデータの処理方法を決定できます。 ArrayType 引数を使うと、行データの格納に使われるストレージ メカニズムを決定できます。 RowClass パラメーターは、HROW が含まれるクラスを指定します。

RowsetInterface パラメーターを使うと、IRowsetLocate または IRowsetScroll インターフェイスも使用できます。 IRowsetLocateIRowsetScroll インターフェイスはどちらも、IRowset から継承されます。 そのため、OLE DB プロバイダー テンプレートで、これらのインターフェイスの特別な処理を提供する必要があります。 これらのインターフェイスのいずれかを使いたい場合は、このパラメーターを使う必要があります。

関連項目

プロバイダー ウィザードで生成されたファイル