データ処理拡張機能の Connection クラスの実装

Connection オブジェクトはデータベース接続や類似するリソースを表し、ユーザーにとっては SQL Server Reporting Services データ処理拡張機能の出発点です。このオブジェクトはデータベース サーバーへの接続を表しますが、類似する動作を持つエンティティが Connection として表示される可能性があります。

Connection オブジェクトを実装するには、IDbConnection を実装し、オプションで IDbConnectionExtension を実装するクラスを作成します。

実装では、接続が作成され、開かれていることを確認した後でコマンドを実行する必要があります。実装にはクライアントが接続を明示的に開閉する必要があります。実装がクライアントの接続を暗黙的に開閉するのではありません。接続を取得したら、セキュリティ チェックを実行します。SSRS データ処理拡張機能で他のクラスの既存接続が必要な場合は、データ ソースの操作時にセキュリティ チェックが常に確実に実行されるようにします。

該当する接続のプロパティは、接続文字列として表されます。OLE DB によって定義されている使い慣れた名前と値のペアを使用して、SSRS データ処理拡張機能で ConnectionString プロパティをサポートすることを強くお勧めします。

注意注意

Connection オブジェクトの取得にリソースが大きく消費されることがあるため、接続のプールなどの技法を検討してこの問題を緩和してください。

IDbConnection は、IExtension から継承されます。IExtension インターフェイスは、Connection クラス実装の一部として実装する必要があります。IExtension インターフェイスによって、クラスがローカライズされた拡張機能名を実装し、Reporting Services 構成ファイルに格納された拡張機能固有の構成情報を処理できるようになります。

IExtension の実装によって、Connection オブジェクトに LocalizedName プロパティが含まれます。Reporting Services データ処理拡張機能で LocalizedName プロパティをサポートすることを強くお勧めします。これにより、レポート マネージャーなどのユーザー インターフェイスの拡張機能に、ローカライズされた使い慣れた名前がユーザーに表示されます。

IExtension によって、Connection オブジェクトが RSReportServer.config ファイルに格納されたカスタム構成データを取得し、処理することもできます。カスタム構成データの処理の詳細については、SetConfiguration メソッドを参照してください。

IExtension を実装するクラスは、残りのデータ処理拡張機能のクラスが読み込まれていない場合は、メモリから読み込まれません。このため、Extension クラスを使用して、相互接続状態の情報を格納することや、キャッシュできるデータをメモリに格納することができます。Extension クラスは、レポート サーバーを実行中はメモリに残ります。

IDbConnectionExtension を実装することによって、Reporting Services の資格情報のサポートを含むように Connection クラスを拡張できます。IDbConnectionExtension インターフェイスの IntegratedSecurityUserName、および Password の各プロパティを実装する場合は、レポート デザイナーの [データ ソース] ダイアログ ボックスで [統合セキュリティ] チェック ボックスをオンにし、[ユーザー名] ボックスと [パスワード] ボックスに必要な情報を入力します。これによって、レポート デザイナーは承認をサポートするデータ ソースの資格情報を格納および取得できます。資格情報は、セキュリティによって保護されて格納され、プレビュー モードでレポートを表示する場合に使用されます。

注意注意

IDbConnectionExtension を暗黙的に実装するには、IDbConnection インターフェイスと IExtension インターフェイスのメンバーを実装する必要があります。

Connection クラス実装の例については、「SQL Server Reporting Services Product Samples」(英語) を参照してください。