7.76.1 INSERT のパラメータ

AUTOCOMMIT

CHECK_ONLY

FIELDS

IO_ERROR

IO_STATUS

ISSUE_MSG

RETURN_RRN

TO_FILE

VAL_ERROR

FIELDS

ファイルに挿入するフィールド、または挿入するフィールドを指定するグループの名前を指定します。

または、このパラメータに拡張可能なグループ式を入力することもできます。詳細については、「拡張可能グループ」を参照してください。以下の特別な値を指定できます。

注:OTHERによって保守されている論理ファイルからすべてのフィールドを挿入すると、基になっている物理ファイルのすべてのフィールドがフィールド・リストに含められます。

パラメータFIELDSでは、特別な値*ALL、*ALL_REAL、または*ALL_VIRTを必要な場合にのみ慎重に使用することを強くお勧めします。必要のないフィールドを挿入すると、クロスリファレンスの詳細(ファンクション内で使用されていないフィールドを示す)が無効になり、ファンクションのCRUDE項目の複雑度が無意味に高くなります。

TO_FILE

「I/Oコマンドでのファイル名の指定」を参照してください。

IO_STATUS

I/O操作の結果の「戻りコード」を受け取るフィールドの名前を指定します。

デフォルト値*STATUSを指定すると、戻りコードは、#IO$STSという特別なフィールドに保管されます。このフィールドは、他のフィールドと同様にRDMLプログラムで参照できます。

戻りコードを受け取るフィールドとしてユーザー・フィールドを指定する場合、このフィールドは、長さ2文字の英数字フィールドである必要があります。ユーザー・フィールドを指定した場合も、特別なフィールド#IO$STSは更新されます。

値については、「RDML I/O戻りコード」を参照してください。

IO_ERROR

このコマンドの実行時にI/Oエラーが発生した場合に実行するアクションを指定します。

I/Oエラーは、「致命的」エラーと見なされます。ファイルが見つからなかった、ファイルが壊れている、ファイルを割り当てることができない、などがこれに該当します。これらのタイプのエラーが発生すると、ファンクションにおいて、そのファイルが関与しているすべての処理が停止します。

デフォルト値*ABORTを指定すると、ファンクションが異常終了し、I/Oエラーの性質を示すエラー・メッセージが発行されます。

*NEXTを指定すると、制御が次のコマンドに渡されます。*NEXTは、デフォルトのABORTを使用するのではなく、エラー・メッセージをRDMLで処理し、次にABORTで処理できるようにすることを目的としています(LANSA/ADおよびVisual LANSAの処理を続行することもできますが、この方法でLANSAを使用することはお勧めしません)。
データベース操作から返されるERは致命的エラーです。この場合、LANSAは、処理が続行されないものと想定します。IOモジュールがリセットされ、以降のIOは、そのファイルでこれまでにIOが行われなかったかのように実行されます。そのため、ファイルの状態について推定を行わないでください。例えば、最後に読み取られたレコードは設定されません。IO_ERRORの特別なケースとして、TRIG_RETCでERを返すようトリガー・ファンクションがコード化されている場合があります。上記の説明は、このケースにも当てはまります。
したがって、LANSAでは、さらにIOを実行する前にABORTまたはEXIT以外の何らかの処理を実行する目的で、トリガー・ファンクションから返された戻りコードERを使用しないことをお勧めします。

*RETURNを指定すると、プログラム・メインラインでは制御が呼び出し元に戻され、サブルーチンでは制御が呼び出し元ルーチンまたはプログラム・メインラインに戻されます。

上記の値をどれも使用しない場合は、制御を渡す先の有効なコマンド・ラベルを指定してください。

VAL_ERROR

このコマンドで妥当性検査エラーが検出された場合に実行するアクションを指定します。

妥当性検査エラーは、ファイルに対して追加、更新、または削除を行う情報が、そのファイル内のフィールドに関連付けられたFILEまたはDICTIONARYレベルの妥当性検査に合格しなかった場合に発生します。

デフォルト値*LASTDISを指定した場合、直前に表示されていた画面に制御が戻されます。この画面では、関連付けられた妥当性検査に失敗したフィールドが反転表示され、エラーのある最初のフィールドにカーソルが配置されます。

*NEXTを指定すると、制御が次のコマンドに渡されます。

*RETURNを指定すると、プログラム・メインラインでは制御が呼び出し元に戻され、サブルーチンでは制御が呼び出し元ルーチンまたはプログラム・メインラインに戻されます。

上記の値をどれも使用しない場合は、制御を渡す先の有効なコマンド・ラベルを指定してください。

*LASTDISは、「直前の表示画面」がない場合(バッチ・ファンクション内など)でも有効です。この場合、ファンクションが異常終了し、該当するエラー・メッセージが発行されます。

*LASTDISを使用する場合、「直前の表示画面」は、データベース・コマンド(INSERT、UPDATE、DELETE、FETCH、およびSELECT)と同じレベルでなければなりません。データベース・コマンドがSUBROUTINE内で指定され、「直前の表示画面」が呼び出し元ルーチンまたはメインラインの場合など、レベルが異なるとこのファンクションは異常終了し、該当するエラー・メッセージが発行されます。

これは、Visual LANSAでイベント・ルーチンとメソッド・ルーチンを使用する場合には当てはまりません。これらの場合、制御は呼び出しルーチンに戻されます。フィールドには、エラーがあることと、フォームの親階層で見つかった最初のステータス・パーに返されたメッセージが表示されます。または、メッセージがない場合は、実行スタック内で見つかったステータス・バーを持つ最初のフォーム(PRIM_OBJTから継承した再利用可能パーツなど)が表示されます。

ISSUE_MSG

このパラメータは他のパラメータと機能が重複しています。値を指定しても何の効果もありません。

デフォルト値は*NOです。

*NO以外に指定できる値は*YESのみです。

RETURN_RRN

挿入されたレコードの相対レコード番号を返す先のフィールドの名前を指定します。

このパラメータで指定するフィールドは、数値タイプで、このファンクションまたはLANSAデータ・ディクショナリで定義されていなければなりません。

詳細については、『Visual LANSA 開発者ガイド』「外部ファイルの読み込み」を参照してください。

CHECK_ONLY

I/O操作を実際に実行するか、実際に実行したときにファイルおよびデータ・ディクショナリ・レベルの妥当性検査の条件をすべて満たすことができるかを検査するために「シミュレーション」のみを行うかを指定します。

デフォルト値*NOを指定した場合、I/O操作は通常の方法で実行されます。

*YESを指定した場合、ファイルおよびデータ・ディクショナリ・レベルの検査の条件をすべて満たすことができるかどうかを確認するために、I/O操作がシミュレートされます。このオプションを使用した場合、この検査に関与するデータベース・ファイルがいかなる形でも変更されることはありません。

AUTOCOMMIT

LANSAリリース4.0プログラム変更レベルE5により、このパラメータは、他のパラメータと機能が重複しています。

コミット制御を使用するには、アプリケーションでCOMMITまたはROLLBACKコマンド、あるいはその両方を指定してください。

通常は、COMMITコマンドのみが必要です。

IBM iでのコミット制御の関連については、『LANSA A/D ユーザーガイド』「コミット制御を使用する」を参照してください。

移植性に関する考慮事項

Visual LANSAを使用している場合は、『LANSAアプリケーション設計ガイド』コミット制御を参照してください。