レポートのデータセットの定義 (SQL Server リレーショナル データベース)

更新 : 2006 年 4 月 14 日

Reporting Services には、Microsoft SQL Server リレーショナル データベースからレポート データを取得するためのデータ処理拡張機能が用意されています。このデータ処理拡張機能によって、リレーショナル データ テーブル、ビュー、ストアド プロシージャなど、基になるデータ ソースで定義されたさまざまなデータ構造からデータを取得できます。データ ソースに接続した後、レポート データセットを作成し、データ ソースからどのようなデータを抽出してレポートに使用するかを定義できます。Reporting Services のデータセットには、データ ソース、レポート処理時にデータを取得するためのクエリ、およびフィールドのコレクションが含まれます。データセットの定義は、レポート定義に保存されます。[データセット] ウィンドウに、レポートで使用されている現在のデータセット定義を表示できます。

データセットは、Transact-SQL クエリ テキストまたはストアド プロシージャ呼び出しを使ってクエリを作成するか、テーブルを選択して、すべてのデータをそのテーブルから取得することによって定義します。データセットのフィールド コレクションはクエリに基づいて自動的に作成されます。フィールドを編集したり、集計フィールドを追加したりすることが可能です。集計フィールドには、式を使った値が割り当てられ、その値はクエリの実行時に評価されます。また、フィルタを作成することにより、データ ソースからレポートに取得されるデータを制限することもできます。データセットの定義方法については、「レポート データについて」を参照してください。

リレーショナル データ ソースに使用できるクエリ デザイナとして、汎用クエリ デザイナとグラフィカル クエリ デザイナの 2 つがあります。既定では、汎用クエリ デザイナが開きます。汎用クエリ デザイナは、Transact-SQL テキストを直接入力したり、クエリ テキストを別のソースから貼り付けたりする場合のほか、グラフィカル クエリ デザイナでは作成できない複雑なクエリを入力したり、クエリ ベースの式を入力したりする場合に使用します。グラフィカル クエリ デザイナは、データ ソース上のメタデータを参照しながら、クエリを対話的にデザインする場合や、データ ソース上のストアド プロシージャまたはテーブルを一覧表示する場合に使用します。

レポート デザイナでクエリ デザイナを開くには、[データ] タブを選択します。クエリ デザイナを切り替えるには、[データ ビュー] ツール バーの [汎用クエリ デザイナ] (汎用クエリ デザイナ ボタンのアイコン) 切り替えボタンをクリックします。詳細と例については、「SQL Server クエリ デザイナのユーザー インターフェイス」を参照してください。

クエリを定義した後、TimeoutCaseSensitivity などのプロパティを指定したり、クエリ パラメータに値を渡すレポート パラメータを定義することもできます。クエリを実行すると、データ ソースから抽出された結果セットが表示されます。結果セットの列は、データセットのフィールドにマップされます。レポートを処理すると、データセットのフィールドにバインドされているレポート アイテムに、取得されたデータまたは集計されたデータが表示されます。レポートによって処理されるのは、クエリから取得された最初の結果セットだけです。

リレーショナル データのクエリ デザイナには、次の 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

ツール バーの [実行] ボタンをクリックすると、コマンドが実行されて、結果ペインに結果が表示されます。

ms159260.note(ja-jp,SQL.90).gifメモ :
データ ソースの種類が 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 ステートメントは必要ありません。

クエリ パラメータからレポート パラメータが自動的に作成されますが、レポート パラメータはレポートのレイアウト表示で別に管理します。

ms159260.note(ja-jp,SQL.90).gifメモ :
クエリ パラメータの名前を変更したり、クエリ パラメータを削除した場合、そのクエリ パラメータに対応するレポート パラメータは、自動的には変更または削除されません。レポート パラメータは、[レポート パラメータ] ダイアログ ボックスを使用して削除できます。詳細については、「Reporting Services でのパラメータを使用した作業」を参照してください。

データセットを作成するには

  1. [データ] タブの [データセット] ボックスの一覧から、[<新しいデータセット>] を選択します。

  2. [データセット] ダイアログ ボックスの [データ ソース] ボックスの一覧から、[新しいデータ ソース] を選択します。

  3. [データ ソース] ダイアログ ボックスの [種類] ボックスの一覧から、[Microsoft SQL Server] を選択します。

  4. SQL Server データ ソースで使用する接続文字列を指定します。
    接続情報については、データベース管理者に問い合わせてください。ローカル クライアント上のサンプル AdventureWorks データベースを指定する接続文字列の例を次に示します。

    Data Source=localhost;Initial Catalog=AdventureWorks
    
  5. [データ ソース] ダイアログ ボックスの [資格情報] タブでデータベースの資格情報を設定します。

  6. [OK] をクリックします。

詳細については、「データ ソースへの接続」を参照してください。

参照

処理手順

データセットを作成する方法 (レポート デザイナ)

概念

レポートのデータセットの定義
Reporting Services のクエリ デザイン ツール
データ ソースへの接続

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

新しい内容 :
  • TableDirect の説明を追加しました。
  • 「データセットを作成するには」というサブトピックを追加しました。
変更内容 :