レコードのロック
レコードがプログラムによって読み取られる時には、入力または更新の 2 つの モードのいずれかで読み取られます。 プログラムが更新用にレコードを読み取る場合には、そのレコードは ロック状態になります。 最初のプログラムがそのロックを解除するまで、別のプログラムが更新用に同 じレコードを読み取ることはできません。 プログラムが入力用にレコードを読み取る場合には、そのレコードは ロック状態になりません。 あるプログラムによってロックされたレコードは、別のプログラムによって入 力用に読み取ることは可能です。
RPG IV プログラムでは、更新用のレコード読み取りには更新ファイルを使います。更新以外のタイプのファイルから読み取るレコードは、照会用にしか読み取 ることはできません。 デフォルトでは、更新ファイルから読み取られるレコードはすべて、更新用に 読み取られます。 更新ファイルの場合には、入力命令 CHAIN、READ、READE、READP、または READPE の 1 つを使用し、命令コード・フィールドの命令コード名の次に 命令コードの拡張 (N) を指定して、レコードが入力用に読み取られるように指定す ることができます。
- レコードが更新される
- レコードが削除される
- 別のレコードがファイルから (照会または更新のいずれかで) 読み取られる
- ファイルに対して SETLL または SETGT 命令が実行される
- ファイルに対して UNLOCK 命令が実行される
- ファイルに対してフィールド名がない出力仕様書によって定義された出力
命令が実行される
注: ファイルにレコードを追加する出力命令では、レコードのロックは 解除されません。
ロックされたレコードに変更が必要でない場合には、ファイルのカーソルを変 更せずに、UNLOCK 命令を使用するか、またはフィールド名のない出力仕様書を処理することによって、そのレコードをロック状態から解除することができま す。 これらの出力命令は、EXCEPT 出力、明細出力、または合計出力によって処理す ることができます。
(コミットメント制御の下で操作する時には、これらの規則に例外があります。 詳細については、コミットメント制御の使用を参照してください。)