データベースアダプタ用 OTD の開発

新しい Sybase OTD の作成

Sybase アダプタ用の新しい OTD を作成するには、次の手順を実行する必要があります。

ウィザードタイプの選択

新規オブジェクト型定義ウィザードで、OTD の構築に必要なウィザードのタイプを選択します。

ProcedureSybase データベース OTD ウィザードを選択する

  1. プロジェクトツリーで、プロジェクトを右クリックし、ショートカットメニューから「オブジェクト型定義の作成」を選択します。

  2. 「OTD ウィザードの選択」ウィンドウで、「Sybase データベース」をクリックし、「次へ」をクリックします。次の図を参照してください。

    図 1–40 OTD ウィザードの選択

    OTD ウィザードの選択

データベースに接続する

「接続情報」フレーム内で、Sybase データベースの接続情報を入力します。

必須のデータベース接続フィールド

データベースオブジェクトの選択

OTD に含める Sybase データベースオブジェクトのタイプを選択します。

Procedureデータベースオブジェクトを選択する

  1. データベースオブジェクトを選択するときに、.otd ファイルに含めるテーブルビュー手続き事前定義文を自由に組み合わせて選択できます。「次へ」をクリックして続行します。次の図を参照してください。


    注 –

    ビューは読み取り専用であり、情報提供のみを目的としています。


    図 1–41 データベースオブジェクトの選択

    データベースオブジェクトの選択

テーブル/ビュー/エイリアスの選択

OTD で必要なテーブルまたはビューのタイプを選択します。

Procedureテーブル/ビュー/エイリアスを選択する

  1. テーブル/ビュー/エイリアスの選択」ウィンドウで、「追加」をクリックします。次の図を参照してください。

    図 1–42 テーブル/ビュー/エイリアスの選択

    テーブル/ビュー/エイリアスの選択

  2. テーブルの追加」ウィンドウで、選択条件として「テーブルのみ」、「ビューのみ」、「両方」のいずれかを選択し、さらに、システムテーブルを含めるかどうかを指定します。

  3. テーブル/ビュー名のドロップダウンリストから、データベーステーブルの場所を選択し、「検索」をクリックします。次の図を参照してください。

    図 1–43 データベースウィザード - すべてのスキーム

    データベースウィザード - すべてのスキーム

  4. 目的のテーブルを選択し、「了解」をクリックします。

    選択したテーブルが、「選択されたテーブル/ビュー/エイリアス」ウィンドウに追加されます。次の図を参照してください。

    図 1–44 「選択されたテーブル/ビュー/エイリアス」ウィンドウと選択されたテーブル

    「選択されたテーブル/ビュー/エイリアス」ウィンドウと選択されたテーブル

  5. 選択されたテーブル/ビュー/エイリアス」ウィンドウで、選択されたテーブルを確認します。選択されたテーブルまたはビューに変更を加える場合は、「変更」をクリックします。何も変更を加えない場合は、「次へ」をクリックして続行します。

  6. テーブル/ビューの列」ウィンドウで、テーブルの列を選択または選択解除できます。また、各テーブルのデータ型を変更するには、そのデータ型を強調表示させて、ドロップダウンリストから別のデータ型を選択します。テーブルの列を変更する場合は、「変更」をクリックします。次の図を参照してください。

    ドライバがデータ型を検出できない場合、通常はデータ型として「その他」が表示されます。その場合は、列データのタイプに適したデータ型に変更することをお勧めします。

    図 1–45 テーブル/ビューの列

    テーブル/ビューの列

  7. データ型、精度/長さ、またはスケールを変更するには、「詳細」をクリックします。テーブルの選択が完了したら、「了解」をクリックします。通常は、何も変更する必要はありません。次の図を参照してください。

    図 1–46 テーブル/ビューの列: 詳細

    テーブル/ビューの列: 詳細

手続きの選択

OTD で必要なストアドプロシージャーのタイプを選択します。

Procedureストアドプロシージャーを選択する

  1. 手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。

    図 1–47 手続きの選択と結果セットおよびパラメータ情報の指定

    手続きの選択と結果セットおよびパラメータ情報の指定


    注 –

    手続きの完全修飾名は、スキーマ名とストアドプロシージャーテーブル名の 2 つの部分で構成されます。「生成される Java コードでは手続きの完全修飾名を使用します。」チェックボックスが選択されている場合、Java コラボレーション定義で生成されたコードが完全修飾名で表示されます。このチェックボックスが選択されていない場合は、ストアドプロシージャーテーブル名のみが表示されます。


  2. 手続きの選択」ウィンドウで、手続きの名前を入力するか、またはドロップダウンリストからテーブルを選択します。「検索」をクリックします。ワイルドカード文字も使用できます。

  3. 表示された「手続きの選択」リストボックスで、手続きを選択します。「了解」をクリックします。

    図 1–48 手続きの追加

    手続きの追加

  4. 選択した手続きに変更を加える場合は、「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで「パラメータの編集」をクリックします。次の図を参照してください。

    図 1–49 手続きパラメータ

    手続きパラメータ

  5. データ型を復元するには、「復元」をクリックします。操作が完了したら、「了解」をクリックします。

  6. OTD での Resultset ノードの生成方法を選択するには、「Resultsets の編集」をクリックします。

  7. 生成する Resultset ノードのタイプを追加するには、「追加」をクリックします。

    図 1–50 ResultSet の編集

    ResultSet の編集

    データベースウィザードでは、3 とおりの方法でストアドプロシージャーの ResultSet ノードを生成できます。「実行時」モード、「手動で」モード、および「アシスタンス」モードです。

    「実行時」モード 

    「実行時」モードでは、指定されたストアドプロシージャーをデフォルト値で実行して ResultSet を生成します。ストアドプロシージャーのビジネスロジックに基いて、0 個以上の ResultSet を実行結果として返すことができます。複数の ResultSet がある場合に、「実行時」モードですべての ResultSet が返されないときは、その他のモードを使用して ResultSet ノードを生成してください。 

    「アシスタンス」モード 

    「アシスタンス」モードでは、ユーザーがクエリーを指定し、それを実行して ResultSet ノードを生成できます。この操作を容易にするために、データベースウィザードは、指定されたストアドプロシージャーの内容を取得して表示しようとします。ただし、内容の取得は、全てのタイプのストアドプロシージャーでサポートされているわけではありません。ストアドプロシージャーは、SQL と外部の 2 種類に大きく分類できます。SQL ストアドプロシージャーは、CREATE PROCEDURE SQL 文を使用して作成されます。一方、外部ストアドプロシージャーは、Java などのホスト原語を使用して作成されます。外部ストアドプロシージャーでは、実行プランがデータベースに保存されないため、内容の取得はできません。「アシスタンス」モードを使用するときは、クエリーを実行する前に、テーブル名までを含めた実行文を強調表示させます。 

    「手動で」モード 

    「手動で」モードでは、もっとも柔軟な方法で ResultSet ノードを生成できます。このモードでは、ユーザーがノード名、元の列名、およびデータ型を手動で指定できます。この方法の欠点の 1 つは、ユーザーが元の列名やデータ型を知っている必要があることです。この方法は常に使用可能とは限りません。たとえば、次のクエリーに「3*C」という列名があります。 


    SELECT A, B, 3*C FROM table T

    これはデータベースによって生成されます。この場合は、「アシスタンス」モードの方が適しています。 

    データベースウィザードの「実行」モードで生成された ResultSet を変更する場合は、インデックスがストアドプロシージャーと一致していることを確認する必要があります。これにより、ResultSet インデックスが確実に保持されるようにします。 

  8. 手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「次へ」をクリックして操作を続行します。


    注 –

    状況によっては、条件文が使用されている場合に、Select 文を使用するストアドプロシージャーが Resultset を返さないことがあります。この場合、Resultset の available() メソッドが true を返したとしても、next() メソッドの呼び出し時にデータは返されません。この結果は、使用するドライバのタイプと整合します。



    注 –

    Select の使用に加えて、Insert、Update、および Delete 操作を使用する場合、そのストアドプロシージャーは、使用された各操作の結果を返します。Select 文の Resultset を返すだけの場合は、enableResultSetsOnly() メソッドを呼び出すことをお勧めします。


事前定義文の追加

事前定義文オブジェクトを OTD に追加します。

Procedure事前定義文を追加する

  1. 事前定義ステートメントの追加」ウィンドウで、「追加」をクリックします。

    図 1–51 事前定義ステートメント

    事前定義ステートメント

  2. 事前定義文の名前を入力するか、または「SQL ステートメント」ウィンドウ内でクリックして SQL 文を作成します。文の作成が完了したら、「名前をつけて保存」をクリックして文の名前を指定します。この名前は、OTD のノードとして表示されます。「了解」をクリックします。次の図を参照してください。

    図 1–52 事前定義 SQL ステートメント

    事前定義 SQL ステートメント

  3. 事前定義ステートメントの追加」ウィンドウに、事前定義文に割り当てた名前が表示されます。パラメータを編集するには、「パラメータの編集」をクリックします。データ型を変更するには、「タイプ」フィールドをクリックして、リストから別のタイプを選択します。

  4. 文にパラメータを追加する場合は、「追加」をクリックします。また、パラメータを削除する場合は、その行を強調表示させて「削除」をクリックします。「了解」をクリックします。次の図を参照してください。

    図 1–53 事前定義ステートメントパラメータの編集

    事前定義ステートメントパラメータの編集

  5. ResultSet 列を編集するには、「ResultSet 列の編集」をクリックします。「ResultSet 列」ウィンドウが表示されます。次の図を参照してください。

    図 1–54 ResultSet 列

    ResultSet 列

  6. 新しい ResultSet 列を追加するには、「追加」をクリックします。名前およびタイプも編集可能です。

  7. 了解」をクリックして「事前定義ステートメントの追加」ウィンドウに戻ります。

注意事項

事前定義文を使用するときは、ResultsAvailable() メソッドは常に true を返します。このメソッドは使用可能ですが、while ループでは使用しないでください。while ループで使用すると、実行時に無限ループに入り、すべての CPU 使用率がいっぱいになってしまいます。next() メソッドによるループで Resultset を処理できます。

事前定義文が正しくない場合、ResultSet 列数はゼロになります。

OTD 名の指定

Java CAPS IDE に表示する OTD の名前を指定します。

ProcedureOTD 名を指定する

  1. OTD の名前を入力します。OTD には、選択されたテーブルおよび生成されたクラスのパッケージ名が含まれます。次の図を参照してください。

    図 1–55 OTD 名の指定

    OTD 名の指定

  2. 次へ」をクリックします。

選択内容の確認

新しい OTD に関する選択内容を確認します。

ProcedureOTD の選択内容を確認する

  1. OTD の概要を確認します。間違った内容がある場合は、「戻る」をクリックし、その情報を修正します。

  2. OTD の情報に問題がない場合は、「完了」をクリックして OTD の生成を開始します。次の図を参照してください。

    結果の OTD が Java CAPS IDE に表示されます。

    図 1–56 データベースウィザード - 概要

    データベースウィザード - 概要