オブジェクトを変更するために、BimRv は現在、開発者がいつでも永続的なデータベース状態を達成し、ロールバックメカニズムを実装できる明示的なトランザクションメカニズムを使用しています。この新しいメカニズムは、デバッグの複雑さを軽減し、オープンモード切り替えに関する問題を排除します。
明示的なトランザクションを使用するには、トランザクションを開始した後にデータ変更呼び出しを呼び出す必要があります。そうしないと、例外がスローされます。
トランザクションを開く最も簡単な方法は、トランザクションブロックを使用することです。典型的な例を次に示します。
ODBM_TRANSACTION_BEGIN(transaction_name, pointer_to_database) transaction_name.start(); /* modification calls */
const bool some_condition = /* whatever condition is required */;
if (some_condition) {
transaction_name.commit();
} else {
transaction_name.rollback();
}
ODBM_TRANSACTION_END()
これらはコードの主要なポイントです。
- transaction_name.start(); — 「transaction_name」という名前のトランザクションを開始します。
- transaction_name.commit(); — トランザクション中に加えられた変更をコミットします。
- transaction_name.rollback(); — トランザクション中に加えられた変更を元に戻します。
「start」または「rollback」のいずれかでトランザクションが閉じられ、それ以上の変更はできません。 新しい明示的なトランザクションメカニズムは、ODA BimRv のバージョン 20.6 以前で使用されていた暗黙的なトランザクションメカニズムに取って代わります。