如何在数据库中用好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
% >
在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
% >