如何在数据库中用好Transaction?

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

  % >