|
Unlock オペレーション(B_UNLOCK)では、明示的にロックされている 1 つまたは複数のレコード(つまり、ロック バイアス +100、+200、+300 または +400 を使ってロックされたレコード)のロックを解除します。Unlock オペレーションは指定したポジション ブロックで保持されているロックを解除するので、同一ファイルを複数回開いた場合は、ポジション ブロックごとに Unlock オペレーションを発行しなければ、レコードのロックは完全に解除されません。同様に、ファイル内のレコードに対しロックを保持している各クライアントが Unlock オペレーションを発行しなければ、レコードのロックは完全に解除されません。
少なくとも 1 つのレコードがロックされていることが必要です。
単一レコード ロックを解除するには、次の手順に従います。
複数レコード ロックが設定されている 1 つのレコードのロックを解除するには、まずそのレコードを対象に Get Position オペレーション(22)を発行し、ロックを解除するレコードの 4 バイト物理位置を取得します。その後、次の手順に従って Unlock オペレーションを発行します。
ファイル上の複数レコード ロックをすべて解除するには、次の手順に従います。
Unlock オペレーションが正常に終了した場合、トランザクショナル インターフェイスではオペレーションで指定したロックがすべて解除されます。
Unlock オペレーションが正常に実行されなかった場合は、トランザクショナル インターフェイスから 0 以外のステータス コード、たいていはステータス コード 81 が返されます。
Unlock オペレーションは、ポジショニングにまったく影響しません。
|