レポートのデータセットの定義 (SQL Server リレーショナル データベース)
更新 : 2006 年 4 月 14 日
Reporting Services には、Microsoft SQL Server リレーショナル データベースからレポート データを取得するためのデータ処理拡張機能が用意されています。このデータ処理拡張機能によって、リレーショナル データ テーブル、ビュー、ストアド プロシージャなど、基になるデータ ソースで定義されたさまざまなデータ構造からデータを取得できます。データ ソースに接続した後、レポート データセットを作成し、データ ソースからどのようなデータを抽出してレポートに使用するかを定義できます。Reporting Services のデータセットには、データ ソース、レポート処理時にデータを取得するためのクエリ、およびフィールドのコレクションが含まれます。データセットの定義は、レポート定義に保存されます。[データセット] ウィンドウに、レポートで使用されている現在のデータセット定義を表示できます。
データセットは、Transact-SQL クエリ テキストまたはストアド プロシージャ呼び出しを使ってクエリを作成するか、テーブルを選択して、すべてのデータをそのテーブルから取得することによって定義します。データセットのフィールド コレクションはクエリに基づいて自動的に作成されます。フィールドを編集したり、集計フィールドを追加したりすることが可能です。集計フィールドには、式を使った値が割り当てられ、その値はクエリの実行時に評価されます。また、フィルタを作成することにより、データ ソースからレポートに取得されるデータを制限することもできます。データセットの定義方法については、「レポート データについて」を参照してください。
リレーショナル データ ソースに使用できるクエリ デザイナとして、汎用クエリ デザイナとグラフィカル クエリ デザイナの 2 つがあります。既定では、汎用クエリ デザイナが開きます。汎用クエリ デザイナは、Transact-SQL テキストを直接入力したり、クエリ テキストを別のソースから貼り付けたりする場合のほか、グラフィカル クエリ デザイナでは作成できない複雑なクエリを入力したり、クエリ ベースの式を入力したりする場合に使用します。グラフィカル クエリ デザイナは、データ ソース上のメタデータを参照しながら、クエリを対話的にデザインする場合や、データ ソース上のストアド プロシージャまたはテーブルを一覧表示する場合に使用します。
レポート デザイナでクエリ デザイナを開くには、[データ] タブを選択します。クエリ デザイナを切り替えるには、[データ ビュー] ツール バーの [汎用クエリ デザイナ] () 切り替えボタンをクリックします。詳細と例については、「SQL Server クエリ デザイナのユーザー インターフェイス」を参照してください。
クエリを定義した後、Timeout や CaseSensitivity などのプロパティを指定したり、クエリ パラメータに値を渡すレポート パラメータを定義することもできます。クエリを実行すると、データ ソースから抽出された結果セットが表示されます。結果セットの列は、データセットのフィールドにマップされます。レポートを処理すると、データセットのフィールドにバインドされているレポート アイテムに、取得されたデータまたは集計されたデータが表示されます。レポートによって処理されるのは、クエリから取得された最初の結果セットだけです。
リレーショナル データのクエリ デザイナには、次の 3 種類のコマンドがあります。
- [Text] : Transact-SQL ステートメントを指定できます。
- [StoredProcedure] : データ ソース上のストアド プロシージャを呼び出すことができます。このモードでは、出力パラメータがサポートされません。
- [TableDirect] : データ ソースのテーブル名を指定して、そのテーブルのすべての列を取得できます。TableDirect は、一部のデータ プロバイダでのみサポートされます。
クエリ テキストの使用
Transact-SQL を使用して、データセットのデータを定義できます。この場合は、データセットのコマンドの種類を [Text] に設定し、Transact-SQL テキストを SQL ペインに直接入力します。
たとえば、次の Transact-SQL クエリでは、すべての従業員の名前を選択します。
SELECT FirstName, LastName
FROM HumanResources.Employee E INNER JOIN
Person.Contact C ON E.ContactID=C.ContactID
ツール バーの [実行] ボタンをクリックすると、クエリが実行され、結果ペインに結果が表示されます。
このコマンド モードは、Transact-SQL ステートメントを入力できるため、ストアド プロシージャを実行することも可能です。たとえば、次の SQL ステートメントは、AdventureWorks のストアド プロシージャ uspGetEmployeeManagers を呼び出しています。
EXEC uspGetEmployeeManagers '1'
ストアド プロシージャの使用
ストアド プロシージャを使用すると、データセットのデータを定義できます。この場合、クエリ ペインからストアド プロシージャを実行する方法と、データセットのコマンドの種類を [StoredProcedure] に設定して、目的のストアド プロシージャをドロップダウン リストから選択する方法とがあります。グラフィカル クエリ デザイナを使用している場合、[コマンドの種類] ドロップダウン リストをクリックすると、データ ソースで利用できるストアド プロシージャが表示されます。汎用クエリ デザイナを使用している場合、実行したいストアド プロシージャの名前があらかじめわかっていれば、その名前をクエリ ペインに入力します。
Reporting Services では、データのセットを 1 つだけ返すストアド プロシージャをサポートしています。ストアド プロシージャから複数の結果セットが返された場合、最初の結果セットだけが使用されます。
ストアド プロシージャに既定値が指定されたパラメータが含まれている場合、パラメータの値として DEFAULT キーワードを使用して Reporting Services からその値にアクセスできます。クエリ パラメータがレポート パラメータと関連付けられている場合は、レポート パラメータの入力ボックスで DEFAULT キーワードを入力または指定できます。詳細については、「ストアド プロシージャ (データベース エンジン)」を参照してください。
TableDirect の使用
単純に 1 つのテーブルのすべての列を取得すれば、データセットのデータを容易に定義できます。これには、コマンドの種類を [TableDirect] に設定し、ドロップダウン リストからテーブルを選択します。データ ソース上でテーブルにスキーマが割り当てられている場合、テーブル名の一部としてスキーマが指定されていることを確認する必要があります。指定されていない場合は、スキーマを入力できます。
たとえば、[コマンドの種類] が [TableDirect] の場合、次のようなコマンドをクエリ ペインに入力します。これは、AdventureWorks データベースの Person.Contact テーブルからすべてのデータを取得するコマンドです。
Person.Contact
ツール バーの [実行] ボタンをクリックすると、コマンドが実行されて、結果ペインに結果が表示されます。
メモ : |
---|
データ ソースの種類が Microsoft SQL Server の場合、TableDirect はサポートされません。このモードを使用するには、データ ソースの種類として OLE DB を選択し、Microsoft OLE DB Provider for SQL Server を選択する必要があります。 |
クエリ パラメータの使用
クエリにパラメータが使用されている場合、レポート デザイナによって、対応するレポート パラメータがクエリの入力時にレポート定義に自動的に作成されます。レポートが実行されると、レポート パラメータの値がクエリ パラメータに渡されます。たとえば、次の SQL クエリでは、EmpID という名前のレポート パラメータが作成されます。
SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
Person.Contact C ON E.ContactID=C.ContactID
WHERE EmployeeID = @EmpID
レポート パラメータとクエリ パラメータの間のリレーションシップは、[データセット] ダイアログ ボックスの [パラメータ] タブで管理できます。パラメータが使用されているクエリで、レポート パラメータに関連付けられているクエリには、DECLARE ステートメントは必要ありません。
クエリ パラメータからレポート パラメータが自動的に作成されますが、レポート パラメータはレポートのレイアウト表示で別に管理します。
メモ : |
---|
クエリ パラメータの名前を変更したり、クエリ パラメータを削除した場合、そのクエリ パラメータに対応するレポート パラメータは、自動的には変更または削除されません。レポート パラメータは、[レポート パラメータ] ダイアログ ボックスを使用して削除できます。詳細については、「Reporting Services でのパラメータを使用した作業」を参照してください。 |
データセットを作成するには
[データ] タブの [データセット] ボックスの一覧から、[<新しいデータセット>] を選択します。
[データセット] ダイアログ ボックスの [データ ソース] ボックスの一覧から、[新しいデータ ソース] を選択します。
[データ ソース] ダイアログ ボックスの [種類] ボックスの一覧から、[Microsoft SQL Server] を選択します。
SQL Server データ ソースで使用する接続文字列を指定します。
接続情報については、データベース管理者に問い合わせてください。ローカル クライアント上のサンプル AdventureWorks データベースを指定する接続文字列の例を次に示します。Data Source=localhost;Initial Catalog=AdventureWorks
[データ ソース] ダイアログ ボックスの [資格情報] タブでデータベースの資格情報を設定します。
[OK] をクリックします。
詳細については、「データ ソースへの接続」を参照してください。
参照
処理手順
概念
レポートのデータセットの定義
Reporting Services のクエリ デザイン ツール
データ ソースへの接続
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 4 月 14 日 |
|