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