如何在資料庫中用好Transaction?
在ASP的實際操作中,總是會發生這樣的情況,如在銀行,從我的帳戶往費文華的帳戶劃款,
我的帳戶顯示已經劃出,但因銀行的系統故障,導致費文華帳戶的資料庫變更失敗,
這應該怎麼處理呢?我帳戶的金額應該沒有損失吧?
你的利益當然沒有損失,已經更改的帳戶資料庫資料會自動恢復。
這裡用到的就是互動功能(TRANSACTION),它是由IIS與MTS(Mircrosoft Transaction Server)
共同完成的。它的功能就是:當ASP程式中所有的資料庫的變更都成功時,才算成功;如果其中有一
個資料庫變更失敗,則其它業已變更的資料庫記錄都將自動復原。
SQL SERVER和ORACLE資料庫都提供了互動功能,但ACCESS沒有提供。
這種互動功能作用於一個ASP程式的範圍,就是說,凡是涉及到這個程式的所有的資料庫都有互動功能。
方法是在ASP程式的第一行加上:
TRANSACTION=Required
以告訴IIS本程式要使用互動的功能,具體ASP程式:
< %@ TRANSACTION=Required LANGUAGE=VBScript% >
……
< % Set obj1 = Server.CreateObject(testobj.cls1)% >
< % = obj1.data3t(1,10)% >
< %
Sub OnTransactionCommit()
……
End Sub
Sub OnTransactionAbort()
……
End Sub
% >