特定のデータ ソースでのクエリ パラメータの使用
新規 : 2006 年 7 月 17 日
データセットに対するクエリを定義する場合は、データ ソースの種類を選択します。データ ソースの種類によって、データ ソースに接続するためのデータ処理拡張機能または登録済みの .NET データ プロバイダが指定されます。データ プロバイダとは、データ ソースと情報のやり取りを行い、クエリで変数を使用する場合に利用できるサポートを特定するソフトウェア レイヤです。このトピックでは、特定の結果セットに関して、接続先のデータ ソースに応じてクエリがどのように変わるかについて説明します。また、クエリに変数が含まれるかどうかについても説明します。
クエリ変数とデータ プロバイダ
次の表は、AdventureWorks サンプル データベースから得られたデータの結果を示しています。この結果セットは、AdventureWorks サンプル データベースに対して Transact-SQL クエリを実行するか、または Adventure Works サンプル レポートの一部として配置されている Adventure Works キューブに対して MDX クエリを実行することによって生成できます。この結果セットには、"Mountain" という単語が含まれている製品モデル名と、これに対応するインターネット販売数を表す 2 つの列があります。
名前 | インターネット販売数 |
---|---|
Fender Set - Mountain |
2121 |
HL Mountain Tire |
1396 |
LL Mountain Tire |
862 |
ML Mountain Tire |
1161 |
Mountain Bottle Cage |
2025 |
Mountain Tire Tube |
3095 |
Mountain-100 |
396 |
Mountain-200 |
3552 |
Mountain-400-W |
543 |
Mountain-500 |
479 |
Women's Mountain Shorts |
1019 |
次のセクションでは、この結果セットをリレーショナル データベースから生成するためのクエリと、多次元データベースから生成するためのクエリを示します。
リレーショナル データベース データ ソース
Microsoft SQL Server などのリレーショナル データベースでは、Transact-SQL を使用してクエリを作成できます。このクエリでは、ハードコード値に設定された WHERE 句を含めることによって結果を限定していますが、変数はまだクエリに含まれていません。
Transact-SQL クエリ |
---|
|
製品モデル名の変数 PM.Name
を追加するには、WHERE 句でクエリ パラメータを指定する必要があります。次の表は、さまざまなデータ プロバイダでクエリ パラメータを指定する方法を示しています。データ プロバイダは、データ ソースの種類を選択すると自動的に選択されます。このデータ プロバイダの接続文字列は、左から 2 つ目の列に示されています。次の表のクエリは上記のクエリとほぼ同じですが、データ プロバイダでサポートされている形式でパラメータが追加されている点が異なります。
データ ソースの種類 | データ プロバイダ | クエリ |
---|---|---|
Microsoft SQL Server |
Microsoft SQL Server (SqlClient) 接続文字列 :
|
|
OLE DB |
Microsoft OLE DB Provider for SQL Server 接続文字列 :
|
|
Oracle |
Microsoft SQL Server (OracleClient) |
|
OLE DB |
登録済みの .NET データ プロバイダ |
プロバイダごとに異なります。 |
上記の例では、クエリの WHERE 句に変数が追加され、"Mountain" という単語に関するテストが、変数値に関するテストに変更されています。
- SQL Server 用の .NET データ プロバイダは、アット マーク (@) で始まる名前付き変数をサポートしています。たとえば、
PM.Name ``LIKE '%' + @Mountain + '%')
のように指定します。 - SQL Server 用の OLE DB プロバイダは、名前付き変数をサポートしていません。変数を指定するには、疑問符 (?) を使用します。OLE DB プロバイダには、WHERE 句内と同じ順序でパラメータを渡す必要があります。たとえば、
PM.Name ``LIKE ('%' + ? + '%')
のように指定します。 - Oracle 用の .NET データ プロバイダは、コロン (:) で始まる番号付きパラメータをサポートしています。たとえば、
PM.Name ``LIKE '%' + :1 + '%')
のように指定します。 - その他の OLE DB データ プロバイダによる変数のサポートは、データ プロバイダによって異なります。詳細については、データ プロバイダのドキュメントを参照してください。
識別された各変数のクエリ パラメータは、データ ソースの種類に関連付けられたクエリ デザイナによって生成されます。これらのクエリ パラメータは、データセット プロパティ ページの [パラメータ] タブに表示されます。すべてのクエリ パラメータについて、String 型のレポート パラメータが作成されます。データセットに対して定義されているクエリ パラメータ値は、対応するレポート パラメータに設定されます。レポート パラメータのデータ型やその他のプロパティは、[レポートのプロパティ] ダイアログ ボックスで編集できます。[レポートのプロパティ] ダイアログ ボックスには、データ ビューの [レポート] メニューからアクセスできます。これらのクエリ パラメータは手動で作成、編集、または削除できます。詳細については、「[データセット] ([パラメータ] タブ、レポート デザイナ)」を参照してください。
多次元データベース データ ソース
Microsoft Analysis Services などの多次元データベースでは、MDX を使用してクエリを作成できます。このクエリでは、ハードコード値に設定された Filter 句を含めることによって結果を限定していますが、変数はまだクエリに含まれていません。
MDX クエリ |
---|
|
製品モデル名の変数 @ProductModelName を追加するには、Filter 句を追加する必要があります。次の表は、多次元データベースで、変数が Filter 句の一部であることを示しています。データ ソースの種類は、Reporting Services 用に新しいデータ ソースを作成するときにドロップダウン リストから選択します。データ プロバイダは、データ ソースの種類を選択すると自動的に選択されます。このデータ プロバイダの接続文字列は、左から 2 つ目の列に示されています。次の表のクエリは上記のクエリとほぼ同じですが、データ プロバイダでサポートされている形式でパラメータが追加されている点が異なります。
データ ソースの種類 | データ プロバイダ | クエリ |
---|---|---|
Microsoft SQL Server Analysis Services |
SQL Server Analysis Services (AdomdClient) 接続文字列 :
|
|
OLE DB |
Microsoft OLE DB Provider for Analysis Services 9.0 接続文字列 :
|
OLE DB for OLAP は、パラメータ化クエリをサポートしていません。 対処方法については、「Integrating Analysis Services with Reporting Services」ホワイトペーパーを参照してください。 |
上記の例では、クエリの WHERE 句に変数が追加され、"Mountain" という単語に関するテストが、変数値に関するテストに変更されています。
- Microsoft SQL Server Analysis Services は、MDX クエリ デザイナの [フィルタ] セクションで定義された名前付きパラメータをサポートしています。名前付き変数は、アット マーク (@) で始まります。たとえば、
@ProductModelName
のように指定します。 - Microsoft OLE DB Provider for Analysis Services 9.0 は、パラメータ化クエリをサポートしていません。詳細については、msdn.microsoft.com の「Integrating Analysis Services with Reporting Services」を参照してください。
- その他の多次元データ プロバイダによる変数のサポートは、データ プロバイダによって異なります。詳細については、データ プロバイダのドキュメントを参照してください。
識別された各変数のクエリ パラメータは、データ ソースの種類に関連付けられたクエリ デザイナによって生成されます。各パラメータの有効値を提供する特別なデータセットが自動的に生成されます。これらのクエリ パラメータは、データセット プロパティ ページの [パラメータ] タブに表示されます。すべてのクエリ パラメータについて、String 型のレポート パラメータが作成されます。データセットに対して定義されているクエリ パラメータ値は、対応するレポート パラメータに設定されます。これらのデータセット パラメータは手動で作成、編集、または削除できます。詳細については、「Analysis Services の MDX および DMX クエリ デザイナでパラメータを定義する方法 (レポート デザイナ)」を参照してください。
クエリを処理するたびに、各クエリの有効値を提供するデータセットが生成されます。
参照
処理手順
クエリ パラメータをレポート パラメータに関連付ける方法 (レポート デザイナ)
概念
Analysis Services データベースに対する拡張フィールド プロパティの使用
Analysis Services の MDX クエリ デザイナの使用 (デザイン モード)
Analysis Services の MDX クエリ デザイナの使用 (クエリ モード)
レポートのデータセットの定義 (SQL Server リレーショナル データベース)
レポート データセットの定義 (Oracle データベースのリレーショナル データ)
その他の技術情報
Analysis Services の MDX クエリ デザイナのユーザー インターフェイス
SQL Server クエリ デザイナのユーザー インターフェイス