OLE DB コンシューマ テンプレート (C++)
更新 : 2007 年 11 月
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 コンシューマ テンプレートのアーキテクチャ