代码之家  ›  专栏  ›  技术社区  ›  jp2code

通过提交和回滚访问代码中的事务

  •  1
  • jp2code  · 技术社区  · 15 年前

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

    在我开始尝试使用提交或回滚事务之前,有人能告诉我是否可以在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 回复  |  直到 15 年前
        1
  •  1
  •   Henrik Opel    15 年前

    代码中的例程能否启动 交易,呼叫其他几个 例行程序,提交或 回滚整个事件

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

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