使用提交和回滚访问代码中的事务

时间:2009-08-31 04:41:37

标签: sql transactions commit rollback

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

在我开始尝试将REPACTION用于COMMIT或ROLLBACK之前,有人可以告诉我是否可以在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();
  }
}

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

谢谢, 乔

1 个答案:

答案 0 :(得分:1)

  

代码中的例程可以启动吗?   交易,打电话给其他几个   例程,并提交或   回滚整个事情

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

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