メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Locked

Locked {( aTable )} : Boolean

引数説明
aTableTableロックを検証するレコードが属するテーブル, または 省略時、デフォルトテーブル
戻り値BooleanTRUE: レコードはロックされている 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 RECORDLockedがしばしば使用しされます。レコードがロックされている場合、トランザクション処理をキャンセルするのが一般的です。

参照

Locked records info
LOAD RECORD
LOCKED BY
レコードのロック

プロパティ

コマンド番号147
スレッドセーフである