単純なコンシューマーの作成
ATL OLE DB コンシューマー ウィザードは、Visual Studio 2019 以降では使用できません。 ただし、この機能を手動で追加することは可能です。 詳細については、「ウィザードを使用しないコンシューマーの作成」を参照してください。
ATL プロジェクト ウィザードと ATL OLE DB コンシューマー ウィザードを使用して OLE DB テンプレート コンシューマーを生成します。
OLE DB コンシューマー用のコンソール アプリケーションを作成するには
ファイルメニューで新規をクリックし、プロジェクトをクリックします。
[新しいプロジェクト] ダイアログ ボックスが表示されます。
[プロジェクトの種類] ウィンドウで [インストール済み]>[Visual C++]>[Windows デスクトップ] フォルダーをクリックし、[テンプレート] ウィンドウの [Windows デスクトップ ウィザード] アイコンをクリックします。 [名前] ボックスにプロジェクト名を入力します (例: MyCons)。
OK をクリックします。
Windows デスクトップ プロジェクト ウィザードが起動します。
[アプリケーションの設定] ページで [コンソール アプリケーション] を選択し、[共通ヘッダー ファイルを追加: ATL] を選択します。
[OK] をクリックし、ウィザードを終了してプロジェクトを生成します。
次に、ATL OLE DB コンシューマー ウィザードを使用して OLE DB コンシューマー オブジェクトを追加します。
ATL OLE DB コンシューマー ウィザードを使用してコンシューマーを作成するには
ソリューション エクスプローラーで、
MyCons
プロジェクトを右クリックします。ショートカット メニューの [追加]、[新しい項目] を順にクリックします。
[新しい項目の追加] ダイアログ ボックスが表示されます。
[カテゴリ] ウィンドウで [インストール済み]>[Visual C++]>[ATL] をクリックし、[テンプレート] ウィンドウの [ATL OLEDB コンシューマー] アイコンをクリックして、[追加] をクリックします。
ATL OLEDB コンシューマー ウィザードが起動します。
[データ ソース] ボタンをクリックします。
[データ リンク プロパティ] ダイアログ ボックスが表示されます。
[データ リンク プロパティ] ダイアログ ボックスで次の操作を行います。
[プロバイダー] タブで、OLE DB プロバイダーを指定します。
[接続] タブで、サーバー名、ログオン ID、パスワードなど、サーバー上のデータ ソースとデータベースに必要な情報を指定します。
Note
[データ リンク プロパティ] ダイアログ ボックスの [パスワードを保存する] 機能には、セキュリティ上の問題があります。 [サーバーにログオンするための情報の入力] には、[Windows NT の統合セキュリティを使用する] と [特定のユーザー名とパスワードを使用する] という 2 つのラジオ ボタンがあります。
Note
[特定のユーザー名とパスワードを使用する] を選択した場合、パスワードを保存するオプション ([パスワードを保存する] チェック ボックスを使用) がありますが、このオプションは安全ではありません。 [Windows NT の統合セキュリティを使用する] を選択することをお勧めします。このオプションでは、Windows NT を使用してユーザーの ID を確認します。
Note
Windows NT の統合セキュリティを使用できない場合は、中間層アプリケーションを使用して、ユーザーにパスワードの入力を求めるか、パスワードを (ソース コードではなく) セキュリティ機構が備わった場所に保管して保護する必要があります。
プロバイダーとその他の設定を選択したら、[接続テスト] をクリックして、前のダイアログ ボックスのページで選択した内容を検証します。 [結果] ボックスに「
Test connection succeeded
」と表示されたら、[OK] をクリックしてデータ リンクを作成します。
[データベース オブジェクトの選択] ダイアログ ボックスが表示されます。
ツリー コントロールを使用して、テーブル、ビュー、またはストアド プロシージャを選択します。 この例では、
Northwind
データベースのProducts
テーブルを選択します。OK をクリックします。 これにより、ATL OLE DB コンシューマー ウィザードに戻ります。
選択したテーブル、ビュー、またはストアド プロシージャの名前に基づいて、
Class
と .h ファイルの名前がウィザードによって補完されます。 これらの名前は必要に応じて編集できます。[属性] チェック ボックスをオフにして、ウィザードで既定の OLE DB コンシューマー属性ではなく、OLE DB テンプレート クラスを使用してコンシューマー コードが作成されるようにします。
[型] で [コマンド] を選択します。
[コマンド] を選択した場合は CCommand ベースのコンシューマーが、[テーブル] を選択した場合は CTable ベースのコンシューマーがウィザードによって作成されます。 テーブルまたはコマンド クラスの名前は、選択したオブジェクトに基づいて決まりますが、この名前は編集できます。
[サポート] にある [変更]、[挿入]、および [削除] の各チェック ボックスはオフのままにします。
行セットのレコードの変更、挿入、および削除をサポートするには、[変更]、[挿入]、および [削除] の各チェック ボックスをオンにします。 データ ストアへのデータの書き込みの詳細については、「行セットの更新」を参照してください。
[完了] をクリックしてコンシューマーを作成します。
「コンシューマー ウィザードで生成されたクラス」の説明にあるように、ウィザードによってコマンド クラスとユーザー レコード クラスが生成されます。 コマンド クラスは、ウィザードの Class
ボックスに入力した名前 (CProducts
など) になり、ユーザー レコード クラスは、"ClassNameAccessor" 形式の名前 (CProductsAccessor
など) になります。
Note
ウィザードによって次の行が Products.h
に挿入されます。
#error Security Issue: The connection string may contain a password
Note
この行により、コンシューマー アプリケーションはコンパイルされず、接続文字列にハード コーディングされたパスワードがないか確認するよう促すメッセージが表示されます。 接続文字列を確認したら、このコード行を削除できます。