ヌル値可能フィールドおよびキー・フィールドに対するユーザー制御サポート

外部記述ファイルにヌル値可能フィールドが含まれてい て、ALWNULL(*USRCTL) キーワードが制御仕様書に指定されて いる場合には、以下が可能になります。
ヌル値を含むフィールドをプログラム内で正しく使用することは、 各自の責任で行っていただきます。 たとえば、ヌル値可能フィールドを、MOVE 命令の演算項目 2 として 使用する場合、MOVE を実行する前に、まず最初にそれがヌルであるかどうかを チェックする必要があります。これを行わないと、結果フィールド値が 失われる恐れがあります。また、ヌル値可能フィールドを、ヌル値可能と定義されていないフィールドを含む ファイル (たとえば、WORKSTN または PRINTER ファイル、あるいは プログラム記述ファイルなど) に出力するときにも、注意が必要です。
注: ヌル値可能フィールドのヌル標識の値は、入力、出力、およびファイル位置付け の命令の場合にのみ、考慮されます。 以下に、ヌル標識が考慮に入れられない命令の例をいくつか示します。
  • ヌル値可能フィールドの DSPLY が、ヌル標識がオンになっている場合でも フィールドの内容を示します。
  • ヌル値可能フィールドを別のヌル値可能フィールドに転送し、 演算項目 2 フィールドのヌル標識がオンになっている場合、結果フィールドは その演算項目 2 フィールドからデータを入手します。 結果フィールドの対応するヌル標識はオンに設定されません。
  • ヌル値可能フィールドとの比較命令 (SORTA および LOOKUP を含む) は、 ヌル標識を考慮に入れません。

フィールドは、それが外部記述データベース・レコード内で ヌル値可能であり、プログラム内の定数として定義されていない場合 に、ヌル値可能と見なされます。

フィールドが RPG プログラム内でヌル値可能と見なされているときは、 ヌル標識がそのフィールドに関連付けられます。 以下の点に注意してください。

ヌル標識は、プログラムの初期化時にゼロに初期化されるので、 プログラムの実行開始時点ではヌル値可能フィールドにはヌル値は含まれていません。