[返回博客](/cn/blog) # 在 BimRv 中使用显式事务机制

Alexey Korolev 七月 02, 2020 [\#rfa](/cn/blog/tag/rfa) [\#rvt](/cn/blog/tag/rvt)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

为了修改对象，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 版本之前使用的隐式事务机制。

## 今天就开始行动

**免费试用 ODA 软件 60 天。  
无风险，无需信用卡。**

[免费试用](https://www.opendesign.com/cn/free-trial)
