0

社内のすべてのレポートと共有する rptlibrary を作成しています。ライブラリには、作成され、すべてのレポートに共有される oda データソースがあります。ReportEventAdapter.initialize() からデータベースにクエリを実行して、データベースから情報を取得します。次の方法で、ライブラリのデータソースにアクセスできます。

ReportDesignHandle rdh = (ReportDesignHandle)reportContext.getReportRunnable().getDesignHandle();
DesignSessionImpl ds = rdh.getModule().getSession();
String rsf = ds.getResourceFolder( );
LibraryHandle libhan = ds.openLibrary(rsf + "/my.rptlibrary" ).handle( );
DataSourceHandle datasource = libhan.findDataSource("myDS");

しかし、データソースを取得すると、データソースからデータベースへの接続を取得する方法がありません。これを行う唯一の方法は、データソースからのデータを使用してデータベースへの従来の JDBC 接続を作成することですか? Java ハンドラからデータベースに接続するためのより洗練された方法を使用する方法はありますか? プーリングの使用、接続の再利用など.

ありがとう。

4

1 に答える 1

0

レポート スクリプト イベントでデータセット値を反復処理できるため、データセットが JNDI URL で定義されている場合、クエリで接続プールを利用できます。

ただし、かなり複雑です。このトピックには完全な例があります。レポート パラメーターの「getDefaultValueList」イベントで定義されたスクリプトは、レポート内の任意の場所に移動して、グローバル変数を初期化できます。特に、「initialize」イベントまたは「beforeFactory」イベントに移動できます(あなたの場合、「beforeFactory」はおそらくあなたが望むものです)。

于 2014-07-28T08:24:58.507 に答える