ATL OLE DB コンシューマ ウィザード
更新 : 2007 年 11 月
このウィザードでは、指定した OLEDB プロバイダを通して指定したデータ ソースにアクセスするために必要なデータ連結が設定された OLEDB コンシューマ クラスを作成します。
メモ : |
---|
このウィザードでは、[データ ソース] をクリックしてデータ ソースを選択してから、[Class] フィールドと [.h ファイル] フィールドに名前を入力する必要があります。 |
[データ ソース]
[データ ソース] オプションでは、OLE DB プロバイダを指定して、選択したデータ ソースを設定できます。このボタンをクリックすると、[データ リンク プロパティ] ダイアログ ボックスが表示されます。接続文字列の作成と [データ リンク プロパティ] ダイアログ ボックスの詳細については、Windows SDK ドキュメントの「Data Link API Overview」を参照してください。メモ : 以前のリリースでは、Shift キーを押しながら [データ ソース] ボタンをクリックすると [ファイルを開く] ダイアログが表示され、データ リンク (.udl) ファイルを選択できました。現在のリリースでは、この機能はサポートされていません。
このダイアログ ボックスには以下の 4 つのタブがあります。
[プロバイダ] タブ
[接続] タブ
[詳細設定] タブ
[すべて] タブ
Class
データ ソースを選択すると、このボックスには、選択したテーブルまたはストアド プロシージャに基づいて既定のクラス名が設定されます。下の [データ ソース] の説明を参照してください。このクラス名は編集できます。[.h ファイル]
データ ソースを選択すると、このボックスには、選択したテーブルまたはストアド プロシージャに基づいて既定のヘッダー クラス名が設定されます。下の [データ ソース] の説明を参照してください。ヘッダー ファイル名を編集したり、既存のヘッダー ファイルを選択することも可能です。[属性付き]
このオプションを選択するかどうかによって、ウィザードがコンシューマ クラスを作成するときに属性とテンプレート宣言のどちらを使用するかが決まります。このオプションを選択すると、ウィザードはテンプレート宣言ではなく属性を使用します。既定では、このオプションが選択されています。このオプションの選択を解除すると、ウィザードは属性ではなくテンプレート宣言を使用します。コンシューマの種類として [テーブル] を選択した場合、ウィザードは db_source 属性と db_table 属性を使用して、テーブル クラスの宣言とテーブル アクセサ クラスの宣言を作成し、db_column を使用して、列マップを作成します。次に例を示します。
// Inject table class and table accessor class declarations [ db_source("<initialization_string>"), db_table("dbo.Orders") ] ... // Column map [ db_column(1, status=m_dwOrderIDStatus, length=m_dwOrderIDLength) ] LONG m_OrderID; [ db_column(2, status=m_dwCustomerIDStatus, length=m_dwCustomerIDLength) ] TCHAR m_CustomerID[6]; ...
これは、次のように、CTable テンプレート クラスを使用して、テーブル クラスとテーブル アクセサ クラスを宣言し、BEGIN_COLUMN_MAP マクロと END_COLUMN_MAP マクロを使用して列マップを作成する場合とは異なります。
// Table accessor class class COrdersAccessor; // Table class class COrders : public CTable<CAccessor<COrdersAccessor> >; ... // Column map BEGIN_COLUMN_MAP(COrderDetailsAccessor) COLUMN_ENTRY_LENGTH_STATUS(1, m_OrderID, m_dwOrderIDLength, m_dwOrderIDStatus) COLUMN_ENTRY_LENGTH_STATUS(2, m_CustomerID, m_dwCustomerIDLength, m_dwCustomerIDStatus) ... END_COLUMN_MAP()
コンシューマの種類として [コマンド] を選択した場合、ウィザードは db_source 属性と db_command 属性を使用し、db_column を使用して、列マップを作成します。次に例を示します。
[ db_source("<initialization_string>"), db_command("SQL_command") ] ... // Column map using db_column is the same as for consumer type of 'table'
これは、次のように、コマンド クラスの .h ファイル内のコマンド クラスの宣言とコマンド アクセサ クラスの宣言を使用する場合とは異なります。
Command accessor class: class CListOrdersAccessor; Command class: class CListOrders : public CCommand<CAccessor<CListOrdersAccessor> >; ... // Column map using BEGIN_COLUMN_MAP ... END_COLUMN_MAP is the same as // for consumer type of 'table'
詳細については、「属性の基本的なしくみ」を参照してください。
[種類]
以下のオプション ボタンのいずれかをクリックし、コンシューマ クラスが CTable と CCommand (既定) のどちらから派生するかを指定します。[テーブル]
CTable または db_table を使用してテーブル クラスの宣言とテーブル アクセサ クラスの宣言を作成する場合は、このオプションを選択します。[コマンド]
CCommand または db_command を使用してコマンド クラスの宣言とコマンド アクセサ クラスの宣言を作成する場合は、このオプションを選択します。これは、既定の設定です。
[サポート]
コンシューマでサポートする更新の種類を指定するには、このチェック ボックスをオンにします。既定では、更新はサポートされません。以下の各オプションでは、プロパティ セット マップに DBPROP_IRowsetChange と、DBPROP_UPDATABILITY の適切なエントリが設定されます。[変更]
コンシューマが行セットでの行データの更新をサポートするように指定します。[挿入]
コンシューマが行セットへの行の挿入をサポートするように指定します。[削除]
コンシューマが行セットからの行の削除をサポートするように指定します。