BIRT Report のためのデータセットの作成 (MS SQL Server/JDBC)

この記事では、MS SQL Server 内の Northwind データベースに接続して、 Employees テーブル内の内容を表示するレポートを出力しようとしています。

事前準備なども必要ですので、このページからみた人は「BIRT による簡単なレポートの作成」の記事を順番にみていくとわかりやすいと思います。

それでは、さっそくデータソースの作成から、データセットの作成を続けて行っていきます。

BIRT Report データソースの作成

Eclipse の画面左上の Data Explorer にて、"Data Sources" を右クリックして、 "New Data Source" を選択します。

BIRT Report のためのデータセットの作成

次の画面では "JDBC Data Source" を選び、データソース名として "NorthwindDataSource" としておきます。

BIRT Report のためのデータセットの作成

さて、次の画面でデータベースへの接続情報を入力するのですが、初期状態では MS SQL Server への接続用の JDBC ドライバーは表示されません。

BIRT Report のためのデータセットの作成

そこで "Manage Drivers" をクリックして、ドライバーを追加します。

BIRT Report のためのデータセットの作成

"Manage JDBC Drivers" ウィンドウで "Add" をクリックします。

BIRT Report のためのデータセットの作成

SQL Server データベースと JDBC ドライバーの準備」 で入手した *.jar ファイルを選択します。

BIRT Report のためのデータセットの作成

"OK" をクリックします。

BIRT Report のためのデータセットの作成

これだけで元の画面に戻ると、JDBC Driver for SQL Server が追加されます。

BIRT Report のためのデータセットの作成

データベース接続に必要な情報を入力します。

BIRT Report のためのデータセットの作成

ここでは SQL 認証を利用していますので、integratedSecurity を false に設定して、ユーザー名とパスワードを入力しています。

"Test Connection" をクリックして次が表示されればデータベースとの接続ができています。

BIRT Report のためのデータセットの作成

ちなみに、上記の設定で次のようなエラーが発生する場合があります。

BIRT Report のためのデータセットの作成

There is an error in get connection, The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections ast the port... (参考訳: 接続中にエラーが発生しました。そのホストのポート 1433 への TCP/IP 接続は失敗しました。 "接続拒否: connect. 接続のプロパティが正しいか確認してください。SQL Server のそのインスタンスがそのホストで実行されていて、 そのポートへの接続を受付けることを確認してください...)

これは SQL Server への TCP/IP での接続が許可されていない場合に発生します。これが発生したら、 SQL Server Configuration Manager から TCP/IP を有効にして、SQL Server をリスタートします。

BIRT Report のためのデータセットの作成

実際に 1433 での受付が始まったかどうかは、例えば次のように netstat を使って簡単なチェックを行うこともできます。

>netstat /ano

Active Connections

  Proto  Local Address  Foreign Address    State       PID
  TCP    0.0.0.0:7      0.0.0.0:0          LISTENING   4340
  ...
  TCP    0.0.0.0:443    0.0.0.0:0          LISTENING   1248
  TCP    0.0.0.0:445    0.0.0.0:0          LISTENING   4
  TCP    0.0.0.0:1433   0.0.0.0:0          LISTENING   7844
  TCP    0.0.0.0:3306   0.0.0.0:0          LISTENING   1528
  ...

私が試したときは一旦エラーがでて、TCP/IP を Enable にして、リスタートしたつもりだったのですが、また同じエラーがでました。 ポートをみると 1433 で LISTENING していなかったので、落ち着いてもう一度 SQL Server をリスタートして 1433 が LISTENING になったのをみてから 再度 Test Connection をクリックしたら接続が成功しました。

以上、接続が成功すれば OK です。続いてデータセットを作ります。

BIRT Report データセットの作成

次にレポートにデータを渡すためのデータセットを作ります。

Data Explorer の Data Sets を右クリックして、"New Data Set" を選択します。

BIRT Report のためのデータセットの作成

データソースとして、上で作った NorthwindDataSource を選び、データセット名として dsetEmployees としましょう。

BIRT Report のためのデータセットの作成

次の画面でクエリーを次のように書き、"Finish" をクリックします。

BIRT Report のためのデータセットの作成

次に表示される "Output Column" のダイアログでは、特に何も変更しないのでそのまま "OK" をクリックします。

BIRT Report のためのデータセットの作成

以上を行うと、Data Explorer の Data Set の下に、作成したデータセット "dsetEmployees" が表示されます。