BLOCK(*YES |*NO)
BLOCK キーワードは、ファイルと関連したレコードのブロック化を制御します。 このキーワードが有効なのは、DISK または SEQ ファイルの場合だけです。
このキーワードを指定しない場合、以下の条件を満たしていれば、RPG コンパイラー
は入力レコードを非ブロック化し、出力レコードをブロック化
して、SEQ または DISK ファイルの実行時パフォーマンスを改善します。
- ファイルはプログラム記述であるか、または 1 つのレコード様式だけを含む
外部記述である。
- ファイル仕様書でキーワード RECNO が使用されていない。
注:
RECNO を使用した場合、ILE RPG コンパイラーはレコードのブロック化を許可しません。ただし、ファイルが入力ファイルの場合には、RECNO を使用しても、高速順次アクセスが
設定されていれば、データ管理機能は依然としてレコードをブロック化することがあります。 これは、更新レコードがただちに検出されない可能性があることを意味します。
- 次の 1 つが真である。
- ファイルは出力ファイルである。
- ファイルが入出力共用ファイルである場合には、それが配列またはテーブル
・ファイルである。
- ファイルが入力専用ファイルである場合には、それがレコード・アドレス・
ファイルでないかまたはレコード・アドレス・ファイルによって処理されるもの
ではなく、ファイルで READE、READPE、SETGT、SETLL、および CHAIN 命令が使用されていない。(READE または READPE 命令が
使用されている場合には、入力ファイルのレコードのブロック化は行われません。SETGT、SETLL、または CHAIN 命令が使用されている場合、BLOCK(*YES) キーワードが
指定されていなければ、入力ファイルのレコードのブロック化は行われません。)
BLOCK(*YES) が指定されている場合、レコードのブロック化は上記のように
行われます。ただし、入力ファイルで SETLL、SETGT、および CHAIN 命令を使用
することができ、なおかつ、ブロック化が依然として行われます (上記の 3c を参照)。 レコードのブロック化を防ぐために、BLOCK(*NO) を指定することができます。 そうすれば、レコードのブロック化はコンパイラーによって行われません。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.