メインコンテンツまでスキップ
バージョン: 21 R3

Locked

Locked ( aTable : Table ) : Boolean

引数型説明
aTableTable→ロックを検証するレコードが属するテーブル, または 省略時、デフォルトテーブル
戻り値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
レコードのロック

プロパティ​

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