次の各節では、データベース OTD を作成する方法について説明します。
データベース OTD ウィザードは、外部データ発信元に接続し、対応するオブジェクト型定義を作成することによって OTD を生成します。OTD ウィザードでは、テーブル、ストアドプロシージャー、事前定義文の任意の組み合わせによって OTD を作成できます。
外部データ発信元のテーブルに基づいて、フィールドノードが OTD に追加されます。Java メソッドノードおよびパラメータノードは、適切な JDBC 機能を提供するために追加されます。Java メソッドの詳細については、JDBC の開発者向けリファレンスを参照してください。次に示す各データベースアダプタでは、追加サポートが提供されます。たとえば、Sybase アダプタでは複数文字セット (DBCS) がサポートされます。DBCS は、各文字が 2 バイトで表される文字セットです。韓国語には複数バイト文字セットが必要です。
次のトピックについて説明します。
データベース OTD ウィザードは、外部データ発信元に接続し、対応するオブジェクト型定義を作成することによって OTD を生成します。OTD ウィザードでは、テーブルとストアドプロシージャーまたは事前定義文の任意の組み合わせに基づいて OTD を作成できます。外部データ発信元のテーブルに基づいて、フィールドノードが OTD に追加されます。Java メソッドノードおよびパラメータノードは、適切な JDBC 機能を提供するために追加されます。Java メソッドの詳細については、JDBC の開発者向けリファレンスガイドを参照してください。
データベース OTD はメッセージ可能ではありません。メッセージ可能 OTD の詳細については、『Sun Enterprise Service Bus User’s Guide』を参照してください。
DB2 UDB アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーリストで、プロジェクトを右クリックし、ショートカットメニューから「オブジェクト型定義の作成」を選択します。
「OTD ウィザードの選択」ウィンドウで、「?DB2 データベース」を選択し、「次へ」をクリックします (次の図を参照)。
ドロップダウンリストを使用して「接続タイプ」を選択します (次の図を参照)。表示されるその他の接続情報フィールドは、選択したタイプによって異なります。
使用するデータベースに関する適切な接続情報 (接続タイプによって異なる) を指定します。指定する項目は次のとおりです。
「ホスト名」 - DB2 が存在するサーバー。
「ポート」 - DB2 のポート番号。
「場所」(AS/400 および z/OS 固有) - DB2 サブシステムの名前。DB2 サブシステムの場所を調べるには、データベースクエリーツールを使用して、「select current server from sysibm.sysdummy1」というクエリーを発行します。
「データベース」(Windows および UNIX 固有) - データベースインスタンスの名前。
「コレクション」(AS/400 および z/OS 固有) - パッケージのグループを識別する名前。パッケージの詳細については、「パッケージ」を参照してください。
「ユーザー名」 - アダプタがデータベースへの接続に使用するユーザー名。
「パスワード」 - データベースへのアクセスに使用するパスワード 。
「オプションパラメータ」フィールド (AS/400 および z/OS の場合のみ) は、DB2_ConnectionInfo.txt ファイルが netbeans\usrdir\modules\ext\ db2adapter ディレクトリに存在する場合に OTD ウィザードに表示されます。DB2 の OTD ウィザードでは、このフィールドで追加の接続パラメータを使用できます。オプションパラメータの詳細については、Sun Microsystems, Inc. に問い合わせてください。
このパラメータは、OTD に固有のものではありません。これは、Java CAPS IDE が実行するセッションでのみ使用されます。OTD を編集するときに表示される現在の値は、前にウィザードで入力された値です。元の OTD の作成に使用した値と同じ場合とそうでない場合があります。
パラメータの例を次に示します。
showSelectableTables=false パラメータでは、古いバージョンのドライバを使用する旧アダプタの動作など、ユーザーに追加のテーブルを表示する機能を false に設定できます (デフォルトは true)。
AlternateID=user1 パラメータでは、オブジェクト所有者を user1 に設定できます。このパラメータを使用しない場合は、「ユーザー名」フィールドのユーザーが使用されます。
複数のパラメータを指定できます。その場合はパラメータ間をセミコロン (;) で区切ります。
「次へ」をクリックします。「データベースオブジェクトの選択」ウィンドウが表示されます。
このアダプタは、DataDirect ドライバ (以前は Merant と呼ばれていた) を使用して DB2 で SQL 呼び出しを実行します。DataDirect ドライバは、DB2 システムで作成されるパッケージを必要とします。パッケージには、静的 SQL パッケージのような特定の SQL 文ではなく、ドライバの動的 SQL クエリーの実行と結果の返送を容易にするためにカーソルのように使用される動的セクションが含まれます。
サーバーでのパッケージの作成 (パッケージのバインドとも呼ばれる) は、一度だけ行う必要があります。OTD ウィザードの最初のユーザーは、パッケージを作成するためのバインド権限を持っている必要があります。バインド権限がないユーザーは、ドライバがパッケージをバインドしようとするときにエラーメッセージを受け取り、SQL 呼び出しを発行できません。ユーザーがウィザードのエントリを入力した場合、入力したコレクション ID でパッケージが自動的に作成されます。コレクション ID が空白のままの場合、パッケージは NULLID で生成されます。
ドライバは、データベース上に DDJC330A、DDJC330B、DDJC330C などの SQL パッケージを作成します。接続時に、ドライバはシステムテーブルを照会して、デフォルトパッケージがシステムに存在するかどうかを調べます。存在しない場合、ドライバはデフォルトパッケージを作成します。
DB2 に対して動的 SQL を実行する SQL アプリケーションは、サーバーにバインドされたパッケージを必要とします。一部の IBM ネイティブツールでは、デフォルトでパッケージがデータベースに既にインストールされているため、これが明白でないことがあります。
データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します (次の図を参照)。
「次へ」をクリックして続行します。「テーブル/ビュー/エイリアスの選択」ウィンドウが表示されます。
ビューは読み取り専用であり、情報提供のみを目的としています。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします (次の図を参照)。
「テーブルの追加」ウィンドウで、検索に使用する条件のタイプを選択します。「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択できます。検索にシステムテーブルを含める場合は、「システムテーブルを含む」チェックボックスにチェックマークを付けます。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします。テーブル/ビュー名を検索する場合は、テーブル名を入力します。ワイルドカード文字の「?」および「*」をテーブル/ビュー名の検索に使用すると、検索能力を高めることができます。たとえば、「AB?CD」や「AB*CD」のように使用します。
目的のテーブルを選択し、「了解」をクリックします。選択したテーブルが、「選択」ボックスの一覧に追加されます (次の図を参照)。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで「変更」をクリックした場合は、「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します (次の図を参照)。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。通常は、精度/長さとスケールは変更しないでください。テーブルの選択が完了したら、「了解」をクリックします (次の図を参照)。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。
「手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。
選択した手続きに変更を加える場合は、「続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします (次の図を参照)。
データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。
OTD での Resultset ノードの生成方法を選択するには、「Resultsets の編集」をクリックします。
生成する Resultset ノードのタイプを追加するには、「追加」をクリックします。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モード - 「実行時」モードでは、、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。
「アシスタンス」モード - 「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。
「手動で」モード - 「手動で」モードでは、もっとも柔軟な方法で結果セットノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
SELECT A, B, 3*C FROM table T |
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。
データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。
事前定義文パッケージを使用する場合は、「生成される Java コードではテーブル/ビューの完全修飾名を使用します。」を選択します。
事前定義文 OTD は、コンパイルされた SQL 文を表します。OTD の各フィールドは、ユーザーが指定する必要がある入力値に対応します。
事前定義文を使用して、挿入、更新、削除、およびクエリーの操作を実行できます。事前定義文では、疑問符 (?) を入力のプレースホルダとして使用します。たとえば、「insert into EMP_TAB (Age, Name, Dept No) values (?, ?, ?)」のようになります。
事前定義文を実行するには、入力パラメータを設定して executeUpdate() を呼び出し、必要に応じて入力値を指定します。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用してください。next() メソッドによるループで結果セットを処理できます。
「事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。
事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします (次の図を参照)。
「事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
2 つ以上のテーブルを使用する事前定義文を実行する場合、複数のテーブルに同じ列名があるときは、事前定義文にテーブル名修飾子を入れて OTD を構築します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします (次の図を参照)。
ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。名前とタイプも編集可能ですが、名前は変更しないことをお勧めします。名前を変更すると、ResultSet とデータベースの間で整合性が失われます。「了解」をクリックします (次の図を参照)。
OTD ウイザードでは、複数のテーブルで同じ列名を使用する複雑な事前定義文で OTD を作成することはできません。この問題は、列名エイリアスを使用するように SQL 文を変更することによって解決されます。
「事前定義ステートメントの追加」ウィンドウで、「了解」をクリックします。
Java CAPS IDE に表示する OTD の名前を指定します。
新しい OTD に関する選択内容を確認します。
OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します (次の図を参照)。
結果の OTD が Java CAPS IDE のキャンバスに表示されます。
1 つの OTD を多数のデータベースオブジェクトで構成できます。テーブル、事前定義文、およびストアドプロシージャーの任意の組み合わせが可能です。データベース OTD ウィザードを使用すると、OTD 編集機能で次の操作を行えます。
テーブル/ビューの追加または削除。
リストから別の型を選択することによるデータ型の変更。
テーブルオブジェクトの列の追加または削除。
事前定義文オブジェクトの追加または削除。
事前定義文オブジェクトの編集。
ストアドプロシージャーオブジェクトの追加または削除。
ストアドプロシージャー Resultset の編集。
既存の OTD に小さな変更を加えるだけの場合は、最初から再構築する必要はなく、代わりに、その OTD を編集できます。OTD を編集するには、次の手順を実行します。
プロジェクトツリーで、OTD を右クリックします。サブメニューの「編集」をクリックします。データベース接続情報ウィザードが開きます。
ウィザードで適切な情報を入力し、DB2 データベースに接続します。接続が確立されると、データベースウィザードが開き、OTD を変更できるようになります。
OTD の編集が完了したら、「完了」ボタンをクリックして変更を保存します。
OTD の編集が完了したら、変更がコラボレーションに反映されていることを確認して、実行時にエラーが発生しないようにします。たとえば、編集処理中に、コラボレーションに含まれているデータベースオブジェクトを削除した場合、そのコラボレーションのアクティブ化時または実行時にエラーが発生することがあります。
次の条件に適合する場合は、OTD の編集時に別のデータベースインスタンスに接続できます。
同じタイプの DB2 データベースを使用している。データベースの特定の機能に互換性がないため、z/OS、AS/400、および Windows/UNIX 上で実行される DB2 データベース間の切り替えはサポートされません。
同じバージョンのデータベースが使用されている。ただし、新しいバージョンが古いバージョンと互換性がある場合は除きます。
データベース内のテーブルの定義が同じである。
ストアドプロシージャーが同じである。
修飾名を使って構築されたテーブルおよびストアドプロシージャーの場合、両方のデータベースインスタンスで、そのテーブルおよびストアドプロシージャーのスキーマ名が同じである。
データベース OTD ウィザードは、外部データ発信元に接続し、対応するオブジェクト型定義を作成することによって OTD を生成します。OTD ウィザードでは、テーブルとストアドプロシージャーまたは事前定義文の任意の組み合わせに基づいて OTD を作成できます。外部データ発信元のテーブルに基づいて、フィールドノードが OTD に追加されます。Java メソッドノードおよびパラメータノードは、適切な JDBC 機能を提供するために追加されます。Java メソッドの詳細については、JDBC の開発者向けリファレンスを参照してください。
データベース OTD はメッセージ可能ではありません。メッセージ可能 OTD の詳細については、『Sun Enterprise Service Bus User’s Guide』を参照してください。
DB2 Connect アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「オブジェクト型定義の作成」を選択します。
「OTD ウィザードの選択」ウィンドウで、「DB2 Connect データベース」を選択し、「次へ」へクリックします (次の図を参照)。
「接続情報」フレーム内で、DB2 Connect の接続情報を入力します。
ドロップダウンリストを使用して「接続タイプ」を選択します (次の図を参照)。表示される接続情報フィールドは、選択するタイプ (タイプ 2 または タイプ 4 のどちらのコネクタを選択するか) によって異なります。
使用するデータベースに関する適切な接続情報 (接続タイプによって異なる) を指定します。指定する項目は次のとおりです。
タイプ 2 の接続の場合 (前の図を参照)
「データベース」 - データベースインスタンスの名前。
「ユーザー名」 - アダプタがデータベースへの接続に使用するユーザー名。
「パスワード」 - データベースへのアクセスに使用するパスワード 。
タイプ 4 の接続の場合 (前の図を参照)
「ホスト名」 - DB2 Connect が存在するサーバー。
「ポート」 - DB2 Connect のポート番号。
「データベース」 - Windows または UNIX 上で DB2 が実行しているデータベースインスタンスの名前。z/OS または AS/400 上で実行している DB2 のロケータの名前。
「ユーザー名」 - アダプタがデータベースへの接続に使用するユーザー名。
「パスワード」 - データベースへのアクセスに使用するパスワード 。
「次へ」をクリックします。「データベースオブジェクトの選択」ウィンドウが表示されます。
OTD に含める DB2 Connect オブジェクトのタイプを選択します。
データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。次の図を参照してください。
ビューは読み取り専用であり、情報提供のみを目的としています。
「次へ」をクリックして続行します。「テーブル/ビュー/エイリアスの選択」ウィンドウが表示されます。
OTD で必要なテーブルまたはビューのタイプを選択します。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします (次の図を参照)。
「テーブルの追加」ウィンドウで、検索に使用する条件のタイプを選択します。「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択できます。検索にシステムテーブルを含める場合は、「システムテーブルを含む」チェックボックスにチェックマークを付けます。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします (次の図を参照)。テーブル/ビュー名を検索する場合は、テーブル名を入力します。ワイルドカード文字の「?」および「*」をテーブル/ビュー名の検索に使用すると、検索能力を高めることができます。たとえば、「AB?CD」や「AB*CD」のように使用します。
目的のテーブルを選択し、「了解」をクリックします。選択したテーブルが、「選択」ボックスの一覧に追加されます (次の図を参照)。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで「変更」をクリックした場合は、「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します (次の図を参照)。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。通常は、精度/長さとスケールは変更しないでください。テーブルの選択が完了したら、「了解」をクリックします (次の図を参照)。
事前定義文パッケージを使用する場合は、「生成される Java コードではテーブル/ビューの完全修飾名を使用します。」を選択します。
OTD に必要な手続きを選択します。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。
「手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。
選択した手続きに変更を加える場合は、「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします。次の図を参照してください。
データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。
OTD での Resultset ノードの生成方法を選択するには、「Resultsets の編集」をクリックします。
生成する Resultset ノードのタイプを追加するには、「追加」をクリックします (次の図を参照)。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モード |
「実行時」モードでは、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。 |
|
「アシスタンス」モード |
「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。 |
|
「手動で」モード |
「手動で」モードでは、もっとも柔軟な方法で ResultSet ノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。 データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。 |
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。
事前定義文 OTD は、コンパイルされた SQL 文を表します。OTD の各フィールドは、ユーザーが指定する必要がある入力値に対応します。事前定義文を使用して、挿入、更新、削除、およびクエリーの操作を実行できます。事前定義文では、疑問符 (?) を入力のプレースホルダとして使用します。たとえば、「insert into EMP_TAB (Age, Name, Dept No) values (?, ?, ?)」のようになります。
事前定義文を実行するには、入力パラメータを設定して executeUpdate() を呼び出し、必要に応じて入力値を指定します。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用します。next() メソッドによるループで ResultSet を処理できます。
「事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。
事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします (次の図を参照)。
「事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
2 つ以上のテーブルを使用する事前定義文を実行する場合、複数のテーブルに同じ列名があるときは、事前定義文にテーブル名修飾子を入れて OTD を構築します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。次の図を参照してください。
ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。名前とタイプも編集可能ですが、名前は変更しないことをお勧めします。名前を変更すると、ResultSet とデータベースの間で整合性が失われます。「了解」をクリックします (次の図を参照)。
OTD ウイザードでは、複数のテーブルで同じ列名を使用する複雑な事前定義文で OTD を作成することはできません。この問題は、列名エイリアスを使用するように SQL 文を変更することによって解決されます。
「事前定義ステートメントの追加」ウィンドウで、「了解」をクリックします。
Java CAPS IDE に表示する OTD の名前を指定します。
OTD の名前を入力します。
OTD には、選択されたテーブルと、生成されたクラスのパッケージ名が含まれます (次の図を参照)。
「次へ」をクリックして続行します。「選択内容の確認」ウィンドウが表示されます。
新しい OTD に関する選択内容を確認します。
OTD の概要を表示します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します (次の図を参照)。
結果の OTD が Java CAPS IDE のキャンバスに表示されます。
1 つの OTD を多数のデータベースオブジェクトで構成できます。テーブル、事前定義文、およびストアドプロシージャーの任意の組み合わせが可能です。データベース OTD ウィザードを使用すると、OTD 編集機能で次の操作を行えます。
テーブル/ビューの追加または削除。
リストから別の型を選択することによるデータ型の変更。
テーブルオブジェクトの列の追加または削除。
事前定義文オブジェクトの追加または削除。
事前定義文オブジェクトの編集。
ストアドプロシージャーオブジェクトの追加または削除。
ストアドプロシージャー Resultset の編集。
既存の OTD に小さな変更を加えるだけの場合は、最初から再構築する必要はなく、代わりに、その OTD を編集できます。
プロジェクトツリーで、OTD を右クリックします。サブメニューの「編集」をクリックします。データベース接続情報ウィザードが開きます。
ウィザードで適切な情報を入力し、データベースに接続します。接続が確立されると、データベースウィザードが開き、OTD を変更できるようになります。
OTD の編集が完了したら、「完了」ボタンをクリックして変更を保存します。
OTD の編集が完了したら、変更がコラボレーションに反映されていることを確認して、実行時にエラーが発生しないようにします。たとえば、編集処理中に、コラボレーションに含まれているデータベースオブジェクトを削除した場合、そのコラボレーションのアクティブ化時または実行時にエラーが発生することがあります。
次の条件に適合する場合は、OTD の編集時に別のデータベースインスタンスに接続できます。
同じバージョンのデータベースが使用されている。ただし、新しいバージョンが古いバージョンと互換性がある場合は除きます。
データベース内のテーブルの定義が同じである。
ストアドプロシージャーが同じである。
修飾名を使って構築されたテーブルおよびストアドプロシージャーの場合、両方のデータベースインスタンスで、そのテーブルおよびストアドプロシージャーのスキーマ名が同じである。
Informix アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「新規」 > 「オブジェクト型定義」の順に選択します。「ウィザードタイプの選択」ページに、使用可能な OTD ウィザードが表示されます。
「新規オブジェクト型定義ウィザード」ウィンドウで、「Informix データベース」を選択し、「次へ」をクリックします。次の図を参照してください。
「新規オブジェクト型定義ウィザード」ウィンドウで、「Informix データベース」を選択し、「次へ」ボタンをクリックします。「新規ウィザード - Informix データベース」ウィンドウが表示されます。
「接続情報」フレーム内で、Informix データベースの接続情報を入力します。
必須のデータベース接続フィールドは次のとおりです。
「ホスト名」 - 接続先のホストの名前。
「ポート ID」 - ホストのポート番号 (デフォルトは 1526)。
「Informix サーバー」 - Informix サーバーの名前。
「データベース名」 - 接続先のデータベースの名前。
「ユーザー名」 - 有効な Informix データベースユーザー名。
「パスワード」 - 前述のユーザー名のパスワード。
「次へ」をクリックします。「データベースオブジェクトの選択」ウィンドウが表示されます。
OTD に含める Informix データベースオブジェクトのタイプを選択します。
データベースオブジェクトを選択するには、次の手順を実行する必要があります。
データベースオブジェクトを選択するときに、OTD ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。次の図を参照してください。
ビューは読み取り専用であり、情報提供のみを目的としています。
OTD で必要なテーブル、ビュー、またはエイリアスのタイプを選択します。
テーブル/ビュー/エイリアスを選択するには、次の手順を実行する必要があります。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします。次の図を参照してください。
「テーブルの追加」ウィンドウで、選択条件として「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択し、さらに、システムテーブルを含めるかどうかを指定します。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします。次の図を参照してください。
目的のテーブルを選択し、「了解」をクリックします。
選択したテーブルが、「選択されたテーブル/ビュー/エイリアス」セクションに追加されます (次の図を参照)。
「選択されたテーブル/ビュー/エイリアス」セクションで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します。テーブルの列を変更する場合は、「変更」をクリックします。次の図を参照してください。
ドライバがデータ型を検出できない場合、通常はデータ型として「その他」が表示されます。その場合は、列データのタイプに適したデータ型に変更することをお勧めします。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。テーブルの選択が完了したら、「了解」をクリックします。通常は、何も変更する必要はありません。
現在 Informix アダプタとともに配布されている Informix データベースドライバでは、データベース内の列が NULL 値を受け入れるかどうかに関係なく、NULL を許可しない列が OTD ウィザードのダイアログボックスに表示されます。
OTD で必要なストアドプロシージャーのタイプを選択します。
ストアドプロシージャーを選択するには、次の手順を実行する必要があります。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。
「手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。
ストアドプロシージャーを呼び出すときは、小文字のスキーマ名を使用してください。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。
現在 Informix アダプタとともに配布されている Informix データベースドライバは、検索の実行時に使用できるストアドプロシージャーのタイプを示すメタデータを返しません。そのため、すべての手続きの「タイプ」フィールドは「不明」と表示されます。
選択した手続きに変更を加える場合は、「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします。
データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。
OTD での Resultset ノードの生成方法を選択するには、「Resultsets の編集」をクリックします。
生成する Resultset ノードのタイプを追加するには、「追加」をクリックします。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モードでは、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。
「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。
「手動で」モードでは、もっとも柔軟な方法で結果セットノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
SELECT A, B, 3*C FROM table T |
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。
データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。
事前定義文オブジェクトを OTD に追加します。
事前定義文を追加するには、次の手順を実行する必要があります。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用してください。
「事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。「事前定義ステートメントの追加」ウィンドウが表示されます。
事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします。次の図を参照してください。
「事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。図 1–21 を参照してください。
パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
新しい ResultSet 列を追加するには、「追加」をクリックします。名前およびタイプも編集可能です。
「了解」をクリックして「事前定義ステートメントの追加」ウィンドウに戻ります。
Java CAPS IDE に表示する OTD の名前を指定します。
OTD 名を指定するには、次の手順を実行する必要があります。
新しい OTD に関する選択内容を確認します。
OTD の選択内容を確認するには、次の手順を実行する必要があります。
OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します。次の図を参照してください。
結果の OTD が Java CAPS IDE に表示されます。
作成したデータベース OTD を Java CAPS IDE から直接編集できます。
OTD のロックを解除します。これを行うには、プロジェクトツリーで OTD を右クリックし、メニューから「バージョン管理」 > 「チェックアウト」の順に選択します。
「バージョン管理 - チェックアウト」ウィンドウが表示されます。
チェックアウトする OTD を選択し、「チェックアウト」をクリックします。
プロジェクトツリーで再度 OTD を右クリックし、メニューから「編集」を選択します。
Informix データベース接続情報ウィザードが表示されます。
「データベースに接続する」の説明に従って接続情報を入力し、「次へ」をクリックします。
ウィザードの各ステップをすべて完了したら、「完了」をクリックして変更を保存します。
OTD の編集後、プロジェクトのアクティブ化時または実行時に、エラーが生成されないことを確認してください。コラボレーションに含まれているデータベースオブジェクトを削除した場合、エラーが発生することがあります。
JDBC アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「新規」 > 「オブジェクト型定義」の順に選択します。「ウィザードタイプの選択」ページに、使用可能な OTD ウィザードが表示されます。次の図を参照してください。
「新規オブジェクト型定義ウィザード」ウィンドウで、「JDBC データベース」を選択し、「次へ」ボタンをクリックします。「新規ウィザード - JDBC データベース」ウィンドウが表示されます。
「接続情報」フレーム内で、JDBC データベースの接続情報を入力します。
必須のデータベース接続フィールドは次のとおりです。
「ドライバ Jar ファイル」 - ドライバ Jar ファイルの場所。
「ドライバ Java クラス名」 - ドライバマネージャークラスの名前。
「URL 接続文字列」 - ドライバの URL 接続文字列。
「ユーザー名」 - 有効な JDBC データベースユーザー名。
「パスワード」 - 前述のユーザー名のパスワード。
OTD に含める JDBC データベースオブジェクトのタイプを選択します。
データベースオブジェクトを選択するときに、OTD ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。次の図を参照してください。
ビューは読み取り専用であり、情報提供のみを目的としています。
OTD で必要なテーブル、ビュー、またはエイリアスのタイプを選択します。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします。次の図を参照してください。
「テーブルの追加」ウィンドウで、選択条件として「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択し、さらに、システムテーブルを含めるかどうかを指定します。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします。次の図を参照してください。
目的のテーブルを選択し、「了解」をクリックします。
選択したテーブルが、「選択されたテーブル/ビュー/エイリアス」セクションに追加されます。次の図を参照してください。
「選択されたテーブル/ビュー/エイリアス」セクションで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します。テーブルの列を変更する場合は、「変更」をクリックします。次の図を参照してください。
ドライバがデータ型を検出できない場合、通常はデータ型として「その他」が表示されます。その場合は、列データのタイプに適したデータ型に変更することをお勧めします。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。テーブルの選択が完了したら、「了解」をクリックします。通常は、何も変更する必要はありません。次の図を参照してください。
OTD で必要なストアドプロシージャーのタイプを選択します。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。
「手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからスキーマを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします
選択した手続きに変更を加える場合は、「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします。次の図を参照してください。
データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。
OTD で Resultset のノードを生成する方法を選択するには、「Resultsets の編集」をクリックします。
生成する Resultset ノードのタイプを追加するには、「追加」をクリックします。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モード |
「実行時」モードでは、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。 |
|
「アシスタンス」モード |
「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。 |
|
「手動で」モード |
「手動で」モードでは、もっとも柔軟な方法で ResultSet ノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。 データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。 |
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。
すべてのドライバおよびデータベースでストアドプロシージャーまたは ResultSet を伴うストアドプロシージャーがサポートされるわけではありません。詳細についてはドライバのベンダーに問い合わせてください。
事前定義文オブジェクトを OTD に追加します。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用してください。
「事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。
事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします 次の図を参照してください。
「事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします 次の図を参照してください。
ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。「ResultSet 列」ウィンドウが表示されます。次の図を参照してください。
新しい ResultSet 列を追加するには、「追加」をクリックします。名前およびタイプも編集可能です。
「了解」をクリックして「事前定義ステートメントの追加」ウィンドウに戻ります。
Java CAPS IDE に表示する OTD の名前を指定します。
新しい OTD に関する選択内容を確認します。
OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します。次の図を参照してください。
結果の OTD が Java CAPS IDE に表示されます。
作成したデータベース OTD を Java CAPS IDE から直接編集できます。
OTD のロックを解除します。これを行うには、プロジェクトツリーで OTD を右クリックし、メニューから「バージョン管理」 > 「チェックアウト」の順に選択します。
「バージョン管理 - チェックアウト」ウィンドウが表示されます。
チェックアウトする OTD を選択し、「チェックアウト」をクリックします。
プロジェクトツリーで再度 OTD を右クリックし、メニューから「編集」をクリックします。
JDBC データベース接続情報ウィザードが表示されます。
「データベースに接続する」の説明に従って接続情報を入力し、「次へ」をクリックします。
ウィザードの各ステップをすべて完了したら、「完了」をクリックして変更を保存します。
OTD の編集後、プロジェクトのアクティブ化時または実行時に、エラーが生成されないことを確認してください。コラボレーションに含まれているデータベースオブジェクトを削除した場合、エラーが発生することがあります。
Oracle アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「新規」 > 「オブジェクト型定義」の順に選択します。「ウィザードタイプの選択」ページに、使用可能な OTD ウィザードが表示されます。
「新規オブジェクト型定義ウィザード」ウィンドウで、「Oracle データベース」を選択し、「次へ」をクリックします 次の図を参照してください。
「接続情報」フレーム内で、Oracle データベースの接続情報を入力します。
使用するデータベースに関する適切な接続情報を指定します。指定する項目は次のとおりです。
「ホスト名」 - Oracle が存在するサーバー。
「ポート ID」 - Oracle のポート番号。
「SID」 - Oracle インスタンスの名前 (データベース名と同じ)。
「ユーザー名」 - アダプタがデータベースへの接続に使用するユーザー名。
「パスワード」 - データベースへのアクセスに使用するパスワード 。
「次へ」をクリックします。「データベースオブジェクトの選択」ウィンドウが表示されます。
OTD に含める Oracle データベースオブジェクトのタイプを選択します。
「データベースオブジェクトの選択」ダイアログボックス (次の図) で、このサンプルの場合は「テーブル/ビュー/エイリアス」を選択します。データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。
ビューは読み取り専用であり、情報提供のみを目的としています。
「次へ」をクリックして続行します。選択に応じて「テーブル/ビュー/エイリアスの選択」ウィンドウが表示されます。
OTD で必要なテーブルまたはビューのタイプを選択します。
現在のリリースの Oracle アダプタではエイリアスはサポートされません。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします (次の図を参照)。
「テーブルの追加」ウィンドウで、検索に使用する条件のタイプを選択します。「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択できます。検索にシステムテーブルを含める場合は、「システムテーブルを含む」チェックボックスにチェックマークを付けます。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします。テーブル/ビュー名を検索する場合は、テーブル名を入力します。ワイルドカード文字の「?」および「*」をテーブル/ビュー名の検索に使用すると、検索能力を高めることができます。たとえば、「AB?CD」や「AB*CD」のように使用します。
目的のテーブルを選択し、「了解」をクリックします。選択したテーブルが、「選択」ボックスの一覧に追加されます (次の図を参照)。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで「変更」をクリックした場合は、「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します (次の図を参照)。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。通常は、精度/長さとスケールは変更しないでください。テーブルの選択が完了したら、「了解」をクリックします (次の図を参照)。
事前定義文パッケージを使用する場合は、「生成される Java コードではテーブル/ビューの完全修飾名を使用します。」を選択します。
OTD に必要な手続きを選択します。
「手続きの選択と結果セットおよびパラメータ情報の指定」ダイアログボックスで、「追加」をクリックします。
「手続きの選択」ダイアログボックスで、手続きの名前 (大文字と小文字が区別される) を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字を使用できます。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。
「手続きの選択と結果セットおよびパラメータ情報の指定」 ダイアログボックスで、「編集」をクリックし、必要に応じて、選択された手続きに変更を加えます (次の図を参照)。
データ型を復元するには、「復元」をクリックします。完了したら、「了解」をクリックします。
Oracle OTD の ResultSet をウィザードに生成させるには、「ResultSet の編集」をクリックします。
生成する ResultSet のタイプを選択し、「追加」をクリックします。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モード - 「実行時」モードでは、、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。
「アシスタンス」モード - 「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。
「手動で」モード - 「手動で」モードでは、もっとも柔軟な方法で結果セットノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
SELECT A, B, 3*C FROM table T |
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。
データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。
事前定義文 OTD は、コンパイルされた SQL 文を表します。OTD の各フィールドは、ユーザーが指定する必要がある入力値に対応します。事前定義文を使用して、挿入、更新、削除、およびクエリーの操作を実行できます。事前定義文では、疑問符 (?) を入力のプレースホルダとして使用します。たとえば、「insert into EMP_TAB (Age, Name, Dept No) values (?, ?, ?)」のようになります。
事前定義文を実行するには、入力パラメータを設定して executeUpdate() を呼び出し、必要に応じて入力値を指定します。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用します。next() メソッドによるループで ResultSet を処理できます。
「事前定義文の追加」ダイアログボックスで、「追加」をクリックします。
事前定義文の名前を入力します。次に、「SQL ステートメント」ダイアログボックスで SQL 文クリックするか、または「ステートメントビルダー」ボタンをクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックします。この文には、先ほど入力した名前を付けます。この名前がノードとして OTD に表示されます (次の図を参照)。「了解」をクリックします。
「事前定義ステートメントの追加」ダイアログボックスに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。
事前定義文を保存したら、事前定義文パラメータの ResultSet 列の名前が、特殊文字 (角括弧など) を含まない有効な英数字文字列であることを確認してください。
ResultSet 列を編集するには、「ResultSet の編集」をクリックします (次の図を参照)。名前とタイプも編集可能ですが、名前は変更しないことをお勧めします。名前を変更すると、ResultSet とデータベースの間で整合性が失われる可能性があります。「了解」をクリックします。
OTD ウイザードでは、複数のテーブルで同じ列名を使用する複雑な事前定義文で OTD を作成することはできません。この問題は、列名エイリアスを使用するように SQL 文を変更することによって解決されます。
「事前定義ステートメントの追加」ダイアログボックスで、「了解」をクリックします。
Java CAPS IDE に表示する OTD の名前を指定します。
新しい OTD に関する選択内容を確認します。
OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します (次の図を参照)。
結果の OTD が Java CAPS IDE に表示されます。
データベース OTD ウィザードは、外部データ発信元に接続し、対応するオブジェクト型定義を作成することによって OTD を生成します。OTD ウィザードでは、テーブルとストアドプロシージャーまたは事前定義文の任意の組み合わせに基づいて OTD を作成できます。外部データ発信元のテーブルに基づいて、フィールドノードが OTD に追加されます。Java メソッドノードおよびパラメータノードは、適切な JDBC 機能を提供するために追加されます。Java メソッドの詳細については、JDBC の開発者向けリファレンスを参照してください。
データベース OTD はメッセージ可能ではありません。メッセージ可能 OTD の詳細については、『Sun Enterprise Service Bus User’s Guide』を参照してください。
SQL Server アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「オブジェクト型定義の作成」を選択します。
「OTD ウィザードの選択」ウィンドウで、「SQL Server データベース」を選択し、「次へ」をクリックします (次の図を参照)。
「接続情報」フレーム内で、SQL Server データベースの接続情報を入力します。
必須のデータベース接続フィールドは次のとおりです。
「ホスト名」 – データベースサービスホスト名。
「ポート ID」 – データベースサービス接続ポートの ID または番号。
「データベース名」 – SQL Server データベースの名前。
「ユーザー名」 - 有効な SQL Server データベースユーザー名。
「パスワード」 - 前述のユーザー名のパスワード。
「次へ」をクリックします。「データベースオブジェクトの選択」ダイアログボックスが表示されます。
データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。
ビューは読み取り専用であり、情報提供のみを目的としています。
「次へ」をクリックして続行します。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします (次の図を参照)。
「テーブルの追加」ウィンドウで、選択条件として「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択し、さらに、システムテーブルを含めるかどうかを指定します。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします (次の図を参照)。
目的のテーブルを選択し、「了解」をクリックします。選択したテーブルが、「選択されたテーブル/ビュー/エイリアス」ウインドウに追加されます (次の図を参照)。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します。テーブルの列を変更する場合は、「変更」をクリックします。
ドライバがデータ型を検出できない場合、通常はデータ型として「その他」が表示されます。その場合は、列データのタイプに適したデータ型に変更することをお勧めします。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。テーブルの選択が完了したら、「了解」をクリックします。通常は、これらの設定を変更する必要はありません (次の図を参照)。
事前定義文パッケージを使用する場合は、「生成される Java コードではテーブル/ビューの完全修飾名を使用します。」を選択します。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。
「手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。
選択した手続きに変更を加える場合は、「続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします (次の図を参照)。
データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。
OTD での Resultset ノードの生成方法を選択するには、「Resultsets の編集」をクリックします。
生成する Resultset ノードのタイプを追加するには、「追加」をクリックします。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モード - 「実行時」モードでは、、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。
「アシスタンス」モード - 「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。
「手動で」モード - 「手動で」モードでは、もっとも柔軟な方法で結果セットノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
SELECT A, B, 3*C FROM table T |
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。
データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。
事前定義文オブジェクトを OTD に追加します。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用します。next() メソッドによるループで ResultSet を処理できます。
「事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。
事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします (次の図を参照)。
「事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
2 つ以上のテーブルを使用する事前定義文を実行する場合、複数のテーブルに同じ列名があるときは、事前定義文にテーブル名修飾子を入れて OTD を構築します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします (次の図を参照)。
ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。名前とタイプも編集可能ですが、名前は変更しないことをお勧めします。名前を変更すると、ResultSet とデータベースの間で整合性が失われます。「了解」をクリックします (次の図を参照)。
OTD ウイザードでは、複数のテーブルで同じ列名を使用する複雑な事前定義文で OTD を作成することはできません。この問題は、列名エイリアスを使用するように SQL 文を変更することによって解決されます。
「事前定義ステートメントの追加」ウィンドウで、「了解」をクリックします。
Java CAPS IDE に表示する OTD の名前を指定します。
新しい OTD に関する選択内容を確認します。
OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します。次の図を参照してください。
結果の OTD が Java CAPS IDE に表示されます。
1 つの OTD を多数のデータベースオブジェクトで構成できます。テーブル、事前定義文、およびストアドプロシージャーの任意の組み合わせが可能です。データベース OTD ウィザードを使用すると、OTD 編集機能で次の操作を行えます。
テーブル/ビュー/エイリアスの追加または削除。
リストから別の型を選択することによるデータ型の変更。
テーブルオブジェクトの列の追加または削除。
事前定義文オブジェクトの追加または削除。
事前定義文オブジェクトの編集。
ストアドプロシージャーオブジェクトの追加または削除。
ストアドプロシージャー Resultset の編集。
既存の OTD に小さな変更を加えるだけの場合は、最初から再構築する必要はなく、代わりに、その OTD を編集できます。OTD を編集するには、次の手順を実行します。
プロジェクトツリーで、OTD を右クリックします。サブメニューの「編集」をクリックします (次の図を参照)。データベース接続情報ウィザードが開きます。
ウィザードで適切な情報を入力し、データベースに接続します。接続が確立されると、データベースウィザードが開き、OTD を変更できるようになります。
OTD の編集が完了したら、「完了」ボタンをクリックして変更を保存します。
OTD の編集が完了したら、変更がコラボレーションに反映されていることを確認して、実行時にエラーが発生しないようにします。たとえば、編集処理中に、コラボレーションに含まれているデータベースオブジェクトを削除した場合、そのコラボレーションのアクティブ化時または実行時にエラーが発生することがあります。
次の条件に適合する場合は、OTD の編集時に別のデータベースインスタンスに接続できます。
同じバージョンのデータベースが使用されている。ただし、新しいバージョンが古いバージョンと互換性がある場合は除きます。
データベース内のテーブルの定義が同じである。
ストアドプロシージャーが同じである。
修飾名を使って構築されたテーブルおよびストアドプロシージャーの場合、両方のデータベースインスタンスで、そのテーブルおよびストアドプロシージャーのスキーマ名が同じである。
Sybase アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「オブジェクト型定義の作成」を選択します。
「OTD ウィザードの選択」ウィンドウで、「Sybase データベース」をクリックし、「次へ」をクリックします。次の図を参照してください。
「接続情報」フレーム内で、Sybase データベースの接続情報を入力します。
「ホスト名」 – データベースサービスホスト名。
「ポート ID」 – データベースサービス接続ポートの ID または番号。
「データベース名」 – Sybase データベースの名前。
「ユーザー名」 - 有効な Sybase データベースユーザー名。
「パスワード」 - 前述のユーザー名のパスワード。
OTD に含める Sybase データベースオブジェクトのタイプを選択します。
データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブル、ビュー、手続き、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。次の図を参照してください。
ビューは読み取り専用であり、情報提供のみを目的としています。
OTD で必要なテーブルまたはビューのタイプを選択します。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします。次の図を参照してください。
「テーブルの追加」ウィンドウで、選択条件として「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択し、さらに、システムテーブルを含めるかどうかを指定します。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします。次の図を参照してください。
目的のテーブルを選択し、「了解」をクリックします。
選択したテーブルが、「選択されたテーブル/ビュー/エイリアス」ウィンドウに追加されます。次の図を参照してください。
「選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します。テーブルの列を変更する場合は、「変更」をクリックします。次の図を参照してください。
ドライバがデータ型を検出できない場合、通常はデータ型として「その他」が表示されます。その場合は、列データのタイプに適したデータ型に変更することをお勧めします。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。テーブルの選択が完了したら、「了解」をクリックします。通常は、何も変更する必要はありません。次の図を参照してください。
OTD で必要なストアドプロシージャーのタイプを選択します。
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。
手続きの完全修飾名は、スキーマ名とストアドプロシージャーテーブル名の 2 つの部分で構成されます。「生成される Java コードでは手続きの完全修飾名を使用します。」チェックボックスが選択されている場合、Java コラボレーション定義で生成されたコードが完全修飾名で表示されます。このチェックボックスが選択されていない場合は、ストアドプロシージャーテーブル名のみが表示されます。
「手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。
表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。
選択した手続きに変更を加える場合は、「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします。次の図を参照してください。
データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。
OTD での Resultset ノードの生成方法を選択するには、「Resultsets の編集」をクリックします。
生成する Resultset ノードのタイプを追加するには、「追加」をクリックします。
データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。
「実行時」モード |
「実行時」モードでは、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。 |
|
「アシスタンス」モード |
「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。 |
|
「手動で」モード |
「手動で」モードでは、もっとも柔軟な方法で ResultSet ノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。
これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。 データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。 |
「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。
状況によっては、条件文が使用されている場合に、Select 文を使用するストアドプロシージャーが Resultset を返さないことがあります。この場合、Resultset の available() メソッドが true を返したとしても、next() メソッドの呼び出し時にデータは返されません。この結果は、使用するドライバのタイプと整合します。
Select の使用に加えて、Insert、Update、および Delete 操作を使用する場合、そのストアドプロシージャーは、使用された各操作の結果を返します。Select 文の Resultset を返すだけの場合は、enableResultSetsOnly() メソッドを呼び出すことをお勧めします。
事前定義文オブジェクトを OTD に追加します。
「事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。
事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします。次の図を参照してください。
「事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。次の図を参照してください。
ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。「ResultSet 列」ウィンドウが表示されます。次の図を参照してください。
新しい ResultSet 列を追加するには、「追加」をクリックします。名前およびタイプも編集可能です。
「了解」をクリックして「事前定義ステートメントの追加」ウィンドウに戻ります。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入り、すべての CPU 使用率がいっぱいになってしまいます。next() メソッドによるループで Resultset を処理できます。
事前定義文が正しくない場合、ResultSet 列数はゼロになります。
Java CAPS IDE に表示する OTD の名前を指定します。
新しい OTD に関する選択内容を確認します。
OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します。次の図を参照してください。
結果の OTD が Java CAPS IDE に表示されます。
作成したデータベース OTD を Java CAPS IDE から直接編集できます。
OTD のロックを解除します。これを行うには、プロジェクトツリーで OTD を右クリックし、メニューから「バージョン管理」 > 「チェックアウト」の順に選択します。
「バージョン管理 - チェックアウト」ウィンドウが表示されます。
チェックアウトする OTD を選択し、「チェックアウト」をクリックします。
プロジェクトツリーで再度 OTD を右クリックし、メニューから「編集」を選択します。
Sybase データベース接続情報ウィザードが表示されます。
「データベースに接続する」の説明に従って接続情報を入力し、「次へ」をクリックします。
ウィザードの各ステップをすべて完了したら、「完了」をクリックして変更を保存します。
OTD の編集後、プロジェクトのアクティブ化時または実行時に、エラーが生成されないことを確認してください。コラボレーションに含まれているデータベースオブジェクトを削除した場合、エラーが発生することがあります。
VSAM アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。
新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。
プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「新規」 > 「オブジェクト型定義」の順に選択します。「ウィザードタイプの選択」ページに、使用可能な OTD ウィザードが表示されます。
「新規オブジェクト型定義ウィザード」ウィンドウで、「VSAM データベース」を選択し、「次へ」をクリックします 図 1–26 を参照してください。
「接続情報」フレーム内で、VSAM データベースの接続情報を入力します。
必須のデータベース接続フィールドは次のとおりです。
「ホスト名」 – データベースサービスホスト名。
「ポート ID」 – データベースサービス接続ポートの ID または番号。
「データベース名」 – VSAM データベースの名前。
「ユーザー名」 - 有効な VSAM データベースユーザー名。
「パスワード」 - 前述のユーザー名のパスワード。
OTD に含める VSAM データベースオブジェクトのタイプを選択します。
データベースオブジェクトを選択するときに、OTD ファイルに含めるテーブル、ビュー、事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します (次の図を参照)。
ビューは読み取り専用であり、情報提供のみを目的としています。
OTD で必要なテーブルまたはビューのタイプを選択します。
現在のリリースの VSAM アダプタではエイリアスはサポートされません。
「テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします (次の図を参照)。
「テーブルの追加」ウィンドウで、選択条件として「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択し、さらに、システムテーブルを含めるかどうかを指定します。
テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします (次の図を参照)。
目的のテーブルを選択し、「了解」をクリックします。
選択したテーブルが、「選択されたテーブル/ビュー/エイリアス」セクションに追加されます (次の図を参照)。
「選択されたテーブル/ビュー/エイリアス」セクションで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。
「テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します。テーブルの列を変更する場合は、「変更」をクリックします (次の図を参照)。
ドライバがデータ型を検出できない場合、通常はデータ型として「その他」が表示されます。その場合は、列データのタイプに適したデータ型に変更することをお勧めします。
データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。テーブルの選択が完了したら、「了解」をクリックします。通常は、何も変更する必要はありません (次の図を参照)。
事前定義文オブジェクトを OTD に追加します。
事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入ってしまい、システムのすべての CPU が停止状態になります。使用する場合は、if 文でのみ使用してください。
「事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。
事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。デフォルトユーザー名以外のユーザー名で VSAM データベースにログインしている場合は、SQL 事前定義文にテーブルスキーマ名を入力してください。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。
この名前は、OTD のノードとして表示されます。「了解」をクリックします (次の図を参照)。
「事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。
文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。
ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。「ResultSet 列」ウィンドウが表示されます (次の図を参照)。
新しい ResultSet 列を追加するには、「追加」をクリックします。名前およびタイプも編集可能です。
「了解」をクリックして「事前定義ステートメントの追加」ウィンドウに戻ります。
Java CAPS IDE に表示する OTD の名前を指定します。
新しい OTD に関する選択内容を確認します。
OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。
OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します (次の図を参照)。
結果の OTD が Java CAPS IDE に表示されます。
プレースホルダ