OLE DB プロバイダー テンプレート リファレンス
OLE DB プロバイダー テンプレートのクラスとインターフェイスは次のようにグループ化できます。 参考資料には、OLE DB プロバイダー テンプレートのマクロに関する情報もあります。
クラスは次の名前付け規則に従っています。パターン IWidgetImpl
で名前が付けられたクラスは、インターフェイス IWidget
の実装を提供します。
セッション クラス
IDBCreateSessionImpl
データ ソース オブジェクトから新しいセッションを作成し、新しく作成されたセッションに要求されたインターフェイスを返します。 データ ソース オブジェクトでは必須のインターフェイスです。
ISessionPropertiesImpl
プロパティ セット マップで定義された静的関数を呼び出すことで、セッションのプロパティを実装します。 プロパティ セット マップは、セッション クラスで指定する必要があります。 セッションでは必須のインターフェイスです。
行セットのクラス
多くの実装インターフェイスの多重継承を必要としない、標準の OLE DB 行セット実装を提供します。 実装を提供する必要があるメソッドは Execute
のみです。
CSimpleRow
IRowsetImpl
クラスで使われる、行ハンドルの既定の実装を提供します。 行ハンドルは、論理的には結果行の一意のタグです。 IRowsetImpl::GetNextRows
で要求されたすべての行に対して新しい CSimpleRow
を作成するには、IRowsetImpl
を使います。
IAccessorImpl
OLE DB では、プロバイダーは HACCESSOR
を実装する必要があります。これは DBBINDING
構造体の配列へのタグです。 BindType
構造体のアドレスである HACCESSOR
を指定します。 行セットとコマンドでは必須です。
IColumnsInfoImpl
プロバイダー列マップによって定義された静的関数にデリゲートします。 行セットとコマンドでは必須インターフェイスです。
IConvertTypeImpl
コマンドまたは行セットで型変換が可能かどうかを示す情報を提供します。 コマンド、行セット、インデックス行セットで必須です。 OLE DB によって提供される変換オブジェクトにデリゲートすることで、IConvertType
インターフェイスを実装します。
IDBSchemaRowsetImpl
IDBSchemaRowset
インターフェイスとテンプレート化されたクリエーター関数 CreateSchemaRowset
を実装します。
IOpenRowsetImpl
1 つのベース テーブルまたはインデックスのすべての行を含む行セットを開いて返します。 セッション オブジェクトには必須のインターフェイスです。
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 インターフェイスを実装します。