Locked
Locked {( aTable )} -> 戻り値
引数 | 型 | 説明 | |
---|---|---|---|
aTable | Table | → | ロックを検証するレコードが属するテーブル, または 省略時、デフォルトテーブル |
戻り値 | Boolean | ← | TRUE: レコードはロックされている FALSE: レコードはロックされていない |
説明
Lockedは、aTableのカレントレコードがロックされているかを調べます。このコマンドを使用してレコードがロックされているかどうかを調べた後、レコードが開放されるまで待機するか、処理をスキップするかの選択をユーザに与える等の適切な処理を行ってください。
Locked がTRUE を返す場合、レコードは他のユーザまたはプロセスによりロックされているか、カレントプロセスでスタックされており、レコードを保存することはできません。この場合には、LOAD RECORD コマンドを使用して、LockedがFALSE を返すまでレコードのロードを繰り返します。
LockedがFALSE を返す場合、レコードはアンロックされています。これはレコードが他のすべてのユーザに対してロックされることを意味します。ローカルユーザまたはカレントプロセスだけがレコードを修正、保存できます。レコードを修正するには、テーブルが読み書き状態でなければなりません。
削除されたレコードをロードしようとすると、LockedはTRUE を返し続けます。存在しないレコードをこれ以上待機しないために、LOCKED BY コマンドを使用します。レコードが削除されている場合、LOCKED BY コマンドはプロセス引数に-1を返します。
Note: aTableにカレントレコードが存在しない場合、言い換えればRecord number が-1を返す時、LockedはFALSE を返します。
トランザクション処理の実行中、レコードがロックされているかどうかを調べるためにLOAD RECORD とLockedがしばしば使用しされます。レコードがロックされている場合、トランザクション処理をキャンセルするのが一般的です。
参照
Locked records info
LOAD RECORD
LOCKED BY
レコードのロック