2009-08-31 124 views
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(); 
    } 
} 

的語法是蹩腳的,但你應該明白了吧:在代碼中的程序可以啓動一個事務,調用其他幾個例程,並提交或回滾整個事情,或者這種想法使我相信?

謝謝, 喬

回答

1

可以在代碼的程序啓動 事務,調用其他幾個 程序,並提交或 回滾整個事情

是的,這是交易處理的基本思想和你的概述的例子將是一個標準的方法來處理它們的代碼。細節取決於特定的情況/需求,當然還有所使用的數據庫系統(例如,嵌套事務,範圍,併發處理等)。

如果涉及數據庫抽象層,請檢查它的具體情況,因爲它們通常帶有一些隱式事務處理,通常可以通過某些設置/參數進行配置。