如果出现错误,我被要求尝试回滚一些数据库更改。
在我开始尝试将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();
}
}
语法很糟糕,但你应该明白:代码中的例程可以启动一个事务,调用其他几个例程,然后提交或回滚整个事情,或者这个想法是否相信?
谢谢, 乔
答案 0 :(得分:1)
代码中的例程可以启动吗? 交易,打电话给其他几个 例程,并提交或 回滚整个事情
是的,这是事务处理的基本思想,您概述的示例将是从代码处理它们的标准方法。细节将根据特定情况/需求而变化,当然还有所使用的数据库系统(例如嵌套事务,范围,并发处理等)。
如果涉及数据库抽象层,请检查其具体情况,因为它们通常带有一些隐式事务处理,通常可以通过某些设置/参数进行配置。