事前定義文 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 文を変更することによって解決されます。
「事前定義ステートメントの追加」ダイアログボックスで、「了解」をクリックします。