クライアント アプリケーション開発者ガイド

     前へ  次へ    新しいウィンドウで目次を開く     
Content starts here

SQL を使用したデータ サービスへのアクセス

この節では、データ サービスにアクセスするために SQL の使用方法、ALDSP JDBC ドライバの設定方法と使用方法について説明します。この章の内容は以下のとおりです。

 


データ サービスへの SQL アクセスについて

Crystal Reports、Business Objects、Microsoft Access、Microsoft Excel など多くのレポート ツールから SQL を使用してデータにアクセスできます。SQL は、その他のコンテキストでも有用です。たとえば、Java アプリケーションでは SQL を使用してデータにアクセスできます。また、Data Tools Platform (DTP) または SQL Explorer などの開発ツールを使用してアド ホック SQL クエリを実行できます。

ALDSP JDBC ドライバにより、JDBC および ODBC のクライアントは、データ サービスから SQL を使用して情報にアクセスすることができます。したがって、ALDSP JDBC ドライバは、多くのデータベース アプリケーションとレポート ツールからのアクセスを有効にして ALDSP 統合レイヤの柔軟性を増加します。

クライアントに対しては、ALDSP 統合レイヤは、テーブルまたはストアド プロシージャから構成される各データ サービスのリレーショナル データベースのようになります。内部的に、ALDSP は、SQL クエリを XQuery に変換します。図 5-1 には、ALDSP JDBC ドライバを使用したデータへの SQL アクセスを示します。

図 5-1 に示すとおり、ソース データは、ALDSP データ サービスを使用して統合し、変換できます。ソース データ自体は、リレーショナル データベース、Web サービスなどの企業規模の異種ソースから取得できます。

その後、SQL クエリを使用してアクセス可能なリレーショナル データソースとしてデータサービス処理を公開できるようになります。これにより、JDBC クライアントは、ALDSP を使用して統合されたデータにアクセスできます。

ALDSP JDBC ドライバは、データ サービスに次の制約を課します。

ALDSP JDBC ドライバの機能

ALDSP JDBC ドライバは、JDK 1.5x の java.sql.* インタフェースを実装し、JDBC インタフェースを介した ALDSP サーバへアクセスを実現します。ドライバには以下の機能があります。

ALDSP JDBC ドライバを使用し、JDBC ドライバ レベルで設定したアクセス権に基づき SQL を通じてアクセスしたメタデータをコントロールできます。このアクセス制御により、ユーザは、アクセスを許可されたテーブルおよびプロシージャのみを見ることができます。

ただし、この機能を使用するには、アクセス制御を確認するために ALDSP コンソールのコンフィグレーションを設定する必要があります。詳細は、『管理ガイド』の「Data Services Platform リソースの保護」を参照してください。

ALDSP および JDBC アーティファクトの内容

ALDSP では、データベースから取得したデータは、データ ソースと処理の形式で表示されます。表 5-1 に相当する用語を示します。

表 5-1 ALDSP および JDBC アーティファクト
ALDSP
JDBC
データスペース プロジェクト
JDBC 接続パラメータ (ドライバ URL)
パラメータありの処理
ストアド プロシージャ
パラメータなしの操作
テーブルまたはストアド プロシージャ

たとえば、getAll() 処理の SQLHowTo プロジェクトおよび EmpInfo.ds データ サービスがある場合、これは、SQL マッパーを使用して、JDBCdemo.empData.empinfo として公開できます。JDBC ドライバでは、empData スキーマおよび JDBCdemo カタログの empinfo というテーブルが表示できるようになります。

 


ALDSP での JDBC および SQL のサポート

この節では、ALDSP JDBC ドライバでの JDBC および SQL のサポートについて説明します。

JDBC サポート

ALDSP JDBC ドライバは、JDK 1.5x に指定したとおり、java.sql パッケージから次のインタフェースを実装します。

  • java.sql.Blob
  • java.sql.CallableStatement
  • java.sql.Connection
  • java.sql.DatabaseMetaData
  • java.sql.ParameterMetaData
  • java.sql.PreparedStatement
  • java.sql.ResultSet
  • java.sql.ResultSetMetaData
  • java.sql.Statement

ALDSP JDBC ドライバは、次のメソッドをサポートします。

表 5-2 ALDSP JDBC ドライバのメソッド
インタフェース
サポート対象のメソッド
 
java.sql.Blob
  • getBinaryStream
  • getBytes
  • length
  • position
  • truncate
java.sql.CallableStatement
  • clearParameters
  • executeQuery
  • setAsciiStream
  • setBigDecimal
  • setBoolean
  • setByte
  • setBytes
  • setCharacterStream
  • setDate
  • setDouble
  • setFloat
  • setInt
  • setLong
  • setNull
  • setObject
  • setShort
  • setString
  • setTime
  • setTimestamp
java.sql.Connection
  • clearWarnings
  • close
  • createStatement
  • getAutoCommit
  • getCatalog
  • getHoldability
  • getLogPrintWriter
  • getMetaData
  • getSchema
  • getTransaction
    Isolation
  • getTypeMap
  • getWarnings
  • isClosed
  • isReadOnly
  • nativeSQL
  • prepareCall
  • prepareStatement
  • setAutoCommit
  • setCatalog
  • setHoldability
  • setReadOnly
java.sql.DatabaseMetaData
  • allProceduresAre
    Callable
  • allTablesAre
    Selectable
  • dataDefinitionCauses
    TransactionCommit
  • dataDefinitionIgnoredInTransactions
  • deletesAreDetected
  • doesMaxRowSizeIncludeBlobs
  • getAttributes
  • getBestRowIdentifier
  • getCatalogs
  • getCatalogSeparator
  • getCatalogTerm
  • getColumnPrivileges
  • getColumns
  • getConnection
  • getCrossReference
  • getDatabaseMajor
    Version
  • getDatabaseMinor
    Version
  • getDatabaseProduct
    Name
  • getDatabaseProduct
    Version
  • getDefault
    Transaction
    Isolation
  • getDriverMajor
    Version
  • getDriverMinor
    Version
  • getDriverName
  • getDriverVersion
  • getExportedKeys
  • getExtraName
    Characters
  • getIdentifierQuote
    String
  • getImportedKeys
  • getIndexInfo
  • getJDBCMajor
    Version
  • getJDBCMinor
    Version
java.sql.DatabaseMetaData
(続き)
  • getMaxBinaryLiteral
    Length
  • getMaxCatalogName
    Length
  • getMaxCharLiteral
    Length
  • getMaxColumnName
    Length
  • getMaxColumnsIn
    GroupBy
  • getMaxColumnsInIndex
  • getMaxColumnsIn
    OrderBy
  • getMaxColumnsInSelect
  • getMaxColumnsInTable
  • getMaxConnections
  • getMaxCursorName
    Length
  • getMaxIndexLength
  • getMaxProcedureName
    Length
  • getMaxRowSize
  • getMaxSchemaName
    Length
  • getMaxStatementLength
  • getMaxStatements
  • getMaxTableNameLength
  • getMaxTablesInSelect
  • getMaxUserNameLength
  • getNumericFunctions
  • getPrimaryKeys
  • getProcedureColumns
  • getProcedures
  • getProcedureTerm
  • getResultSet
    Holdability
  • getSchemas
  • getSchemaTerm
  • getSearchString
    Escape
  • getSQLKeywords
  • getSQLStateType
  • getStringFunctions
  • getSuperTables
  • getSuperTypes
  • getSystemFunctions
  • getTablePrivileges
  • getTables
  • getTableTypes
  • getTimeDateFunctions
  • getTypeInfo
  • getUDTs
  • getURL
  • getUserName
  • getVersionColumns
  • insertsAreDetected
  • isCatalogAtStart
  • isReadOnly
  • locatorsUpdateCopy
  • nullPlusNonNull
    IsNull
  • nullsAreSortedAtEnd
  • nullsAreSortedAt
    Start
  • nullsAreSortedHigh
  • nullsAreSortedLow
  • othersDeletesAre
    Visible
  • othersInsertsAre
    Visible
  • othersUpdatesAre
    Visible
java.sql.DatabaseMetaData
(続き)
  • ownDeletesAreVisible
  • ownInsertsAreVisible
  • ownUpdatesAreVisible
  • storesLowerCase
    Identifiers
  • storesLowerCase
    QuotedIdentifiers
  • storesMixedCase
    Identifiers
  • storesMixedCaseQuotedIdentifiers
  • storesUpperCase
    Identifiers
  • storesUpperCaseQuotedIdentifiers
  • supportsAlterTable
    WithAddColumn
  • supportsAlterTable
    WithDropColumn
  • supportsANSI92Entry
    LevelSQL
  • supportsANSI92FullSQL
  • supportsANSI92
    IntermediateSQL
  • supportsBatchUpdates
  • supportsCatalogsIn
    DataManipulation
  • supportsCatalogsIn
    IndexDefinitions
  • supportsCatalogs
    InPrivilege
    Definitions
  • supportsCatalogsIn
    ProcedureCalls
  • supportsCatalogsIn
    TableDefinitions
  • supportsColumn
    Aliasing
  • supportsConvert
  • supportsCoreSQL
    Grammar
  • supportsCorrelated
    Subqueries
  • supportsData
    DefinitionAndData
    Manipulation
    Transactions
  • supportsData
    Manipulation
    TransactionsOnly
  • supportsDifferent
    TableCorrelation
    Names
  • supportsExpressions
    InOrderBy
  • supportsExtendedSQL
    Grammar
  • supportsFullOuter
    Joins
  • supportsGetGeneratedKeys
  • supportsGroupBy
  • supportsGroupBy
    BeyondSelect
  • supportsGroupBy
    Unrelated
  • supportsIntegrity
    Enhancement
    Facility
  • supportsLikeEscape
    Clause
  • supportsLimited
    OuterJoins
java.sql.DatabaseMetaData
(続き)
  • supportsMinimumSQL
    Grammar
  • supportsMixedCase
    Identifiers
  • supportsMixedCase
    QuotedIdentifiers
  • supportsMultipleOpen
    Results
  • supportsMultiple
    ResultSets
  • supportsMultiple
    Transactions
  • supportsNamed
    Parameters
  • supportsNonNullable
    Columns
  • supportsOpenCursors
    AcrossCommit
  • supportsOpenCursors
    AcrossRollback
  • supportsOpen
    StatementsAcross
    Commit
  • supportsOpen
    StatementsAcross
    Rollback
  • supportsOrderBy
    Unrelated
  • supportsOuterJoins
  • supportsPositioned
    Delete
  • supportsPositioned
    Update
  • supportsResultSet
    Concurrency
  • supportsResultSet
    Holdability
  • supportsResultSet
    Type
  • supportsSavepoints
  • supportsSchemasIn
    DataManipulation
  • supportsSchemasIn
    IndexDefinitions
  • supportsSchemasIn
    Privilege
    Definitions
  • supportsSchemasIn
    ProcedureCalls
  • supportsSchemasIn
    TableDefinitions
  • supportsSelectFor
    Update
  • supportsStatement
    Pooling
  • supportsStored
    Procedures
  • supportsSubqueriesInComparisons
  • supportsSubqueriesInExists
  • supportsSubqueries
    InIns
  • supportsSubqueriesInQuantifieds
  • supportsTable
    CorrelationNames
  • supportsTransaction
    IsolationLevel
  • supports
    Transactions
  • supportsUnion
  • supportsUnionAll
java.sql.DatabaseMetaData
(続き)
  • updatesAreDetected
  • usesLocalFilePer
    Table
  • usesLocalFiles
java.sql.ParameterMetaData
  • close
  • getParameterClassName
  • getParameterCount
  • getParameterMode
  • getParameterType
  • getParameterTypeName
  • getPrecision
  • getScale
  • isNullable
  • isSigned
java.sql.PreparedStatement
  • addBatch
  • clearParameters
  • close
  • execute
  • executeQuery
  • getMetaData
  • getParameterMetaData
  • setAsciiStream
  • setBigDecimal
  • setBlob
  • setBoolean
  • setByte
  • setBytes
  • setCharacterStream
  • setDate
  • setDouble
  • setFloat
  • setInt
  • setLong
  • setNull
  • setObject
  • setShort
  • setString
  • setTime
  • setTimestamp
java.sql.ResultSet
  • clearWarnings
  • close
  • findColumn
  • getAsciiStream
  • getBigDecimal
  • getBlob
  • getBoolean
  • getByte
  • getBytes
  • getCharacterStream
  • getConcurrency
  • getDate
  • getDouble
  • getFetchDirection
  • getFetchSize
  • getFloat
  • getInt
  • getLong
  • getMetaData
  • getObject
  • getRow
  • getShort
  • getStatement
  • getString
java.sql.ResultSet
(続き)
  • getTime
  • getTimestamp
  • getType
  • getWarnings
  • next
  • setFetchDirection
  • setFetchSize
  • setMaxRows
  • wasNull
java.sql.ResultSetMetaData
  • close
  • getCatalogName
  • getColumnClassName
  • getColumnCount
  • getColumnDisplaySize
  • getColumnLabel
  • getColumnName
  • getColumnType
  • getColumnTypeName
  • getPrecision
  • getScale
  • getSchemaName
  • getTableName
  • isAutoIncrement
  • isCaseSensitive
  • isCurrency
  • isDefinitelyWritable
  • isNullable
  • isReadOnly
  • isSearchable
  • isSigned
  • isWritable
java.sql.Statement
  • cancel
  • clearWarnings
  • close
  • execute
  • executeQuery
  • getConnection
  • getFetchDirection
  • getFetchSize
  • getGeneratedKeys
  • getLogPrintWriter
  • getMaxFieldSize
  • getMaxRows
  • getMoreResults
  • getQueryTimeout
  • getResultSet
  • getResultSet
    Concurrency
  • getResultSet
    Holdability
  • getResultSetType
  • getUpdateCount
  • getWarnings
  • setCursorName
  • setEscapeProcessing
  • setFetchDirection
  • setFetchSize
  • setMaxFieldSize
  • setMaxRows
  • setQueryTimeout

SQL サポート

この節では、ALDSP JDBC ドライバの SQL-92 サポートの概要について説明します。次のトピックが含まれます。

サポート対象の SQL 文

ALDSP JDBC ドライバは、SQL-92 SELECT 文をサポートしています。INSERT、UPDATE、DELETE 文は、サポートされていません。また、ドライバは、DDL (Data Definition Language) 文をサポートしていません。

サポート対象の SQL 関数

ALDSP JDBC ドライバは、データへのアクセスおよびデータの処理に使用できる機能をサポートしています。この節では、次のサポート対象の ALDSP SQL-92 クエリ言語の関数について説明します。

数値関数

ALDSP JDBC ドライバは、表 5-3 に示す数値関数をサポートしています。

表 5-3 数値関数
関数
シグネチャ
コメント
ABS
numeric ABS (numeric n)
ABS は、n の絶対値を返す。n が NULL の場合は、戻り値は NULL である。
CEIL
numeric ABS (numeric n)

CEIL は、n 以上の最小の整数値を返す。n が NULL の場合は、戻り値は NULL である。

FLOOR
numeric FLOOR(numeric n)
FLOOR は、n 以下の最大の整数値を返す。n が NULL の場合は、戻り値は NULL である。
ROUND
numeric ROUND (numeric n)
ROUND は、小数第 1 位で四捨五入された n を返す。n が NULL の場合は、戻り値は NULL である。

文字列関数

ALDSP JDBC ドライバは、表 5-4 に示す文字列関数をサポートしています。

表 5-4 文字列関数
関数
シグネチャ
コメント
CONCAT
varchar CONCAT(varchar s1, varchar s2)

CONCAT は、s2 と連結された s1 を返す。任意の引数が NULL の場合は、空文字列に相当すると見なされる。

Left
varchar left (varchar s, numeric n)
Left は、s の左の n 文字数を返す。
LENGTH
numeric LENGTH(varchar s)
LENGTH は、s の長さを戻す。s が NULL の場合は、関数は 0 を返す。
LOWER
varchar LOWER(varchar s)
LOWER は、すべての小文字とともに s を返す。s が NULL の場合は、関数は空文字列を返す。
LPAD
varchar lpad(varchar v, numeric n, varchar p)
LPAD は、左側に追加された無限に繰り返す p の n 文字数と v を返す。
LTRIM
varchar LTRIM(varchar s)
LTRIM は、先頭の空白を s から削除する。s が NULL の場合は、関数は NULL を返す。
Right
varchar right (varchar s, numeric n)
Right は、s の右からの n 文字数を返す。
RPAD
varchar rpad(varchar v, numeric n, varchar p)
RLPAD は、右側に追加された無限に繰り返す p の n 文字数と v を返す。
RTRIM
varchar RTRIM(varchar s)
LTRIM は、末尾の空白を s から削除する。s が NULL の場合は、関数は NULL を戻す。
SUBSTR
varchar SUBSTR(varchar s, numeric start)

引数が 2 つ付いている SUBSTR は、start で指定された位置を含めて s の部分文字列を返す。s の最初の文字は index 1. にある。s が NULL の場合は、関数は空文字列を返す。

TRIM
varchar TRIM(varchar s)
LTRIM は、先頭および末尾の空白を s から削除する。s が NULL の場合は、TRIM は NULL を返す。
UPPER
varchar UPPER(varchar s)
UPPER は、大文字すべてとともに s を戻す。s が NULL の場合は、UPPER は空文字列を返す。

日付関数

ALDSP JDBC ドライバは、表 5-5 に示す日付関数をサポートしています。

表 5-5 日付関数
関数
シグネチャ
コメント
DAYS
numeric DAYS(T value)

DAYS は、value から日数のコンポーネントを返す。T は、日付、タイム スタンプまたは期間である。value が NULL の場合は、結果は NULL である。

HOUR
numeric HOUR(T value)

HOUR は、value から時間のコンポーネントを返す。T は、時刻、タイム スタンプ、または期間のいずれかである。value が NULL の場合は、結果は NULL である。

MINUTE
numeric MINUTE(T value)

MINUTE は、value から分のコンポーネントを返す。T は、時刻、タイム スタンプ、または期間である。value が NULL の場合は、結果は NULL である。

MONTH
numeric MONTH(T value)

MONTH は、value から月のコンポーネントを返す。T は、日付、タイム スタンプ、または期間のいずれかである。value が NULL の場合は、結果は NULL である。

SECOND
numeric SECOND(T value)

SECOND は、value から秒のコンポーネントを返す。T は、時刻、タイム スタンプ、または期間である。value が NULL の場合は、結果は NULL である。

YEAR
numeric YEAR(T value)

YEAR は、value から年のコンポーネントを返す。T は、日付、タイム スタンプ、または期間のいずれかである。value が NULL の場合は、結果は NULL である。

集約関数

ALDSP JDBC ドライバは、表 5-6 に示す集約関数をサポートしています。

表 5-6 集約関数
関数
シグネチャ
コメント
COUNT
numeric COUNT(ROWS r)
COUNT は、r 内の列数を返す。
AVG
T AVG(T r)
AVG は、r 内のすべての値の平均値を返す。T は、数値型または期間型である。
SUM
T SUM(T r)
SUM は、r 内のすべての値の合計を返す。T は、数値型または期間型である。
MAX
T MAX(T r)

MAX は、r 内の他の各値以上の値を r から返す。T は、数値型、varchar 型、日付型、タイム スタンプ型、または期間型である。

MIN
T MIN(T r)

MIN は、r 内の他の各値以下の値を r から返す。T は、数値型、varchar 型、日付型、タイム スタンプ型、または期間型である。

JDBC メタデータ検索パターン

ALDSP JDBC ドライバは、表 5-7 に示すように、標準 JDBC API 検索パターンをサポートします。

表 5-7 JDBC メタデータ検索パターン
パターン
目的
「文字列」
識別された文字列に一致
" "
デフォルトのカタログ/スキーマを使用
"%"
正規表現の * に相当するワイルドカード 
"_"
単一文字に一致、正規表現の . (ピリオド) に相当
null
「%」と同様のワイルドカード

注意 : JDBC メータデータ API の詳細については、次のリンクの Java マニュアルを参照してください。

http://java.sun.com/j2se/1.5.0/docs/api/java/sql/
DatabaseMetaData.html

default_catalog はカタログ 1 で default_schema はスキーマ 1 と仮定すると、表 5-8 は共通する一致パターンを表します。

表 5-8 JDBC ドライバ メタデータ検索パターン
パターン
一致例
「AquaLogic」
識別された文字列、AquaLogic に一致
「abc%d」
一致:
  • abc10d
  • abcd
  • abc_practically anything_d
不一致:
  • abc10e
  • abc10def
abc%d_
一致:
  • abc10d
  • abcd
  • abc_practically anything_d
  • abc10dg
不一致:
  • abc10dgh
  • abc10dgPattern
""
and
null
以下への呼び出し:
DBDatabaseMetadata.getTables("",null,"abc%")
カタログ 1 の abc 以下、すべてのテーブルを返す。

テーブル パラメータのサポート

ALDSP JDBC ドライバは、テーブル パラメータを SQL FROM 句に追加できるようにして標準 SQL-92 パラメータ モデルを拡張します。たとえば、SQL において、パラメータ (強調表示) のリストをクエリに指定する必要が生じる場合があります。

以下のクエリでは、JDBCdemo.empData.empinfo は、顧客テーブル全体です。

SELECT emp.empid, emp.name, emp.salary
FROM JDBCdemo.empData.empinfo emp
WHERE emp.empid in (?, ?, ?, ...)
or emp.name in (?, ?, ?, ...)

パラメータ数が異なる場合、それぞれにクエリを指定する必要があります。テーブル パラメータでは、これに代わる手段として、クエリに値のリスト (リストの長さは可変) を指定できます。テーブル パラメータ (強調表示) を使用するクエリを以下に示します。

SELECT emp.empid, emp.name, emp.salary
FROM JDBCdemo.empData.empinfo emp
WHERE emp.empid in (SELECT * FROM ? as emp(empid))
or emp.name in (SELECT * FROM ? as emp(empname))

テーブル パラメータは、同一のメカニズムによりパラメータとして指定されます。適切なテーブル名の代わりに疑問符 (「?」) が使用されています。

注意 : 単一カラム付きのテーブルのみテーブル パラメータとして渡すことができます。カラムを複数指定した場合は、例外が送出されます。

テーブル パラメータの使用について、「テーブル パラメータの使用」を参照してください。

付加情報および制限事項

ALSDSP JDBC ドライバを使用するとき、各接続は、1 つの ALDSP データスペースを示します。表 5-9 には、SQL 言語機能に適用する ALDSP JDBC ドライバの制限項目を示します。

表 5-9 SQL 言語機能に適用する ALDSP JDBC ドライバの制限項目
機能
コメント
選択されている割り当て
未対応。
SELECT MYCOL = 2
FROM VTABLE
WHERE COL4 IS NULL
set 処理 (UNION、INTERSECTおよびEXCEPT) を伴う
CORRESPONDING BY 構文
set 処理において SQL-92 の指定されたデフォルト カラム順序がサポートされている。
テーブル式 (集合演算子のオペランド) は両方とも同一のリレーショナル スキーマに一致する必要がある。
(SELECT NAME, CITY FROM CUSTOMER1) UNION CORRESPONDING BY (CITY, NAME) (SELECT CITY, NAME FROM CUSTOMER2)
サポートされているクエリは以下のとおり。
(SELECT NAME, CITY FROM CUSTOMER1) UNION (SELECT NAME, CITY FROM CUSTOMER2)

 


SQL を使用したデータ サービスへのアクセスの準備

この節では、データ サービスにアクセスする前に行う必要があるタスクについて説明します。次のトピックを含みます。

データ サービス操作のパブリッシュ

SQL を使用してデータ サービスにアクセスするには、まず、AquaLogic Data Services Platform 対応のプロジェクトのデータ サービス処理を SQL オブジェクトとしてパブリッシュする必要があります。SQL オブジェクトには、テーブル、ストアド プロシージャ、関数などがあります。

注意 : ALDSP を通じてパブリッシュされた SQL オブジェクト名にハイフンが含まれる場合、そのオブジェクトを SQL クエリにおいて使用する際に二重引用符で囲む必要があります。たとえば、SELECT "col-name" FROM "table-name".

データ サービス処理を SQL オブジェクトとしてパブリッシュするには、以下の手順に従います。

  1. 操作を SQL オブジェクトとしてモデル化するスキーマにデータ サービス操作をパブリッシュします。
  2. ALDSP データスペースを構築しデプロイします。

データスペースのデプロイ後、ALSDSP JDBC ドライバを通じて、新たに作成された SQL オブジェクトをデータセうペースに利用できます。

ALDSP JDBC ドライバのコンフィグレーション

ALDSP JDBC ドライバは、ldjdbc.jar ファイルに入っています。このファイルは、BEA AquaLogic Data Services Platform のインストール後、<ALDSP_HOME>/lib ディレクトリに入っています。ALDSP JDBC ドライバをクライアント コンピュータで使用するには、クラスパス、クラス名、および JDBC ドライバ用の URL をコンフィグレーションする必要があります。

注意 : JDBC ドライバをコンフィグレーションするために、JDBC ドライバと DSP 間の接続を有効にするゲートウェイ ソフトウェアが必要です。詳細については、「SQL エクスプローラを使用したデータ サービスへのアクセス」を参照してください。

クライアント コンピュータでドライバをコンフィグレーションするには、以下の手順に従ってください。

  1. ldjdbc.jar および weblogic.jar (それぞれ、<ALDSP_HOME>/lib および <WL_HOME>/server/lib ディレクトリ内) をクライアント コンピュータにコピーします。
  2. ldjdbc.jar および weblogic.jar をクライアント コンピュータのクラスパスに追加します。
  3. %JAVA_HOME%/jre/bin をクライアントのパスに追加して適切なサポート パスを設定します。
  4. JDBC ドライバを設定するには、次の手順に従います。
    1. ドライバのクラス名を以下に設定します。
    2. com.bea.dsp.jdbc.driver.DSPJDBCDriver
    3. ドライバの URL を以下に設定します。
    4. jdbc:dsp@<DSPServerName>:<ALDSPServerPortNumber>/<DataspaceName>

      たとえば、ドライバ URL は以下のとおりです。

      jdbc:dsp@localhost:7001/Test_DataSpace

      以下の構文を使用してドライバに接続しながら、デフォルトのカタログ名およびスキーマ名を URL に設定することもできます。

      	jdbc:dsp@<DSPServerName>:<ALDSPServerPortNumber>/<DataspaceName>/
      <catalogname>/<schemaname>
      注意 : CatalogName および SchemaName を JDBC ドライバの URL に指定しない場合は、すべてのクエリについて 3 部構成の名前を指定する必要があります。例えば、次のように指定します。
      	select * from <catalogname>.<schemaname>.CUSTOMER
    5. また、logFile プロパティを使用して、デバッグを有効にします。デバッグ情報をログするには、以下の JDBC ドライバの URL 構文を使用してください。
    6. jdbc:dsp@localhost:7001/test;logFile=c:\output.txt

      この例では、ログ ファイルは c:\output.txt に作成されます。また、デバッグ プロパティを URL とともに指定するのではなく、個別に指定することもできます。

      注意 : レポート ツールを使用して SQL クエリをビルドする場合、生成される SQL では修飾されていない JDBC 関数名が使用されます。アプリケーション開発者がデータベース関数を呼び出す場合は、デフォルトのカタログおよびスキーマ名は JDBC 接続 URL として定義する必要があります。また、単一 SQL catalog:schema ペアの場所から使用できる関数を、任意の JDBC 接続により使用することも必要です。

      以下は、JDBC 接続のデフォルトのカタログとスキーマを定義した URL の例です。

      jdbc:dsp@localhost:7001/myDataspace/myCatalog/mySchema
      注意 : デフォルトのスキーマおよびカタログ名をプロパティで指定しない場合は、default_catalog および default_schema のプロパティ フィールドで指定できます。
      dataspace, default_catalog または default_schema が接続プロパティおよび URL の双方に表示される場合は、URL が優先されます。
  5. ALDSP データスペース用に接続オブジェクトをコンフィグレーションするために、コンフィグレーション パラメータをプロパティ オブジェクトまたは JDBC URL の一部として指定できます。
  6. 詳細については、「プロパティ オブジェクトを使用する接続のコンフィグレーション」または「JDBC URL における接続のコンフィグレーション」をそれぞれ参照してください。

 


Java アプリケーションからの SQL を使用したデータ サービスへのアクセス

ALDSP JDBC ドライバを通じて、SQL を使用してデータベース サービスから Java アプリケーションの情報にアクセスできます。

Java アプリケーションからデータにアクセスするには、以下の手順に従います。

  1. ALDSP データスペースへの接続を取得する。
  2. 詳細については、「接続の取得」を参照してください。

  3. SQL クエリを指定して JDBC データソースに送信する。
  4. クエリを指定してデータソースに送信するには、PreparedStatement か CallableStatement インタフェースを使用できます。詳細については、「preparedStatement インタフェースの使用」および「CallableStatement インタフェースの使用」をそれぞれ参照してください。

接続の取得

JDBC クライアント アプリケーションをデプロイされた ALDSP データスペースに接続するには、ALDSP JDBC ドライバをロードして、データスペースに接続します。データベースの URL では、「dsp」をサブプロトコルとして持つデータベース識別子として ALDSP データスペース名を以下の形式で使用します。

jdbc:dsp@<WLServerAddress>:<WLServerPort>/<DataspaceName>
(/default catalog/default schema;
param(=value1; param2=value2;)?

次に例を示します。

jdbc:dsp@localhost:7001/Test_DataSpace

ALDSP JDBC ドライバ クラス名は以下のとおりです。

com.bea.dsp.jdbc.driver.DSPJDBCDriver 
プロパティ オブジェクトを使用する接続のコンフィグレーション

ALDSP データスペースに接続するには、次のようにプロパティオブジェクトを使用します。

Properties props = new Properties();
props.put("user", "weblogic");
props.put("password", "weblogic");
props.put("application", "TestProjectDataSpace");

// ドライバをロードします。
Class.forName("com.bea.dsp.jdbc.driver.DSPJDBCDriver");

// 接続を取得します。
Connection con = DriverManager.getConnection("jdbc:dsp@localhost:7001",
props);

または、ALDSP データスペース名、TestProjectDataSpace を以下の文のように接続オブジェクト自体に指定することができます。

Properties props = new Properties();
props.put("user", "weblogic");
props.put("password", "weblogic");

// ドライバをロードします。
Class.forName("com.bea.dsp.jdbc.driver.DSPJDBCDriver");

// 接続を取得します。
Connection objConnection = DriverManager.getConnection(
"jdbc:dsp@localhost:7001/TestProjectDataSpace",props);
JDBC URL における接続のコンフィグレーション

以下の文のように、JDBC ドライバの接続も、プロパティ オブジェクトを作成せずにコンフィグレーションできます。

// ドライバをロードします。
Class.forName("com.bea.dsp.jdbc.driver.DSPJDBCDriver");

// 接続を取得します。
Connection objConnection = DriverManager.getConnection(
"jdbc:dsp@localhost:7001/TestProjectDataSpace;logFile=
c:\output.txt; ", <username>, <password>);

PreparedStatement インタフェースの使用

preparedQueryWithParameters メソッドを使用すると、以前に取得した接続オブジェクト (conn) を使用して、クエリを JDBC データソースに指定できます。接続オブジェクトは、ALDSP をホストする WebLogic Server への java.sql.Connection インタフェースを通じて取得されます。

注意 : パラメータ化しないクエリの場合も、同様に preparedStatement を作成できます。statement は、同じ方法で使用されます。

このクエリでは、SQLHowTo プロジェクトの EmpInfo.ds データサービス内の getAll() データサービス関数は、JDBCdemo.empData.empinfo への SQL マッパーを使用してマッピングされます。

public ResultSet preparedQueryWithParameters(Connection conn) throws
java.sql.SQLException {
PreparedStatement ps = conn.prepareStatement("SELECT *
FROM JDBCdemo.empData.empinfo emp WHERE emp.salary >= ?");
ps.setInt(1,275000);
ResultSet rs = ps.executeQuery();
return rs;
}

SELECT クエリでは、JDBCdemo は、カタログ名、empData は、スキーマ名、および empinfo は、テーブル名です。

注意 : データ サービス操作の SQL オブジェクトへのマッピングの詳細については、「データ サービス操作のパブリッシュ」を参照してください。

CallableStatement インタフェースの使用

デプロイされた ALDSP がサーバに接続した後は、パラメータ化されたデータ サービス関数の呼び出しを使用し、データ サービス関数を呼び出してデータを取得できます。

以下の例では、(java.sql.Connection インタフェースを通じて取得した ALDSP サーバへの接続が conn である) パラメータ付きの格納されたクエリの呼び出しを示します。文では、getBySalary というストアと クエリは、275000 値付きパラメータを渡して呼び出されます。

public ResultSet storedQueryWithParameters(Connection conn) throws
java.sql.SQLException {
CallableStatement ps =
conn.prepareCall("call JDBCdemo.empData.getBySalary(?)");
ps.setInt(1,275000);
ResultSet rs = ps.executeQuery();
return rs;
}
注意 : prepareCall メソッドを以下のように使用することもできます。
conn.prepareCall("{call JDBCdemo.empData.getBySalary(?)}");

 


高度な機能

この節では、ALDSP JDBC ドライバの高度な機能と使用について説明し、次のトピックを含みます。

テーブル パラメータの使用

この節では、ALDSP JDBC ドライバを使用して、データ サービスにテーブル パラメータの渡し方法について説明します。

テーブル パラメータの使用例

データ サービスには、すべての従業員の統合された連絡情報が入っているケースを考慮します。マネージャは、欧州諸国の政府関係の顧客すべてに関する統合されたリストを持っています。データ サービスを使用して、その特定の顧客の連絡情報を取得することが目的です。

シナリオは、マネージャの従業員のリストと連絡情報を結語する必要があるのです。マネージャの従業員リストが長く、データベースを通じて利用できない状態になっている場合は、テーブル内カラムがあるものとして値のリストを渡すほうが便利です。

従業員リストは、上述の SQL では、単一カラム付きのテーブルとして渡されます。以下の句

? as emp(empid)

により、仮想のテーブル値 (emp) および仮想のカラム名 (empid) が用意されています。

注意 : 定義されたテーブル名/カラム名が定義されていなく、テーブル名/カラム名の予期しない衝突がある可能性があるので、すべてのテーブル パラメータのエリアスを割り当てる必要があります。

JDBC を使用するテーブル パラメータの設定

ALDSP JDBC ドライバは、その TableParameterdriver クラスを通じてデータ サービスにテーブル パラメータを渡します。このクラス (コード リスト 5-1 にその全体を表示) は、テーブル パラメータ全体と、それが表す行を示します。

コード リスト 5-1 テーブル パラメータ インタフェース
public class TableParameter implements Serializable 
/**
* コンストラクタ
*
* @schema テーブル パラメータのスキーマ
*/
public TableParameter(ValueType[] schema);

/**
* 新しい行を作成し、テーブル行のリストに追加します。
* table parameter
*/
public Row createRow();
/**
* このテーブル パラメータの行を取得します。
*/
public List/*Row*/ getRows();
/**
* このテーブル パラメータのスキーマを取得します。
*/

public ValueType[] getSchema();
/**
* テーブル パラメータの行を表します。
*/
public class Row implements Serializable {
/**
* 指定したカラムに値を設定します。
* @param colIdx the index of the column to set, always 1
* @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 インスタンスの作成とそのインスタンスにデータを入力する方法を示します。

  1. TableParameter をユーザのテーブルのスキーマとともにインスタンス化します。
  2. 注意 : テーブル パラメータに対して、1 つのカラムのみが現在サポートされています。
  3. createRow( ) メソッドを TableParameter 上に呼び出し、そのテーブル内のタプルを表示する新しい Row オブジェクトを作成します。
  4. カラムを行オブジェクトに設定するには、setObject(1,val) を呼び出します。
  5. createRow( ) を再度呼び出し、テーブルに必要な数の行を作成します。
JDBC の用途

インタフェースを使用して、 JDBC を通じて、任意の他のパラメータと同じ様にテーブルパラメータを渡すことができます。

インタフェースを使用して、テーブル パラメータを渡すには、以下の手順に従います。

  1. 以下に示すように、クエリ付きの PreparedStatement を作成します。
  2. PreparedStatement ps = c.prepareStatement("SELECT * " +
       "FROM ? as EMP(empid), JDBCdemo.empData.contact CONTACT " +
       "WHERE CONTACT.empid = EMP.empid AND CONTACT.zip=?");
  3. 以下に示すように、PreparedStatement 上の普通のパラメータの値を設定します。
  4. ps.setObject(2,"98765");
  5. 以下に示すように、指定した形式のテーブル パラメータを作成します。
  6. ValueType[] tableType = new ValueType[1];
    tableType[0] = ValueType.REPEATING_INTEGER_TYPE;
    TableParameter p = new TableParameter(tableType);
  7. 以下に示すように、ファイルまたは他の入力ストリームから行を読み込み、テーブル パラメータを入力します。
  8. String empidlist = FileUtils.slurpFile("empidlist.txt");
    StringTokenizer empids = new StringTokenizer(empidlist,"\n");
    while(empids.hasMoreTokens()) {
       TableParameter.Row r = p.createRow();
       r.setObject(1,new Integer(empids.nextToken()));
    }
    ps.setObject(1,p);
  9. 以下の文に示すように、テーブル パラメータを準備ステートメントのプロパティとして設定します。
  10. ps.setObject(1,p);
テーブル パラメータの例

テーブル パラメータの使用例を以下に概説します。サポートされる JDBC コードは、コード リスト 5-2 リストに示します。

コード リスト 5-2 テーブル パラメータをサポートされる JDBC コードの例 
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties;
import java.util.StringTokenizer;

import com.bea.ld.sql.types.ValueType;
import com.bea.ld.sql.data.TableParameter;

import weblogic.xml.query.util.FileUtils;

public class TableParameterTest {

/**
* ALDSP JDBC ドライバに接続して、それを返します。
*/
protected static Connection connect() throws Exception {
// JDBC ドライバを探します。
Class.forName("com.bea.dsp.jdbc.driver.DSPJDBCDriver");
Driver driver =
DriverManager.getDriver("jdbc:dsp@localhost:7001");
if(driver == null)
throw new IllegalStateException("Unable to find driver.");

//ドライバへの接続プロパティを設定します。
Properties props = new Properties();
props.setProperty("user", "weblogic");
props.setProperty("password", "weblogic");
props.setProperty("application", "SQLHowTo");
		// 上記のプロパティのセットを使用してドライバに接続しようとします。 
Connection c =
driver.connect("jdbc:dsp@localhost:7001", props);
if(c == null)
throw new IllegalStateException("Unable to establish a
connection.");
return c;
}

/**
* システム アウトに結果のセットを印刷します。
* @param rs 印刷する結果のセット
*/
protected static void printResultSet(ResultSet rs)
throws Exception{
while(rs.next()) {
for(int i = 1; i < rs.getMetaData().getColumnCount()+1; i++) {
rs.getObject(i);
System.err.print(rs.getObject(i) + " ");
}
System.err.println();
}
rs.close();
}

public static void main(String args[]) throws Exception {
Connection c = connect();

// クエリを作成します。
PreparedStatement ps = c.prepareStatement("SELECT * " +
"FROM ? as EMP(empid), JDBCdemo.empData.contact CONTACT " +
"WHERE CONTACT.empid = EMP.empid AND CONTACT.zip=?");

// 正常なパラメータを作成します。
ps.setObject(2,"98765");

// テーブル パラメータを作成します。
ValueType[] tableType = new ValueType[1];
tableType[0] = ValueType.REPEATING_INTEGER_TYPE;
TableParameter p = new TableParameter(tableType);

// ファイルの値からテーブル パラメータの行数を作成します。
String empidlist = FileUtils.slurpFile("empidlist.txt");
StringTokenizer empids = new StringTokenizer(empidlist,"\n");
while(empids.hasMoreTokens()) {
TableParameter.Row r = p.createRow();
r.setObject(1,new Integer(empids.nextToken()));
}
ps.setObject(1,p);
// クエリを実行し、結果を印刷します。
ResultSet rs = ps.executeQuery();
printResultSet(rs);
}
}
テーブル パラメータの ValueTypes

表 5-10 には、ALDSP JJDBC ドライバではサポートされているテーブル パラメータ ValueTypes を示します。

表 5-10 TableParameter ValueTypes
型名
型の値
Java 型
ValueType.REPEATING_SMALLINT
16 ビッド符号付き整数
Short
ValueType.REPEATING_INTEGER
32 ビッド符号付き整数
Integer
ValueType.REPEATING_BIGINT
64 ビッド符号付き整数
Long
ValueType.REPEATING_REAL
32 ビット浮動小数点
Float
ValueType.REPEATING_DOUBLE
64 ビット浮動小数点
Double
ValueType.REPEATING_DECIMAL
decimal
BigDecimal
ValueType.REPEATING_VARCHAR
string
String
ValueType.REPEATING_DATE
date
java.sql.Date
ValueType.REPEATING_TIME
time
java.sql.Time
ValueType.REPEATING_TIMESTAMP
datetime
java.sql.Timestamp
ValueType.REPEATING_BLOB
バイト配列
char[]
ValueType.REPEATING_BOOLEAN
Boolean
Boolean
ValueType.REPEATING_YMINTERVAL
year month interval
weblogic.xml.query.datetime.YearMonthDuration
ValueType.REPEATING_DTINTERVAL
day time interval
weblogic.xml.query.datetime.DayTimeDuration
ValueType.REPEATING_INTERVAL
year month & day time interval の両方
weblogic.xml.query.datetime.Duration

JDBC を使用したカスタム データベース関数へのアクセス

複数のリレーショナル データベース管理システムでは、SQL 文に直接埋め込みできる PL/SQL など他の言語を使用して定義されたユーザ定義、カスタム関数で組み込まれた標準 SQL 関数を拡張する方法があります。

これらの組み込まれた関数またはカスタム関数をライブラリを通じて ALDSP に登録すると、データ サービスによってデータベースに利用できるようになります。関数を登録された後、ALDSP JDBC ドライバに送信する SQL 文に使用できます。以下の例では、カスタム関数、myLower() の SELECT 文への使用を示します。

select * from CUSTOMER where ?= myLower( LAST_NAME )

ALDSP では、データベース固有またはユーザ定義関数を利用できるようにするには、以下の条件に満たしている必要があります。

 


SQL ベースのアプリケーションを使用したデータ サービスへのアクセス

SQL ベースのアプリケーションおよび ODBC-JDBC ブリッジを通じて ALDSP JDBC ドライバに接続アプリケーションを使用してデータ サービスにアクセスできます。この節では、データ サービスにアクセスするための SQL および ODBC ベースのアプリケーションのコンフィグレーション方法について説明します。

注意 : ALDSP JDBC ドライバは、Eclipse Data Tools Platform (DTP) プラグインでも使用できます。DTP を使用するには、次のリンクの DTP ソフトウェアをダウンロードします。
注意 : http://wiki.eclipse.org/index.php/Getting_Started_with_DTP

SQL エクスプローラを使用したデータ サービスへのアクセス

ALDSP JDBC ドライバを Eclipse SQL エクスプローラで使用すると、データ サービスにアクセスできます。この節では、ALDSP JDBC ドライバを使用するための SQL エクスプローラの使用方法および接続設定の指定方法について説明します。この節では、Eclipse で web サーバとデータスペースがすでに定義されていることを前提としています。

注意 : SQL エクスプローラは、ストアド プロシージャをサポートしていないので、ALDSP JDBC ドライバを通じてストアド プロシージャとして公開されたデータ サービスは SQL エクスプローラで表示されません。詳細については、次の場所にある Eclipse SQL エクスプローラの Web サイトを参照してください。

http://eclipsesql.sourceforge.net

SQL エクスプローラを使用するには、以下の手順に従ってください。

  1. 次のリンクから SQL エクスプローラ ソフトウェアをダウンロードします。
  2. 		
    http://sourceforge.net/projects/eclipsesql
  3. SQL エクスプローラの zip ファイルのダウンロード後、Features および Plug-Ins という 2 つのフォルダを抽出します。
  4. SQL エクスプローラ ファイルを Eclipse Features フォルダにある Features フォルダにコピーします。
  5. SQL エクスプローラ ファイルを Eclipse Plug-ins フォルダにある Plug-ins フォルダにコピーします。
  6. AquaLogic から Eclipse を起動します。Eclipse 内で web サーバを起動し、データスペース (プロジェクト) を開きます。
  7. [ウィンドウ | プレフランス] を選択し、左側の SQL エクスプローラを展開して、JDBC ドライバを選択します。[追加] をクリックし、次のように、ドライバ名、URL およびクラス名を入力します。
    • JDBC ドライバの名前として、aldsp_jdbc_driver を入力します。
    • サンプルの URL を以下に設定します。
    • jdbc:dsp@<DSPServerName>:<DSPServerPortNumber>/<DSPDataspaceName>
      図 5-2 新しいドライバの作成ダイアログ
      データ サービス接続への SQL アクセス<br />
<img src=" id="wp1111802"" id="wp1108829"" id="wp1108904"" id="wp1126222"" id="wp1129857"
      " id="wp1111802"
  8. [Extra Class Path] タブをクリックし、[追加] をクリックします。次のように、2 つの JAR ファイルのパスを入力します。
    • <ALDSP_HOME>/weblogic92/aldsp_3.0/lib/ldjdbc.jar
    • <ALDSP_HOME>/weblogic92/server/lib/weblogic.jar
    • <ALDSP_HOME> は、ALDSP インストールのホーム ディレクトリを示します。[OK] をクリックします。

  9. ドライバのクラス名を以下に設定します。
  10. com.bea.dsp.jdbc.driver.DSPJDBCDriver

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

  11. SQL Explorer perspective を開くには、[Perspective | その他 | SQL エクスプローラ] を選択します。[OK] をクリックします。
  12. 新しい接続を作成するには、接続の下の最も左側にあるアイコンをクリックします。新しい接続の名前を入力し、ドロップ ダウンリストから ALDSP JDBC ドライバを選択します。JDBC ドライバの URL を入力し、ユーザ名およびパスワードを入力して、[OK] をクリックします。
  13. 図 5-3 新しい接続プロファイルダイアログ
    新しいドライバの作成ダイアログ<br />
<img src=" id="wp1111802"/>" id="wp1108829"" id="wp1108904"" id="wp1126222"" id="wp1129857"
    " id="wp1111802"
    " id="wp1108829"
  14. JDBC ドライバへの接続プロファイルが正しいかどうかを確認するには、新しい JDBC ドライバ接続を右クリックし、[編集] をクリックします。
  15. JDBC ドライバ接続を右クリックし、[接続] を選択します。表示される接続ダイアログの接続プロファイルが正しいかどうかを確認して、[OK] をクリックします。
  16. 図 5-4 接続ダイアログ
    新しい接続プロファイルの作成ダイアログ
<img src=" id="wp1111802"" id="wp1108829"" id="wp1108904"" id="wp1126222"" id="wp1129857"
    " id="wp1111802"
    " id="wp1108829"
    " id="wp1108904"

    データベース構成およびデータベース詳細のウィンドウでデータが表示されます。

  17. JDBC ドライバ ウィンドウは開始されない場合、[ウィンドウ|ビューの表示|その他| SQL エクスプローラ データベース構成|OK] をクリックすると、クライアントのデータが表示されます。
  18. 例外のメッセージが表示される場合、次のように、カタログ名とスキーマ名を JDBC 接続 URL に追加します。
  19. 		jdbc:dsp@<DSPServerName>:<DSPServerPortNumber>/<DSPDataspaceName>
    /<Your_CatalogName>/<Your_SchemaName>
    図 5-5 接続プロファイルの変更ダイアログ
    接続ダイアログ Dialog<br />
<img src=" id="wp1111802"/>" id="wp1108829"" id="wp1108904"" id="wp1126222"" id="wp1129857"
    " id="wp1111802"
    " id="wp1108829"
    " id="wp1108904"
    " id="wp1126222"

OpenLink ODBC-JDBC ブリッジを使用した ALDSP クライアントへの接続

ODBC JDBC ブリッジを使用して非 Java アプリケーションから ALDSP JDBC ドライバに接続できます。この節では、ALDSP JDBC ドライバに接続するための OpenLink ODBC-JDBC ブリッジのコンフィグレーション方法について説明します。

Openlink ODBC-JDBC ドライバを使用して ALDSP JDBC ドライバとのインタフェースをとることで、ALDSP データスペースと Crystal Reports、Business Objects XI、Microsoft Access 2003、Microsoft Excel 2003 などのクライアント アプリケーションとの間でのクエリが可能になります。

OpenLink ブリッジを使用するには、ブリッジをインストールし、ブリッジを使用するシステム DSN を作成する必要があります。その 2 つのタスク用の手順を以下に示します。

  1. OpenLink ODBC JDBC ブリッジをインストールします (呼び出し先の ODBC JDBC Lite)。
  2. OpenLink ODBC-JDBC-Lite のインストールについては、OpenLink Software download ページの Single-Tier (Lite Edition) ODBC to JDBC Bridge Driver (Release 6.0) for use on Windows systems を参照してください。ページにアクセスするには、次のリンクをクリックします。

    http://download.openlinksw.com/download/login.vsp?pform=2&pfam=1&pcat=1&prod=odbc-jdbc-bridge-st&os=i686-generic-win-32&os2=i686-generic-win-32&release-dbms=6.0-jdbc

    警告 : Windows プラットフォームでは、インストール前にユーザの CLASSPATH の値を保存してください。
  3. システム DSN を作成し、それを ALDSP のデータスペースにコンフィグレーションします。ODBC JDBC Lite に必要な以下の jar (ldjdbc.jar および weblogic.jar) が CLASSPATH に 入っていることを確認します。一般的な CLASSPATH は、以下のようになります。
  4. <ALDSP_HOME>/lib/ldjdbc.jar;
    <WL_HOME>/server/lib/weblogic.jar;
  5. <ALDSP_HOME>/%javaroot%/jre/bin/server ディレクトリに必要な jvm.dll が含まれるようにシステム パスを更新します。
注意 : ファイル名 jvm.dll をシステム パスに含めないでください。
  1. [コントロール パネル| 管理ツール| データ ソース (ODBC)] を起動します。ODBC データ ソース管理ウィンドウが表示されます。
  2. [System DSN] タブをクリックした後、[追加] をクリックすします。
  3. JDK 1.5 (6.0) 用に [JDBC Lite] を選択し、[終了] をクリックします。
  4. DSN 名として、openlink-aldsp を指定します。
  5. [次へ] をクリックします。次の画面で、JDBC ドライバ フィールドの後に以下を入力してください。
  6. com.bea.dsp.jdbc.driver.DSPJDBCDriver.
  7. URL 文字列フィールドに以下を入力します。
  8. jdbc:dsp@<machine_name>:<port>/<dataspace_name>/<catalog_name>/
    <schema_name>
  9. [設定がすべて正しいことを確認するには、すぐに接続] チェックボックスを選択します。ログイン ID およびパスワードを入力し、ALDSP WebLogic Server に接続して、[次へ] をクリックします。
  10. 追加のパラメータを選択し、[次へ] をクリックします。
  11. [次へ] をクリックし、 接続互換パラメータを指定します。
  12. [次へ] をクリックした後、[データ ソースのテスト] をクリックします。設定が正常に完了したかどうかを確認します。
  13. [完了] をクリックします。

レポート ツールで OpenLink の使用

この節では、ALDSP ODBC-JDBC ドライバを使用して以下のレポート ツールのコンフィグレーション方法について説明します。

注意 : スクロール可能なカーソルが ODBC JDBC ブリッジによって実装されない場合、一部のレポート ツールでは、複数の SQL 文の実行命令が出されて、スクロール可能なカーソルがエミュレートされます。一部のドライバではスクロール可能なカーソルが実装されないため、レポート ツールにより複数の SQL 文が発行されます。これにより、パフォーマンスに影響する場合があります。

Crystal Reports XI

この節では、ALDSP JDBC ドライバに Crystal Reports を接続するステップを解説し、ALDSP のインストールにより使用できる標準のコンフィグレーション ファイルについて説明します。ALDSP とともに Crystal Reports を使用する際の制約についても説明します。

Crystal Reports のコンフィグレーション

Crystal Reports を ALDSP とともに使用する前に、デフォルトの Crystal Reports のコンフィグレーション ファイルである CRConfig.xml を変更し、Crystal Reports により JDBC を通じてデータ サービスにアクセスできることを確認する必要があります。コンフィグレーション ファイルは、次のディレクトリに格納されています。

<Drive>\Program Files\Business Objects\Common\3.5\java

変更されたサンプルの CRConfig.xml ファイルと関連付けられる CR_Readme.txt ファイルは以下の場所に入っています。

<ALDSP_HOME>/samples/ReportingTools/config/Crystal Reports

CR_Readme.txt ファイルには、既存の Crystal Reports のインストールに DSP 固有のルールの適用方法および CRConfig.xml ファイルの変更方法があります。

制限事項

Crystal Reports を使用してデータ サービスにアクセスする前に、以下を考慮する必要があります。

JDBC を使用する Crystal Reports への接続

この節では、以下が正常に完了していることを前提としています。

http://diamond.businessobjects.com/node/432

Crystal Reports を JDBC ドライバに接続し、データにアクセスしてレポートを生成するには、以下の手順に従います。

  1. Eclipse の Crystal Reports perspective を使用して、データベース エクスプローラ ウィンドウのメニューバーの新規接続アイコンをクリックし、新規接続を作成します。
  2. Crystal Reports の JDBC インタフェース用の接続パラメータを指定します。新規接続ウィンドウが表示されます。
  3. デフォルトの命名規約を使用する場合、接続の識別の下にあるチェック ボックスを選択します。または、チェック ボックスとそれに関するフィールドを空白のままにします。
  4. JDBC ドライバの次のドロップ ダウン リストからドライバを選択するか、左側のドロップ ダウン ウィンドウからデータベース マネージャを選択します。
  5. JDBC ドライバ クラス名、クラスの場所および JDBC ドライバの URL を入力します。
  6. ユーザ情報の下にユーザ ID とパスワードを入力し、[接続のテスト] をクリックします。正常に接続した場合、[次へ] をクリックします。[フィルタ] ダイアログが表示されます。
  7. 述語を選択し、値を入力します。また、項目の選択を含めるか除外するかを示します。
  8. フィルタしない場合、[フィルタを無効にする] チェック ボックスを選択して、[完了] をクリックします。
  9. データベース エクスプローラにデータが表示されます。

Business Objects XI-Release 2 (ODBC)

Business Objects により Universe を作成し、指定した Universe に基づくレポートを生成することができます。Universe の作成が不要な Business Objects に対してパススルー SQL クエリを実行することもできます。

この節では、Business Objects をコンフィグレーションし、ALDSP JDBC ドライバにアクセスする方法について説明します。この節の内容は以下のとおりです。

Business Objects のコンフィグレーション

2 つの Business Objects コンフィグレーション ファイル、odbc.prm および odbc.sbo は、Business Objects の標準インストールにより、用意されています。

Business Objects をインストールする時に、これらのファイルが以下の場所にコピーされます。

	<Business_Objects_Home>/BusinessObjects Enterprise 11.5/
win32_x86/dataAccess/connectionServer/odbc

ALDSP インストールには、これらのコンフィグレーションファイルのサンプルおよびそれに関連する BO_Readme.txt ファイルがあります。これは、次の場所にあります。

	<ALDSP_HOME>/samples/ReportingTools/config/BusinessObjects

Business Objects のコンフィグレーション ファイルを変更するには、readme ファイルにある指示に従います。

ヒント : ALDSP において、Business Objects を使用する前に、含まれたコンフィグレーション ファイルを使用して、JDBC を通じてデータ サービスにアクセスできるかどうかを確認します。

表 5-11 は、ALDSP JDBC ドライバを使用してデータにアクセスする際に Business Objects コンフィグレーション ファイルへの制約の一部と、コンフィグレーション変更が必要な部分を表しています。

表 5-11 ALDSP 用の Business Objects コンフィグレーション ファイルのサポート
コンフィグレーション ファイル
説明
ODBC.PRM
特に以下をサポートしている。
  • EXT_JOIN (外部結合)
  • QUALIFIER (テーブル プレフィックス)
  • DISTINCT
  • ANSI_92
以下はサポートされていない。
  • INTERSECT
  • INTERSECT_IN_SUBQUERY
  • MINUS
  • MINUS_IN_SUBQUERY
ODBC.SBO
[トランザクション利用可能] オプションを [はい] に設定する。

前提条件および制約

Business Objects を使用してデータ サービスにアクセスする前に、以下を考慮する必要があります。

OpenLink のコンフィグレーションの詳細については、「OpenLink ODBC JDBC ブリッジを使用した ALDSP クライアントへの接続」を参照してください。Business Objects は、AquaLogic Data Services Platform JDBC ドライバによりサポートされる XML 型のすべて (以下を除き) をサポートする。

Business Objects レポートの生成

レポートを使用するには、以下の手順に従ってください。

  1. Universe を作成するには、Business Objects デザイナ アプリケーションを実行し、[Quick Design ウィザード ウィンドウで起動] をクリックします。
  2. ユーザの Universe 名を入力し、適切な DSN 接続をドロップ ダウン リストから選択します。
  3. 使用する DSN がリストにない場合 (アプリケーションを最初に使用する場合)、[新規] をクリックして新しい接続を作成します。
  4. 新規接続の定義ウィザードにおいて、Generic ODBC3 Datasource をミドルウェアとして選択します。[次へ] をクリックします。
  5. ユーザ名およびパスワードを指定して WebLogic Server に接続し、openlink-aldsp を DSN として選択します。
  6. OpenLink ODBC JDBC ブリッジのコンフィグレーションの詳細については、「OpenLink ODBC-JDBC ブリッジを使用した ALDSP クライアントへの接続」を参照してください。

  7. [次へ] をクリックし、サーバとの接続の成功をテストします。ウィザードの手順に従い、接続の作成を完了します。
  8. 接続の作成後、その接続を Universe 内で指定し、[OK] をクリックします。ブランク パネルが表示されます。
  9. [挿入] メニューから[テーブル] を選択します。[テーブル ブラウザ] にテーブルのリストが表示された後、必要なテーブルをダブル クリックして Universe に入れます。
  10. Universe を保存し、終了します。
  11. 新規レポートを作成するには、アプリケーションを実行します。[新規] をクリックし、新規レポート ウィザードを開きます。
  12. レポートのレイアウトおよびレポート データを選択し、[起動] をクリックします。Universe を選択し、[次へ] をクリックします。使用する universe を強調表示します。
  13. 選択した universe をデフォルト universe に設定するには、[デフォルト universe として設定する] ダイアログバックスの次にあるチェック ボックスを選択します。[完了] をクリックします。

    左ペンで、テーブルおよびそのフィールド (カラム) を展開すると、そのリストが表示されます。

  14. 左のペインでカラム (テーブルフィールド) をダブル クリックし、それを結果で選択します。
  15. [実行] をクリックし、クエリを実行します。

Desktop Intelligence アプリケーションを使用して pass-through クエリを実行できます。

pass-through クエリを実行するには、以下の手順に従います。

  1. Desktop Intelligence アプリケーションで [次へ] をクリックし、新規レポートを作成します。
  2. 新規レポート ウィザード で Universe の代わりに [その他] を選択します。
  3. [フリーハンド SQL] を選択し、[終了] をクリックします。
  4. Designer を使用して作成した接続を選択します。
  5. レポートを作成するには、SQL クエリを入力し、[実行] をクリックします。
注意 : SELECT リストの 4 部の名 (<catalogname>.<scemaname>.<tablename>.<columnname> など) を指定する必要がある場合は、FROM 句を使用するテーブルのエイリアスを定義した後、SELECT リストの 2 つの部分 <tablealias>.<columnname> のみを使用してください。ALDSP JDBC ドライバは、SELECT リスト項目から最後の 2 箇所のみを抽出し、残りを無視します。

次に例を示します。

SELECT E.Name FROM JDBCdemo.empData.empinfo E


JDBCdemo は、カタログ名、
empData は、スキーマ名、
empinfo は、テーブル名、
Name は、カラム名、
E は、empinfo のテーブルのエリアス名です。

Microsoft Access 2003-ODBC

この節は、ODJB JDBC ブリッジを通じて Microsoft Excel 2003 を ALDSP に接続するプロシージャについて説明します。この節の内容は以下のとおりです。

Microsoft Access を使用したレポートの生成

MS Access をブリッジに接続するには、以下の手順に従ってください。

  1. MS Access を実行し、[ファイル|開く] を選択して、ファイルの種類として ODBC データベースを選択します、[データ ソースの選択] ダイアログが表示されます。
  2. [データ ソースの選択] ダイアログを閉じるには、[キャンセル] をクリックします。
  3. [クエリ] をクリックし、[設計] をクリックします。
  4. [テーブルの表示] ダイアログ ボックスを閉じます。[クエリの選択] ウィンドウが表示されます。
  5. ウィンドウで右クリックし、[SQL 固有|Pass-Through] を選択します。
  6. SQL クエリを入力し、[実行] をクリックします。
  7. 表示される [Machine Data Source] のタブをクリックし、openlink-aldsp を選択して ALDSP JDBC ドライバに接続し、レポートを作成します。
制約および使用上の注意

Microsoft Excel 2003-ODBC

この節は、OpenLink を使用して、ODJB JDBC ブリッジを通じて Microsoft Excel 2003 を ALDSP に接続するプロシージャについて説明します。

MS Excel を ALDSP に接続するには、以下の手順に従ってください。

  1. Data Services Studio を起動し、WebLogic Server を起動します。
  2. ALDSP データスペースを構築しデプロイします。
  3. Microsoft Excel を起動し、新しいワークシートを開きます。
  4. [データ] | [外部データ インポート] | [新規データベース クエリ] をクリックします。[データ ソース選択] ダイアログ ボックスが表示されます。
  5. データ ソースのリストから [openLink-aldsp] を選択した後、[OK] をクリックします。
  6. [クエリ ウィザード選択カラム] ダイアログ ボックスが表示されます。OpenLink を使用して JDBC ドライバのコンフィグレーションの詳細については、「OpenLink ODBC-JDBC ブリッジを使用した ALDSP クライアントへの接続」を参照してください。

  7. レポートを生成するテーブルを選択し、[次へ] をクリックすします。
  8. クエリ ウィザードの手順に従い、[クエリ ウィザード終了] ダイアログ ボックスで [Microsoft Office Excel にデータを返却] を選択します。
  9. [終了] をクリックし、新規の MS Excel スプレッドシートにデータをインポートします。クエリの結果が集計表に表示されます。
制限事項

生成された SQL 文字列を Excel に渡すときに、Excel がエイリアスの周囲に一重引用符を挿入する場合があり、その結果 ALDSP JDBC ドライバから例外が発生することがあります。以下に例を示します。

SELECT Sum(EMP.SALARY) AS 'Salary Cost' FROM JDBCdemo.empData.empinfo emp

クエリは、生成後に編集できますが、この問題に対応するためのパッチを Microsoft からインストールすることもできます。この問題の詳細およびパッチにアクセスする現行の URL を以下に示します。


http://support.microsoft.com/kb/298955/en-us

  ページの先頭       前へ  次へ