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 についての情報が必要な場合は、「Microsoft OLE DB Driver for SQL Server」を参照してください。
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 つのクラスを宣言することです。 行セットには、コマンド (またはテーブル) クラスを使用してアクセスします。このクラスは、アクセサー クラスと行セット クラスの両方から継承します。 ユーザー レコード クラスには、前述した行セットのバインド マップが含まれます。
詳細については、次のトピックを参照してください。
関連項目
OLE DB プログラミング
データ アクセス
OLE DB SDK のドキュメント
Microsoft OLE DB Driver for SQL Server