変更の始まり

VALIDATE(*NODATETIME)

VALIDATE キーワードは、日付データ、時刻データ、およびタイム・スタンプ・データ が、使用される前に検証される必要があるかどうかを指定します。

このキーワードが指定されていない場合、日付データ、時刻データ、およびタイム・スタンプ・データは、 使用される前に検証されます。

*NODATETIME が指定されている場合、コンパイラーは、 日付データ、時刻データ、およびタイム・スタンプ・データの検証の実行を省略します。

このキーワードを指定することによって RPG プログラムのパフォーマンスが向上する可能性があります。 場合によっては、コンパイラーは、日付データ、時刻データ、およびタイム・スタンプ・データ を英数字データであるかのように扱って、実際の日付データ、時刻データ、およびタイム・スタンプ・データを処理する高コストの操作を 回避できます。

VALIDATE(*NODATETIME) で検証が省略されるいくつかの例を以下に示します。
注意:

検証が行われないと、不正データは検出されません。

このキーワードは、すべての日付フィールド、時刻フィールド、およびタイム・スタンプ・フィールドに含まれているデータが 常に有効であると確信できる場合にのみ使用してください。 例えば、デフォルトの初期設定がブランクであるデータ構造の場合、 日付サブフィールド、時刻サブフィールド、およびタイム・スタンプ・サブフィールドは、 無効な値であるブランクで初期化されます。 VALIDATE(*NODATETIME) を指定して、これらのサブフィールドのいずれかを 使用した場合、無効なデータが操作で使用されることになります。さらに、代入を介してプログラム内の他のフィールドに 無効データが伝搬されたり、比較操作で無意味な結果になったりする可能性があります。

この注意事項は、省略される検証のリストに入っていない、日付、時刻、およびタイム・スタンプの操作 にも当てはまります。 将来、VALIDATE(*NODATETIME) が指定された場合に省略される検証が追加 される可能性があります。

推奨事項:
変更の終わり