外部ファイルについての考慮事項
一般的に、外部ファイルの定義はすべて同じでなければなりません。
不一致があると、始動時に各種定義が比較されるとプログラムは失敗します。
外部ファイルの属性は、次のように比較されます。
- ファイルに対応するいずれかの定義が外部記述されている (例えば、COPY ステートメントの形式 2 を使って) と、他の定義もすべて外部記述されていなければなりません。 すべての定義に関連したレベル検査情報は、一致していなければなりません。
- ASSIGN TO 文節に指定された名前は、すべての定義で同じでなければなりません。 これには、装置タイプも含まれます。
- ファイルのすべての定義で、ORGANIZATION モードと ACCESS モードは同じでなければなりません。
- OPTIONAL 句は、指定するなら、ファイルのすべての定義に対して指定しなければなりません。
- RELATIVE KEY 句に指定する外部データ項目は、ファイルのどの定義でも、同じ物理位置にあってしかも同じバイト数を占めていなければなりません。
- 関連したレコード内のレコード・キーの位置は、ファイルのどの定義でも同じでなければなりません。
- ファイルに関連したブロック化情報は、ファイルのどの定義でも同じでなければなりません。 これには、ブロック化を実行するかどうかと、ブロック・サイズも含まれます。
- RECORD 文節の最大または最小文字数の値は、ファイルのどの定義でも同じでなければなりません。
- CODE-SET 文節に指定された文字セットは、ファイルのどの定義でも同じでなければなりません。
- DUPLICATES 句に指定された値は、ファイルのどの定義でも同じでなければなりません。
- LINAGE 文節に指定された値は、ファイルのどの定義でもすべて同じでなければなりません。
- ASSIGN 文節の属性の指定 (別々の標識) は、ファイルのどの定義でも同じでなければなりません。
- COMMITMENT CONTROL 文節の指定は、ファイルのどの定義でも同じでなければなりません。
- ファイルの定義の入ったすべてのモジュールで、*DUPKEYCHK または *INZDLT コンパイル時オプションの指定は同じでなければなりません。
- コマンド CRTCBLMOD または CRTBNDCBL 用の CCSID パラメーターの指定は、当該ファイルの定義を含むすべてのモジュールについて同一でなければなりません。