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