データベースの整合性
ObjectScript には、データベースの整合性を維持するためのコマンド、Lock、TStart、および TCommit があります。ObjectScript.Lookup2 に削除と編集の機能を追加する準備として、これらのコマンドを学習しておく必要があります。以下はコマンドの一般的な使用方法です。
-
修正するレコードを選択
-
レコードを Lock
-
更新データを取得
-
トランザクションを TStart
-
新規データを格納
-
トランザクションを TCommit
-
レコードの Lock を解除
Lock コマンドを使用すると、複数のユーザが同じレコードを同時に更新しようとする競合プロセスを防ぐことができます。ただし、規約に従った動作のみ行います。指定されたグローバルを更新するアプリケーションのコードはすべて、更新するレコードを必ず Lock するよう試みる必要があり、終了後は Lock を解除する必要があります。メソッドによって Lock を使用しているものとしていないものがある場合は、前者のメソッドがレコードをロックするのに対し、後者のメソッドはレコードを更新します。
TStart コマンドと TCommit コマンドを使用すると、データベース・トランザクションを保護できます。トランザクションとは、Set コマンド、あるいは Kill コマンドによるデータベースでの一連の処理のことです。すべてのトランザクションを完了させるか、あるいはまったく実行しないかのどちらかにする必要があります。これにより、トランザクションのすべてのグローバル (例えばデータとインデックスの両方) が同期の状態を保ちます。