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

外部記述ファイルにヌル値可能フィールドが含まれてい て、ALWNULL(*USRCTL) キーワードが制御仕様書に指定されて いる場合には、以下が可能になります。
  • 外部記述データベース・ファイルから、ヌル値を含むレコードを 読み取り書き出し、更新し、削除すること。
  • そのフィールドに関連した KFLD の演算項目 2 に標識を指定する ことによって、キー順命令を使用して、 ヌル値キーを含むレコードを検索し、位置付けること。
  • 式の右側の %NULLIND 組み込み関数を使用して、 ヌル値可能フィールドが実際にヌルであるかどうかを判別すること。
  • 標識の左側の %NULLIND 組み込み関数を使用して、 出力または更新のためにヌル値可能フィールドをヌルに設定すること。

変更の始まりNULLIND キーワードを使用してヌル可能フィールドを定義した場合は、%NULLIND を使用する代わりに、NULLIND キーワードのパラメーターとして指定されたヌル標識を使用することもできます。変更の終わり

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

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

フィールドが RPG プログラム内でヌル値可能と見なされているときは、 ヌル標識がそのフィールドに関連付けられます。 以下の点に注意してください。
  • フィールドが複数オカレンス・データ構造またはテーブルである場合、 ヌル標識の配列がそのフィールドと関連付けられます。 各ヌル標識は、テーブルのデータ構造または要素のオカレンスに対応します。
  • そのフィールドが配列要素である場合、配列全体がヌル値可能と 見なされます。 ヌル標識の配列はその配列と関連付けられ、各ヌル標識は配列要素に対応します。
  • フィールドが、複数オカレンス・データ構造の配列サブフィールドの要素である 場合、ヌル標識の配列が、データ構造の各オカレンスごとに配列と 関連付けられます。

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