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