OLE DB プロバイダ テンプレート リファレンス
更新 : 2007 年 11 月
OLE DB プロバイダ テンプレートのクラスとインターフェイスは以下のカテゴリに分類できます。「OLE DB テンプレート リファレンス」には「OLE DB プロバイダ テンプレート用マクロ」のトピックもあります。
クラスは次の名前付け規約を使用します。IWidgetImpl パターンの名前を持つクラスは、IWidget インターフェイスの実装を提供します。
セッション クラス
IDBCreateSessionImpl
データ ソース オブジェクトからセッションを新規作成し、そのセッションに対して要求されたインターフェイスを返します。データ ソース オブジェクトの必須インターフェイスです。ISessionPropertiesImpl
プロパティ セット マップによって定義された静的な関数を呼び出して、セッション プロパティを実装します。プロパティ セット マップはセッション クラスで指定しておく必要があります。セッションの必須インターフェイスです。
行セット クラス
多くの実装インターフェイスの多重継承を必要としない標準の OLE DB 行セット実装を提供します。独自の実装を提供する必要のあるメソッドは Execute だけです。
CSimpleRow
IRowsetImpl クラスで使用される行ハンドルの既定の実装を提供します。行ハンドルは、論理的に結果行に対して一意のタグです。IRowsetImpl は、IRowsetImpl::GetNextRows で要求されるすべての行に対して、新規に CSimpleRow を作成します。IAccessorImpl
OLE DB では、プロバイダが、DBBINDING 構造体の配列のタグである HACCESSOR を実装する必要があります。BindType 構造体のアドレスである HACCESSOR を提供します。行セットとコマンドの必須インターフェイスです。IColumnsInfoImpl
プロバイダ列マップで定義された静的な関数に処理を代行させます。行セットとコマンドの必須インターフェイスです。IConvertTypeImpl
コマンドまたは行セットの型変換ができるかどうかに関する情報を与えます。コマンド、行セット、およびインデックス行セットで必須です。OLE DB が提供する変換オブジェクトに処理を代行させることによって、IConvertType インターフェイスを実装します。IDBSchemaRowsetImpl
IDBSchemaRowset インターフェイスと template 宣言された作成関数 CreateSchemaRowset を実装します。IOpenRowsetImpl
単一のベース テーブルまたはインデックスのすべての行を含む行セットを開き、その行セットを返します。セッション オブジェクトの必須インターフェイスです。IRowsetChangeImpl
OLE DB IRowsetChange インターフェイスを実装します。このインターフェイスにより、既存行にある列値の更新、行の削除、および新規行の挿入を行うことができます。IRowsetCreatorImpl
このクラスは IObjectWithSite を継承し、IObjectWithSite::SetSite をオーバーライドします。IRowsetCreatorImpl の動作は IObjectWithSite と同じですが、さらに OLE DB の DBPROPCANSCROLLBACKWARDS プロパティと DBPROPCANFETCHBACKWARDS プロパティを有効にします。IRowsetIdentityImpl
IRowsetIdentity インターフェイスを実装します。このインターフェイスにより、2 つの行のデータが同じかどうかを比較できます。IRowsetImpl
基本行セット インターフェイスとなる IRowset インターフェイスの実装を提供します。IRowsetInfoImpl
コマンド クラスで定義されたプロパティ セット マップを使用して、行セット プロパティを実装します。行セットの必須インターフェイスです。IRowsetLocateImpl
OLE DB IRowsetLocate インターフェイスを実装します。このインターフェイスは、行セットから任意の行をフェッチします。行セットで OLE DB のブックマークをサポートするには、行セットがこのクラスから継承されるようにします。IRowsetNotifyCP
ブロードキャスト関数を実装して、コネクション ポイント IID_IRowsetNotify のリスナに、行セットの内容変更をアドバイズします。通知を処理するコンシューマは IRowsetNotify を実装し、コネクション ポイントに登録します。IRowsetUpdateImpl
OLE DB IRowsetUpdate インターフェイスを実装します。このインターフェイスにより、コンシューマは、IRowsetChange を使用して行った変更のデータ ソースへの送信を遅らせたり、変更内容を元に戻してからデータを送信したりできます。
コマンド クラス
ICommandImpl
ICommand インターフェイスの実装を提供します。このインターフェイスは参照できません。これは、ICommandTextImpl によって処理されるインターフェイスです。コマンド オブジェクトの必須インターフェイスです。ICommandPropertiesImpl
ICommandProperties インターフェイスのこの実装は、BEGIN_PROPSET_MAP マクロで定義された静的な関数によって提供されます。コマンドの必須インターフェイスです。ICommandTextImpl
コマンド テキストを設定、格納したり、コマンド テキストを返します。コマンドの必須インターフェイスです。IDBCreateCommandImpl
セッション オブジェクトからコマンドを新規作成し、そのコマンドに対して要求されたインターフェイスを返します。セッション オブジェクトの省略可能なインターフェイスです。
その他のコマンド クラスとして、上の行セット クラスの説明にある IColumnsInfoImpl と IAccessorImpl があります。
データ ソース クラス
IDBInitializeImpl
コンシューマとの接続を作成または削除します。データ ソース オブジェクトの必須インターフェイスで、列挙子の省略可能なインターフェイスです。IDBPropertiesImpl
IDBProperties はデータ ソース オブジェクトの必須インターフェイスで、列挙子の省略可能なインターフェイスです。ただし、列挙子が IDBInitialize を公開する場合は、IDBProperties (データ ソースのプロパティ) を公開する必要があります。IGetDataSourceImpl
データ ソース オブジェクトへのインターフェイス ポインタを取得します。セッションの必須インターフェイスです。
その他のクラス
- CUtlProps
さまざまな OLE DB プロパティ インターフェイスのプロパティ (たとえば、IDBProperties、ISessionProperties、IRowsetInfo) を実装します。
OLE DB の IErrorRecords インターフェイスを実装し、データ メンバに対してレコードの追加またはレコードの取得を行います。