OLE DB コンシューマー テンプレート (C++)
OLE DB コンシューマー テンプレートは、OLE DB Version 2.6 の仕様をサポートしています。 OLE DB コンシューマー テンプレートは OLE DB 2.6 でテストされていますが、仕様のすべてのインターフェイスをサポートしているわけではありません。 コンシューマー テンプレートを使用すると、OLE DB コンシューマーを実装するためのコードを最小限の記述に抑えることができます。 テンプレートには、以下の機能があります。
OLE DB 機能への簡単なアクセスと ATL および MFC との簡単な統合
データベースのパラメーターと列の簡単な連結モデル
OLE DB プログラミング用のネイティブの C/C++ データ型
OLE DB テンプレートを使用するには、C++ テンプレート、COM、および OLE DB インターフェイスに関する知識が必要です。 OLE DB についてあまり知識がない場合は、『OLE DB Programmer's Reference』を参照してください。
OLE DB テンプレートは、既存の OLE DB オブジェクト モデルをサポートします。新規のオブジェクト モデルは追加しません。 OLE DB コンシューマー テンプレートの最上位クラスは、OLE DB 仕様で定義されたコンポーネントに対応しています。 OLE DB コンシューマー テンプレートのデザインには、1 つの行セットに対する複数のアクセサーなどの高度な機能が含まれます。 テンプレートと多重継承を併用すると、ライブラリのサイズを小さくしたり、ライブラリを多様に使用できます。
OLE DB コンシューマーがデータにアクセスする方法
コンシューマーは、複数の種類のオブジェクトを使用します。これらのオブジェクトについては、以下のトピックで説明しています。
コンシューマーが何か処理を行う前に、アクセスする必要のあるデータベースの種類 (SQL、Oracle、ODBC、MSDS など) に適した OLE DB プロバイダーを選択します。 プロバイダーを選択するには、通常は列挙子を使用します。「データ ソースとセッション」で説明しているように「CEnumerator クラス」を参照してください。
データ ソース オブジェクトは、選択したデータ ソースとの接続に必要な接続情報を提供します。 データ ソース オブジェクトには、認証情報 (ログイン名やパスワードなど) も含まれています。この認証情報は、データ ソースにアクセスする許可をユーザーに与えるために使用されます。 データ ソース オブジェクトは、データベースへの接続を確立してから、1 つ以上のセッション オブジェクトを作成します。 各セッション オブジェクトは、データベースとの独自の対話 (データのクエリと取得) を管理し、他の既存のセッションに依存せずにこれらのトランザクションを実行します。
セッションは、行セット オブジェクトとコマンド オブジェクトを作成します。 コマンド オブジェクトにより、ユーザーは、たとえば SQL コマンドを使用してデータベースと対話できます。 行セット オブジェクトは、移動できるデータのセットであり、ここに行を更新、削除、および挿入できます。
OLE DB コンシューマーは、データベース テーブル内の列をローカル変数と連結します。連結は、コンシューマーへのデータの格納方法の割り当てを含むアクセサーを使用して行われます。 この割り当ては、テーブルの列とコンシューマー アプリケーションのローカル バッファー (変数) 間の連結のセットで構成されます。
コンシューマーを扱うときの 1 つの重要な概念は、コンシューマーで 2 つのクラスを宣言することです。2 つのクラスとは、コマンド (またはテーブル) クラスとユーザー レコード クラスです。 行セットには、コマンド (またはテーブル) クラスを使用してアクセスします。このクラスは、アクセサー クラスと行セット クラスの両方から継承します。 ユーザー レコード クラスには、前に説明した行セット連結マップが含まれます。
詳細については、次のトピックを参照してください。
OLE DB コンシューマー テンプレートのアーキテクチャ