![]() ![]() ![]() ![]() |
アプリケーションでは、SQL を通じてデータ サービスにアクセスできます。 これは、Crystal Reports、Hyperion、Business Objects など多くのレポート ツールで必要になります。 ただし、SQL を処理する機能は、他のコンテキストでも役立ちます。
たとえば、DbVisualizer などのツールを使用して、データ サービスに対してアドホック SQL クエリを実行できると便利です。 アプリケーション開発者は、XQuery と SQL の両方をサポートするスタンドアロン型の Query Plan Viewer のユーティリティも使用できます。
BEA AquaLogic Data Services Platform は、SQL-92 の拡張機能であるテーブル パラメータをサポートします。
SQL には、AquaLogic Data Services Platform JDBC ドライバを通じてアクセスできます。 このドライバは、JDK 1.4x の java.sql.* インタフェースを実装し、JDBC インタフェースを介した AquaLogic Data Services Platform サーバへアクセスを実現します。 JDBC ドライバを使用して SQL92 SELECT クエリまたはストアド プロシージャを AquaLogic Data Services Platform アプリケーションに対して実行できます。
この章では、SQL を使用してデータ サービスにアクセスする方法および AquaLogic Data Services Platform JDBC ドライバを設定して使用する方法について説明します。 この章の内容は以下のとおりです。
注意 : | データ ソースおよびコンフィグレーション プールに関する情報は、WebLogic の『管理ガイド』を参照してください。 |
注意 : | http://edocs.beasys.co.jp/e-docs/platform/docs81/admin/index.html |
SQL を通じてデータ サービスにアクセスするには、最初にデータ サービス関数を SQL のオブジェクトとして JDBC インタフェースを通じてパブリッシュする必要があります。 SQL オブジェクトには、テーブル、ストアド プロシージャ、関数などがあります。
注意 : | AquaLogic Data Services Platform を通じてパブリッシュされた SQL オブジェクト名にハイフンが含まれる場合、そのオブジェクトを SQL クエリにおいて使用する際に二重引用符で囲む必要があります。 |
SQL オブジェクトとしてデータ サービス関数をパブリッシュするには、以下のタスクを行う必要があります。
新しく作成した SQL オブジェクトは、一度デプロイされると、標準的な JDBC を通じてユーザのアプリケーションで利用できます。
SQL としてデータ サービスをパブリッシュする手法については、『データ サービス開発者ガイド』の「SQLに使用するデータ サービス関数のパブリッシュ」を参照してください。
注意 : | AquaLogic Data Services Platform JDBC ドライバに対するアクセスの詳細と、データ サービス アーティファクトと JDBC の関係については、「AquaLogic Data Services Platform JDBC ドライバについて」を参照してください。 |
ライブラリを通じた AquaLogic Data Services Platform への登録後は、データ サービスを通じて、ユーザのデータベース内の組み込み関数またはカスタム関数を利用できます。 AquaLogic Data Services Platform のデータベース関数の使用方法についての詳細は、『データ サービス開発者ガイド』の「XQuery 関数ライブラリの作成および使用」を参照してください。
この節では、AquaLogic Data Services Platform JDBC ドライバにおける SQL-92 のサポートについて概説します。
AquaLogic Data Services Platform JDBC ドライバにより、SELECT 文に対して SQL-92 のサポートが提供されます。 INSERT、UPDATE、DELETE 文は、サポートされていません。 DDL (Data Definition Language: データ定義言語) 文もサポートされていません。
AquaLogic Data Services Platform JDBC ドライバは、JDK 1.4x で指定される java.sql
パッケージから以下のインタフェースを実装します。
AquaLogic Data Services Platform JDBC ドライバには、以下の制約があります。
SQL 言語機能に適用される他の制限は、以下の表 (表 5-1) に示しています。
テーブル パラメータは、SQL FROM 句にパラメータを追加するための機能を提供し、SQL-92 を拡張します。 たとえば、SQL において、正確な数のパラメータ (強調表示) をクエリにコード化する必要が生じる場合があります。
以下のクエリでは、test.rtlall.CUSTOMER は、顧客テーブル全体を指します。
SELECT cust.CUSTOMER_ID, cust.FIRST_NAME, cust.LAST_NAME
FROM test.rtlall.CUSTOMER cust
where cust.CUSTOMER_ID in (?, ?, ?, ...)
and cust.LAST_NAME in (?, ?, ?, ... )
パラメータが多数関係する場合は、データ エントリが遅くなり、SQL 文の設定が退屈な作業となることがあります。
テーブル パラメータは、これに代わる手段となります。 テーブル パラメータ (強調表示) を使用するクエリを以下に示します。
SELECT cust.CUSTOMER_ID, cust.FIRST_NAME, cust.LAST_NAME
FROM ? as id_cust(id_cust_num), test.rtlall.CUSTOMER as cust ,
? as id_cust(last_name)
WHERE id_cust.id_cust_num = cust.CUSTOMER_ID
and cust.LAST_NAME = id_cust.last_name
テーブル パラメータは、同一のメカニズムによりパラメータとして指定されます。適切なテーブル名の代わりに疑問符 (「?」) が使用されています。
注意 : | 現在の実装においては、単一のテーブル カラムのみをテーブル パラメータとして渡すことができます。 カラムを 1 つ以上指定した場合は、例外が送出されます。 |
シナリオ: データ サービスには、顧客の最近の注文をすべて統合した情報が入っています。 販売マネージャは、欧州諸国の政府関係の顧客すべてに関する統合されたリストを持っています。 目標は、データ サービスを使用して、その特定の顧客の注文情報を取得することです。
上記の例はよくあるシナリオですが、販売責任者の顧客リストおよび注文情報が結合していることが分かります。 販売マネージャの顧客リストが長く、データベースを通じて利用できない状態になっている場合は、テーブル内カラムがあるものとして値のリストを渡すほうが便利です。
顧客リストは、上述の SQL では、単一カラム付きのテーブルとして渡されます。 以下の句
? as id_cust(id_cust_num)
上記の句により、仮想のテーブル値 (id_cust) および仮想のカラム名 (id_cust_num) が用意されます。
エイリアスは必須ではありませんが、一般的には推奨されています。これは、デフォルト パラメータ カラム名が数値のシーケンス (0、1 など) に従っているため、予測できない名前の衝突が発生する場合があるためです。
ワイルドカードが以下のように使用される場合は、デフォルトが適切です。
select * from ?
テーブル パラメータは、AquaLogic Data Services Platform JDBC ドライバの TableParameter クラスを通じてデータ サービスに渡されます。 このクラス (リスト 5-1 にその全体を表示) は、テーブル パラメータ全体と、それが表す行を示します。
public class TableParameter implements Serializable {
/**
* Constructor
*
* @schema the schema for the table
*/
public TableParameter(ValueType[] schema);
/**
* Creates a new a row and adds it to the list of rows in this table
*/
public Row createRow();
/**
* Gets the rows of this table
*/
public List/*Row*/ getRows();
/**
* Gets the schema of this table
*/
public ValueType[] getSchema();
/**
* Represents a row in the table
*/
public class Row implements Serializable {
/**
* Sets a value to a particular column
* @param colIdx the index of the column to set
* @param val the value for the column
* @exception if index is out of bounds
*/
public void setObject(int colIdx,Object val) throws SQLException;
Object getObject(int colIdx);
}
TableParameter クラスを作成するステップを以下に示します。
TableParameter は、他のパラメータと同様に、JDBC の PreparedStatement を通じて渡されます。
たとえば、クエリ付きの PreparedStatement を最初に作成します。
SELECT cust.CUSTOMER_ID, cust.FIRST_NAME, cust.LAST_NAME
FROM ? as id_cust(id_cust_num), test.rtlall.CUSTOMER as cust ,
? as id_cust(last_name)
WHERE id_cust.id_cust_num = cust.CUSTOMER_ID
and cust.LAST_NAME = id_cust.last_name
and cust.ORDER_AMT > ?
Float orderAmt = new Float(75f)
setObject(3,orderAmt)
この操作により、第 3 パラメータ (WHERE 句内のパラメータ) の値を設定します。
setObject(2,y)
setObject(1,z)
テーブル パラメータの値を設定するためです。 「y」値および「z」値は、TableParameter 型であることが必要です。
テーブル パラメータの使用例を以下に概説します。 in-memory リストには、CUST_1、CUST_2 および CUST_3 の 3 種の顧客が入っています。
SELECT cust.cust_num, order.item, order.price
FROM ? as cust(cust_num), Order as order
WHERE cust.cust_num = order.cust_id
サポートされる JDBC コードは、リスト 5-2 リストに示します。
//first create the table parameter
ValueType[] schemaList = new ValueType[1];
schemaList[0] = ValueType.REPEATING_VARCHAR_TYPE;
TableParameter tableParam = new TableParameter(schemaList);
// then create the rows in your virtual table
// (in practice you would read data in from a file
// or some other data stream)
TableParameter.Row row1 = tableParam.createRow();
row1.setObject(1," CUSTOMER _1");
TableParameter.Row row2 = tableParam.createRow();
Row2.setObject(1," CUSTOMER _2");
// 第 2 のテーブル パラメータに対して繰り返す
// (...)
// クエリの実行
PreparedStatement objPreparedStatement = objConnection.prepareStatement(
"SELECT cust.CUSTOMER_ID, cust.FIRST_NAME, cust.LAST_NAME
FROM ? as id_cust(id_cust_num), test.rtlall.CUSTOMER as cust , ? as id_cust(last_name)
WHERE id_cust.id_cust_num = cust.CUSTOMER_ID
and cust.LAST_NAME = id_cust.last_name
and cust.ORDER_AMT > ? ");
// およびテーブル パラメータの設定
objPreparedStatement.setObject(1,tableParam);
objPreparedStatement.setObject(2,tableParam2);
objResultSet = objPreparedStatement.executeQuery();
データ サービス情報に JDBC クライアントからアクセスした場合は、そのデータは XML スキーマのフォーマットから SQL 型にマッピングされます。
xmlns:xs="http://www.w3.org/2001/XMLSchema"
java.sql.Types
SQL Type Mappings にマッピングできる XML 型を 表 5-2 に示します。
AquaLogic Data Services Platform JDBC ドライバにより、JDBC および ODBC のクライアントは、データ サービスから SQL を使用して使用できる情報にアクセスできるようになります。 DbVisualizer、Crystal Reports、Hyperion、Business Objects などのデータベース可視化ツールおよびレポート ツールからのアクセスが JDBC ドライバにより可能になり、AquaLogic Data Services Platform の統合レイヤーの柔軟性が高まります。 AquaLogic Data Services Platform の統合レイヤーは、クライアントに対しては、各データ サービス関数がテーブルを構成するリレーショナル データベースとして表示されます。 内部的には、AquaLogic Data Services Platform は、SQL クエリを XQuery クエリに変換します。
AquaLogic Data Services Platform JDBC ドライバに関連する制約をいくつか以下に示します。
JDBC ドライバから使用するフラット ビューを作成し、非フラット データ サービスを公開することができます。
この節では、SQL 関数を AquaLogic Data Services Platform 関数にマッピングするために使用される SQL Name Mapping テクニックと、Java および非 Java のアプリケーションを使用して JDBC ドライバ接続をコンフィグレーションする手順について説明します。 この章の内容は以下のとおりです。
AquaLogic Data Services Platform JDBC ドライバには、以下の機能があります。
AquaLogic Data Services Platform JDBC ドライバを使用すると、JDBC ドライバ レベルで設定したアクセス権に基づいて SQL を通じてアクセスしたメタデータをコントロールできます。 これにより、認可されたユーザは、アクセスを認可されたテーブルおよびプロシージャのみを見ることができます。 ただし、この機能を使用するには、AquaLogic Data Services Platform のコンソール コンフィグレーションがアクセス制御をチェックするように設定されている必要があります。 詳細は、『管理ガイド』の「Data Services Platform リソースの保護」を参照してください。
AquaLogic Data Services Platform では、データベースから取得したデータをデータ ソースおよび関数として表示します。 以下の表 (表 5-3) に相当する用語を示します。
たとえば、MySchema
のスキーマで関数 getCustomers()
が付いた TestDataServices
および CUSTOMERS.ds
プロジェクトがある場合は、getCustomers
を SQL オブジェクトとして以下のようにマッピングできます。
TestDataServices.MySchema.getCustomer
上記の例では、TestDataServices
はカタログ、MySchema
はスキーマ フォルダ名です。 このマッピングは、SQL オブジェクトに対する AquaLogic Data Services Platform 関数のマッピングに基づいています。 AquaLogic Data Services Platform 関数の SQL オブジェクトとしてのマッピングの詳細は、『データ サービス開発者ガイド』の「SQLに使用するデータ サービス関数のパブリッシュ」を参照してください。
AquaLogic Data Services Platform では、さまざまなレポート ツールを通じて、データ サービスへのアクセスに使用できる多数の関数をサポートしています。 以下のテーブル関数は、以下の型に分けられます。
以下の数値演算関数が用意されています。
|
||
|
||
|
||
|
AquaLogic Data Services Platform JDBC ドライバは、表 5-8 に示すように、標準 JDBC API 検索パターンをサポートします。
default_catalog はカタログ 1 で default_schema はスキーマ 1 と仮定すると、表 5-9 は共通する一致パターンを表します。
AquaLogic Data Services Platform JDBC ドライバは、ldjdbc.jar
という名のアーカイブ ファイルにあり、BEA AquaLogic Data Services Platform をインストールした後に以下のディレクトリで利用できます。
<bea_home>\weblogic81\liquiddata\lib\
AquaLogic Data Services Platform JDBC ドライバをクライアント コンピュータで使用するには、クラスパス、クラス名、および JDBC ドライバ用の URL をコンフィグレーションする必要があります。 クライアント コンピュータでドライバをコンフィグレーションするには、以下の手順に従ってください。
ldjdbc.jar
および weblogic.jar
をクライアント コンピュータにコピーします。ldjdbc.jar
および weblogic.jar
をコンピュータのクラスパスに追加します。 %JAVA_HOME%\jre\bin
をユーザのパスに追加して適切なサポート パスを設定します。com.bea.dsp.jdbc.driver.DSPJDBCDriver
jdbc:dsp@<DSPServerName>:<DSPServerPortNumber>/<DSPApplicationName>]
jdbc:dsp@localhost:7001/RTLApp
jdbc:dsp@<DSPServerName>:<DSPServerPortNumber>/<DSPApplicationName>/<catalogname>/<schemaname>
注意 : | CatalogName および SchemaName を JDBC ドライバの URL に指定しない場合は、すべてのクエリについて 3 部構成の名前を指定する必要があります。 例えば、次のように指定します。 |
select * from <catalogname>.<schemaname>.CUSTOMER
logFile
プロパティを使用してデバッグできます。 デバッグ情報をログするには、以下の JDBC ドライバの URL 構文を使用してください。jdbc:dsp@localhost:7001/test;logFile=c:\output.txt
この例では、ログ ファイルは c:\output.txt
に作成されます。 また、デバッグ プロパティを URL とともに指定するのではなく、個別に指定することもできます。
注意 : | レポート ツールを使用して SQL クエリをビルドする場合、生成される SQL では修飾されていない JDBC 関数名が使用されます。 アプリケーション開発者が XFL データベース関数を呼び出す場合は、デフォルトのカタログおよびスキーマ名は JDBC 接続 URL として定義する必要があります。 また、単一 SQL catalog:schema ペアの場所から使用できる関数を、任意の JDBC 接続により使用することも必要です。 |
注意 : | application 、default_catalog 、または default_schema が接続プロパティおよび URL の双方に表示される場合は、URL が優先されます。 |
プロパティ オブジェクトを使用する JDBC ドライバの接続を以下のようにコンフィグレーションできます。
props.put("user", "weblogic");
props.put("password", " weblogic ");
props.put("application", "RTLApp");
Connection objConnection = DriverManager.getConnection("jdbc:dsp@localhost:7001", props);
注意 : | デフォルトのスキーマおよびカタログ名をプロパティで指定しない場合は、default_catalog および default_schema のプロパティ フィールドで指定できます。 |
または、AquaLogic Data Services Platform のアプリケーション名の RTLApp を以下の抜粋コードのように接続オブジェクト自体に指定することができます。
props.put("user", " weblogic");
props.put("password", " weblogic ");
Connection objConnection = DriverManager.getConnection("jdbc:dsp@localhost:7001/RTLApp",props);
以下のコードのように、JDBC ドライバの接続も、プロパティ オブジェクトを作成せずにコンフィグレーションできます。
Connection objConnection =
DriverManager.getConnection("jdbc:dsp@localhost:7001/RTLApp;logFile=c:\output.txt; ", <username>, <password>);
JDBC または SQL データ ソースとして AquaLogic Data Services Platform にアプリケーションを接続するステップは、JDBC または SQL の任意のデータ ソースに直接接続する場合とほぼ同一です。 データベースの URL では、「dsp」をサブプロトコルとして持つデータベース識別子として AquaLogic Data Services Platform のアプリケーション名を以下の形式で使用します。
jdbc:dsp@<WLServerAddress>:<WLServerPort>/<DSPApplicationName>
jdbc:dsp@localhost:7001/RTLApp
AquaLogic Data Services Platform JDBC ドライバ クラス名を以下に示します。
com.bea.dsp.jdbc.driver.DSPJDBCDriver
注意 : | WebLogic Administration Console を使用して、JDBC 接続プールをコンフィグレーションするには、初期の接続容量を 0 に設定してください。AquaLogic Data Services Platform JDBC ドライバは、接続プールをサポートしないからです。 |
この節では、クライアント アプリケーションにおいてドライバ クラスを使用して接続する方法について説明します。
JDBC クライアント アプリケーションは、任意のデータベースへの接続と同一の方法により、デプロイされた AquaLogic Data Services Platform アプリケーションに接続できます。 AquaLogic Data Services Platform JDBC ドライバをロードし、AquaLogic Data Services Platform に接続します。
Properties props = new Properties();
props.put("user", "weblogic");
props.put("password", "weblogic");
props.put("application", "RTLApp");
// Load the driver
Class.forName("com.bea.dsp.jdbc.driver.DSPJDBCDriver");
//get the connection
Connection con = DriverManager.getConnection("jdbc:dsp@localhost/7001", props);
この節で説明する storedQueryWithParameters
メソッドでは、接続オブジェクト (con
) を使用する preparedStatement インタフェースの使用方法を示します。 これは、java.sql.Connection
インタフェースを通じて取得した WebLogic Server への有効な接続で、これにより AquaLogic Data Services Platform がホストされます。
注意 : | パラメータ化しないクエリの場合も、同様に preparedStatement を作成できます。 また、文も同一の方法で使用できます。 |
このメソッドでは、CUSTOMER
は CUSTOMER.ds
を参照します。
public ResultSet storedQueryWithParameters() throws java.sql.SQLException
{
PreparedStatement preStmt =
con.prepareStatement (
"SELECT * FROM DataServices.MySchema.CUSTOMER WHERE CUSTOMER.LAST_NAME=?");
preStmt.setString(1,"SMITH");
ResultSet res = preStmt.executeQuery();
return res;
}
上記の SELECT クエリでは、DataServices
はカタログ名、MySchema
はスキーマ フォルダ名です。
注意 : | CUSTOMER テーブルを SELECT クエリで使用するには、最初に SQL オブジェクトとしてマッピングする必要があります。 詳細は、「SQL としてのデータ サービス関数のパブリッシュ」を参照してください。 |
デプロイされた AquaLogic Data Services Platform がサーバに接続した後は、パラメータ化されたデータ サービス関数の呼び出しを使用し、データ サービス関数を呼び出してデータを取得できます。
以下のメソッドでは、パラメータ付きの格納されたクエリの呼び出しています (ここで con
は、java.sql.Connection
インタフェースを通じて取得した AquaLogic Data Services Platform サーバへの接続を示す)。 この抜粋コードでは、dtaQuery
という名の格納されたクエリは custid
がパラメータ名、CUSTOMER2
がパラメータ値である場合に実行されます。
public ResultSet storedQueryWithParameters(String paramName)
throws java.sql.SQLException {
//実行するストアド クエリの準備
con.prepareCall("call DataServices.MySchema.getCustomerById(?) ");
call.setString(1, "CUSTOMER2");
ResultSet resultSet = call.executeQuery();
return resultSet;
注意 : | prepareCall メソッドを以下のように使用することもできます。 |
con.prepareCall(" { call DataServices.MySchema.getCustomerById(?)}");
AquaLogic Data Services Platform JDBC ドライバをクライアントの Java アプリケーションで使用することもできます。 これは、AquaLogic Data Services Platform が JDBC または SQL ドライバを通じてアーティファクトを公開する方法を了解するのに適しています。
注意 : | サポートされているレポート アプリケーションおよび接続ソフトの詳細については、『インストール ガイド』の「AquaLogic Data Services Platform インストール準備」の章の「レポーティング アプリケーション用の AquaLogic Data Services Platform JDBC ドライバについて」を参照してください。 |
この節は、DBVisualizer からのドライバへの接続方法について説明します。図 5-1 は、DbVisualizer から見たサンプル アプリケーションです。
DBVisualizer を使用するには、以下の手順に従ってください。
ldjdbc.jar
がユーザの CLASSPATH に存在することを確認します。 ldjdbc.jar
がリストに表示されます。ldjdbc.jar
を選択し、ドライバ マネージャの [Edit] メニューから [Find Drivers] を選択します。 ドライバ マネージャにより、com.bea.dsp.jdbc.driver.DSPJDBCDriver
の JDBC ドライバが検出され、リスト ボックスに表示されます。
ODBC JDBC ブリッジをコンフィグレーションした後は、アプリケーションを使用して AquaLogic Data Services Platform が提示するデータ ソースにアクセスできます。 ユーザが使用する必要があるレポート ツールに AquaLogic Data Services Platform を接続するためです。
注意 : | サポートされているレポート アプリケーションおよび接続ソフトの詳細については、『インストール ガイド』の「AquaLogic Data Services Platform インストール準備」の章の「レポーティング アプリケーション用の AquaLogic Data Services Platform JDBC ドライバについて」を参照してください。 |
ODBC JDBC ブリッジを使用して非 Java アプリケーションから AquaLogic Data Services Platform JDBC ドライバに接続できます。 この節では、OpenLink および EasySoft ODBC JDBC ブリッジをコンフィグレーションして非 Java アプリケーションを AquaLogic Data Services Platform JDBC ドライバに接続する方法について説明します。
注意 : | サポートされているレポート アプリケーションおよび接続ソフトの詳細については、『インストール ガイド』の「AquaLogic Data Services Platform インストール準備」の章の「レポーティング アプリケーション用の AquaLogic Data Services Platform JDBC ドライバについて」を参照してください。 |
Openlink ODBC JDBC ドライバを AquaLogic Data Services Platform JDBC ドライバとのインタフェースに使用し、Crystal Reports 10、Business Objects 6.1、MS Access 2003 などのクライアント アプリケーションが付いた AquaLogic Data Services Platform アプリケーションにクエリを実行できます。
OpenLink ブリッジを使用するには、ブリッジをインストールし、ブリッジを使用するシステム DSN を作成する必要があります。 その 2 つのタスク用の手順を以下に示します。
http://www.openlinksw.com/info/docs/uda51/lite/installation.html
警告 : | Windows のプラットフォームでは、インストール前にユーザの CLASSPATH を保存してください。 そうしないと、インストーラにより上書きされます。 |
ldjdbc.jar
および weblogic.jar
) が CLASSPATH に 入っていることを確認します。 一般的な CLASSPATH は、以下のようになります。D:\lddriver\ldjdbc.jar; D:\bea\weblogic81\server\lib\weblogic.jar;
D:\odbc-odbc\openlink\jdk1.4\opljdbc3.jar; D:\odbc-jdbc\openlink\jdk1.4\megathin3.jar;
jvm.dll
を指定するためにユーザのシステムを更新します。これは、ユーザの %javaroot%\jre\bin\server
ディレクトリにあります。com.bea.dsp.jdbc.driver.DSPJDBCDriver.
jdbc:dsp@<machine_name>:<port>/<app_name>/<catalogname>/<schemaname>
EasySoft の ODBC JDBC Gateway を使用する AquaLogic Data Services Platform JDBC ドライバとアプリケーションにより通信することもできます。 EasySoft ブリッジのインストールおよび使用は、前節で説明した OpenLink ブリッジと同様です。
EasySoft ブリッジの使用には、以下のステップに従ってください。
クラス パスには、ldjdbc.jar
への絶対パスを入力します。
jdbc:dsp@<machine_name>:<port>/<app_name>/<catalogname>/<schemaname>
jdbc:dsp@localhost:7001/DataServices/Evaluation/NewSchema;logFile=c:\jdbc.log
com.bea.dsp.jdbc.driver.DSPJDBCDriver
この節は、以下のレポート ツールをコンフィグレーションして AquaLogic Data Services Platform ODBC JDBC ドライバを使用する方法について説明します。
注意 : | スクロール可能なカーソルが ODBC JDBC ブリッジによって実装されない場合、一部のレポート ツールでは、複数の SQL 文の実行命令が出されて、スクロール可能なカーソルがエミュレートされます。 一部のドライバではスクロール可能なカーソルが実装されないため、レポート ツールにより複数の SQL 文が発行されます。 これは、パフォーマンスに影響します。 |
この節は、AquaLogic Data Services Platform JDBC ドライバに Crystal Reports を接続するステップを解説し、AquaLogic Data Services Platform のインストールにより使用できる標準のコンフィギュレーション ファイルについて説明します。 AquaLogic Data Services Platform とともに Crystal Reports を使用する際の制約についても説明します。 この章の内容は以下のとおりです。
Crystal Reports を AquaLogic Data Services Platform とともに使用する前に、デフォルトの Crystal Reports のコンフィグレーション ファイルである CRConfig.xml
を変更し、Crystal Reports により JDBC を通じてデータ サービスにアクセスできることを確認する必要があります。
サンプルの AquaLogic Data Services Platform の CRConfig.xml
フ ァイルは、AquaLogic Data Services Platform の標準インストールにより、用意されています。 コンフィグレーション ファイルのセクションは、「ALDSP」文字列を含めるために変更する必要があります。 このファイルは、以下の場所にあります。
<weblogic81>/LiquidData/resources/ReportingToolConfigs/CrystalReports
サンプルの CRConfig.xml
で指定されたパスと同一のディレクトリに Crystal Reports がインストールされる場合と、サンプルの CRConfig.xml
で指定されたパスと同一のディレクトリに AquaLogic Data Services Platform がインストールされる場合を除き、サンプルの CRConfig.xml
を直接使用することはできません。 そのため、AquaLogic Data Services Platform とともに使用できるサンプルの CRConfig.xml
ファイルに従って Crystal Reports とともに使用できるデフォルトの CRConfig.xml
ファイルを変更する必要があります。
注意 : | AquaLogic Data Services Platform のサンプル CRConfig.xml ファイルを変更することもできますが、AquaLogic Data Services Platform のサンプル ファイルに基き、デフォルトの Crystal Reports の CRConfig.xml ファイルを変更することをお勧めします。 |
表 5-10は、AquaLogic Data Services Platform JDBC ドライバを使用してデータにアクセスする際に Crystal Reports のコンフィグレーション ファイルへの制約の一部と、コンフィグレーション変更が必要な部分を表しています。
以下の抜粋コードは、DBC ドライバの URL およびユーザ名のコンフィグレーション設定に伴う <JDBC>
要素のサンプルです。
<!-- ALDSP2.5 : 以下の <JDBC コンフィグレーションは ALDSP 特定。 -->
<JDBC>
<CacheRowSetSize>100</CacheRowSetSize>
<!-- ALDSP: <JDBCURL> をユーザの URL に変更してください。 -->
<JDBCURL>jdbc:dsp@localhost:7001/YOUR_APP</JDBCURL>
<JDBCClassName>com.bea.dsp.jdbc.driver.DSPJDBCDriver</JDBCClassName>
<!-- ALDSP:<JDBCUserName>をユーザの URL に変更してください。 -->
<JDBCUserName>ENTER_USER_NAME_HERE</JDBCUserName>
<JNDIURL></JNDIURL>
<JNDIConnectionFactory></JNDIConnectionFactory>
<JNDIInitContext>/</JNDIInitContext>
<JNDIUserName></JNDIUserName>
<GenericJDBCDriver>
<Option>Yes</Option>
<DatabaseStructure>catalogs,schemas,tables</DatabaseStructure>
<StoredProcType>Standard</StoredProcType>
<LogonStyle>Standard</LogonStyle>
</GenericJDBCDriver>
Crystal Reports を使用してデータ サービスにアクセスする前に、以下を考慮する必要があります。
Crystal Reports を JDBC ドライバに接続し、データ サービスにアクセスしてレポートを生成するには、以下の手順を行います。
注意 : | 図 5-3 で示すように、ユーザ ID およびパスワード用に正しいパラメータを指定した後、データベースのドロップ ダウン ボックスは、使用可能なカタログ (AquaLogic Data Services Platform アプリケーション) で実装されます。 |
注意 : | この例では、ユーザ生成コマンドおよび CUSTOMER ビューからカラムを選択します。 |
Business Objects により Universe を作成し、指定した Universe に基づくレポートを生成することができます。 Universe の作成が不要な Business Objects に対してパススルー SQL クエリを実行することもできます。
注意 : | SELECT リストの 4 部の名 (<catalogname>.<scemaname>.<tablename>.<columnname> など) を指定する必要がある場合は、FROM 句を使用するテーブルのエイリアスを定義した後、SELECT リストの 2 つの部分 <tablealias>.<columnname> のみを使用してください。 AquaLogic Data Services Platform JDBC ドライバは、SELECT リスト項目から最後の 2 箇所のみを抽出し、残りを無視します。 |
注意 : | 例えば、次のように指定します。 |
SELECT C.Name FROM DataServices.MySchema.CUSTOMER C
whereDataServices
is the catalog nameMySchema
is the schema nameCUSTOMER
is the table nameName
is the column nameC
is the table alias for CUSTOMER
この節では、Business Objects をコンフィグレーションし、AquaLogic Data Services Platform JDBC ドライバにアクセスする方法について説明します。 この章の内容は以下のとおりです。
標準的な BusinessObjects インストール環境で使用できる BusinessObjects コンフィグレーション ファイルには、odbc.prm
および odbc.sbo
があり、BusinessObjects を使用するデータ サービスにアクセスするために、AquaLogic Data Services Platform とともに利用可能な odbc.prm
および odbc.sbo
コンフィグレーション ファイルに代える必要があります。
BusinessObjects をインストールする時に、これらのファイルが以下の場所にコピーされます。
<Business Objects Home >\BusinessObjects Enterprise 11.5\
win32_x86\dataAccess\connectionServer\odbc
AquaLogic Data Services Platform のインストール環境では、これらのコンフィグレーション ファイルを以下の場所で使用できます。
<weblogic81>/LiquidData/resources/ReportingToolConfigs/BusinessObjects
AquaLogic Data Services Platform をインストールした後、BusinessObjects とともに利用可能な元のコンフィグレーション ファイルを別の場所に保存し、そのファイルを AquaLogic Data Services Platform とともにパッケージ化されたファイルと交換します。
AquaLogic Data Services Platform とともに提供されている BusinessObjects コンフィグレーション ファイルで、コメントを確認する必要があります。 (関連するコメントには、文字列 「ALDSP」 が入っています)。
ヒント : | AquaLogic Data Services Platform とともに BusinessObjects を初めて使用する場合、含まれているコンフィグレーション ファイルを使用し、JDBC を通じたデータ サービスへのユーザのアクセス能力を確認することを推奨します。 |
表 5-11 は、AquaLogic Data Services Platform JDBC ドライバを使用してデータにアクセスする際に BusinessObjects コンフィグレーション ファイルへの制約の一部と、コンフィグレーション変更が必要な部分を表しています。
Business Objects を使用してデータ サービスにアクセスする前に、以下を考慮する必要があります。
com.bea.ld.sql.compiler.ast.SQLTypeCheckingException: Invalid table reference. No such table null.Xtreme.CUSTOMER found.
at
com.bea.ld.sql.compiler.ast.TableRSN.inferSchemaAndCheck(Lcom/bea/ld/
sql/context/SQLContext;Lcom/bea/ld/sql/types/SchemaIndex;)V(TableRSN.java:149)
OpenLink のコンフィグレーションの詳細については、「OpenLink ODBC JDBC ブリッジの使用」を参照してください。
Hyperion により、Interactive Reporting Studio および Production Reporting Studio を使用してインタラクティブおよびプロダクション レポートを生成できます。 この節では、ODBC JDBC ブリッジを使用して AquaLogic Data Services Platform データ ソースにアクセスし、インタラクティブおよびプロダクション レポートを生成する手順について説明します。
Hyperion を使用してデータ サービスにアクセスする前に、以下を考慮する必要があります。
Hyperion Production Reporting Studio を使用して接続を確立し、結果を表示するには、以下の手順に従ってください。
注意 : | Hyperion Production Reporting Suite を使用してレポートを作成するには、AquaLogic Data Services Platform でパブリッシュされるテーブル用に小文字の名を使用する必要があります。 AquaLogic Data Services Platform でテーブルをパブリッシュする方法の詳細については、『データ サービス開発者ガイド』の「SQL で使用するためのデータ サービス関数のパブリッシュ」を参照してください。 |
Interactive Reporting Studio を使用してレポートを作成するには、以下の手順に従ってください。
この節は、ODJB JDBC ブリッジを通じて Microsoft Excel 2003 を AquaLogic Data Services Platform に接続するプロシージャについて説明します。 この章の内容は以下のとおりです。
SQL_DECIMAL
および SQL_NUMERIC
フィールドをマッピングする。 この結果、Double
またはテキスト フィールドなど非厳密 (フローティング ポイント) 数値の Jet データ型へのマッピングが行われる場合があります。 詳細については、以下の Microsoft のサイトを参照してください。
http://support.microsoft.com/kb/214854/en-us
MS Access によるこの暗黙の型変換により、MS Access を使用する AquaLogic Data Services Platform からデータを検索する際にエラーが発生します。
MS Access をブリッジに接続するには、以下の手順に従ってください。
この節は、EasySoft を使用する ODJB JDBC ブリッジを通じて Microsoft Excel 2003 を AquaLogic Data Services Platform に接続するプロシージャについて説明します。
MS Excel を AquaLogic Data Services Platform に接続するには、以下の手順に従います。
生成された SQL 文字列を Excel に渡すときに、Excel がエイリアスの周囲に一重引用符を挿入する場合があり、その結果 AquaLogic Data Services Platform JDBC ドライバから例外が発生することがあります。 以下に例を示します。
SELECT Sum(CREDIT.AMOUNT) AS 'Sum of AMOUNT' FROM Xtreme.CREDIT CREDIT
クエリは、生成後に編集できますが、この問題に対応するためのパッチを Microsoft からインストールすることもできます。 この問題の詳細およびパッチにアクセスする現行の URL を以下に示します。
スタンドアロン型のクエリ プラン ビューア ユーティリティを使用する SQL クエリまたは XQuery の実行用のプランを参照できます。 その機能は、『データ サービス開発者ガイド』の「クエリ プラン関数のテストおよびクエリ プランの表示」の章の「クエリ プラン ビューの使用」に記載されている機能と同様です。
注意 : | このユーティリティを使用するには、コンポーネントの一部をインストールして AquaLogic Data Services Platform 対応のアプリケーションへのログインの認可を受ける必要があります。 |
AquaLogic Data Services Platform を完全にインストールしない場合は、特定のコンポーネント ファイルのセットをインストールしてクエリ プラン ビューア ユーティリティを実行する必要があります。 これらのデフォルトの場所は事前に設定されていますが、簡単に変更できます。
aldspqpv.cmd
(Windows) または aldspqpv.sh
(unix/linux) ファイルを編集してデフォルトの場所の設定を調整できます。
クエリ プラン ビューア ユーティリティのコマンド ライン構文を以下に示します。
Java -classpath [path1/]wlclient.jar;[path2/]ldjdbc.jar;[path3/]aldspqpv.jar
com.bea.dsp.client.ui.shell.Shell
[Server host name][Server port number][Application name]
[User id][Password]
Java -classpath ../../server/lib/wlclient.jar;../lib/ldjdbc.jar;../lib/aldspqpv.jar
com.bea.dsp.client.ui.shell.Shell
localhost 7001 RTLApp weblogic weblogic
ユーザのクラス パスを適切に設定した後、以下のいずれかを使用するコマンド ラインからクエリ プラン ビューア ユーティリティを呼び出すことができます。
Windows のシステムでは、[スタート] メニュー オプションを aldspqpv.cmd
に関連させ、呼び出しコマンドを簡単に関連付けることができます。
クエリ プランを表示するには、AquaLogic Data Services Platform に対応するサーバにログ インする必要があります (図 5-25)。
クエリ プラン ビューア にログインした後は、パスワード以外のすべての情報は、ユーザのシステムに保存されます。
ユーザのサーバにログインした後は、SQL クエリ または XQuery のいずれかの入力を選択してクエリを入力できます。
注意 : | 機能的には、XQuery または SQL クエリの選択は、データ サービス開発環境の Query Plan View でアドホック XQuery またはアド ホック SQL クエリを選択することと同じです。 |
XQuery または SQL クエリの入力および結果のクエリ プランの取り扱いの詳細については、『データ サービス開発者ガイド』の「アドホック クエリの作成」を参照してください。
このユーティリティには、[ファイル] メニューから使用できるオプションがいくつかあります。 表 5-13 では、これらのオプションについて説明します。
![]() ![]() ![]() |