「手続きの選択と結果セットおよびパラメータ情報の指定」ウィンドウで、「追加」をクリックします。
手続きの完全修飾名は、スキーマ名とストアドプロシージャーテーブル名の 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() メソッドを呼び出すことをお勧めします。