1

如果出现错误,我被要求尝试回滚一些数据库更改。

在我开始尝试使用带有 COMMIT 或 ROLLBACK 的 TRANSACTION 之前,有人可以告诉我是否可以在 MS Access 中执行以下操作吗?

void Start() {
  try {
    AccessDatabaseOpen(); // Opens the access database
    foreach (File in FileList) {
      AccessTransactionStart(); // Starts the Transaction
      AccessWriteSectionDataFromFile();
      AccessWriteEmployeeDataFromFile();
      AccessWriteSomethingElseFromFile();
    } // go to next File in FileList
    AccessTransactionCommit();
  } catch {
    AccessTransactionRollback();
  } finally {
    AccessDatabaseClose();
  }
}

语法很糟糕,但你应该明白这一点:代码中的例程可以启动事务,调用其他几个例程,然后提交或回滚整个事情,还是这个想法让人相信?

谢谢,乔

4

1 回答 1

1

代码中的例程是否可以启动事务、调用其他几个例程并提交或回滚整个事情

是的,这是事务处理的基本思想,您概述的示例将是从代码处理它们的标准方法。细节将根据特定情况/需求以及所使用的数据库系统(例如嵌套事务、范围、并发处理等)而有所不同。

如果涉及数据库抽象层,请检查其细节,因为它们通常带有一些通常可以通过某些设置/参数配置的隐式事务处理。

于 2009-08-31T15:26:26.893 回答