ASP中的事务处理

这个项目使用ASP,其中一个页面要同时更新两个数据库的表,翻了翻MSDN之后,了解到使用@Transaction可以控制页面的事务,再使用ObjectContext.SetAbort或ObjectContext.SetComplete方法就可以了。基于Component Service的事务处理就是这么简单!

下面是我写的代码测试:
 1None.gif<% @Transaction = Required %>
 2None.gif<Option Explicit %>
 3None.gif< %
 4
None.gif
 5None.gifDim
 con1, con2
 6None.gifDim
 rs1, rs2
 7
None.gif
 8None.gifOn Error Resume Next

 9None.gifRandomize
10 None.gif
11None.gif' Open Connection

12None.gifSet con1 = Server.CreateObject("ADODB.Connection" )
13None.gifSet con2 = Server.CreateObject("ADODB.Connection"
)
14
None.gif
15None.gifcon1.Open "provider=sqloledb.1; data source=192.168.107.102; user id=sa; password=123456; initial catalog=northwind"

16None.gifcon2.Open "provider=sqloledb.1; data source=192.168.107.97; user id=sa; password=sa; initial catalog=northwind"
17 None.gif
18None.gif' Open Recordset

19None.gifSet rs1 = Server.CreateObject("ADODB.Recordset" )
20None.gifSet rs2 = Server.CreateObject("ADODB.Recordset"
)
21
None.gif
22None.gifrs1.Open "SELECT * FROM T_ADO1", con1, 13

23None.gifrs2.Open "SELECT * FROM T_ADO2", con2, 13
24 None.gif
25None.gif' AddNew Record

26None.gif rs1.AddNew
27None.gifrs1("num"= Rnd() * 100

28 None.gifrs1.Update
29
None.gif
30
None.gifrs2.AddNew
31None.gifrs2("num"= Rnd() * 100

32 None.gifrs2.Update
33
None.gif
34None.gif' Raise Error Or Not

35None.gifIf Request.QueryString("error"= 1 Then
36None.gif    tempNumber = CInt("abc" )
37None.gifEnd If

38 None.gif
39None.gif' If Error Occured, Rollback Transaction

40None.gifIf Err.Number <> 0 Then
41 None.gif    ObjectContext.SetAbort
42None.gif    Response.Write Err.Number & "<br>" &
 Err.Description
43None.gifElse

44None.gif    Response.Write "OK"
45None.gifEnd If
46 None.gif
47None.gif' Close Recordset

48None.gifIf Not (rs1 Is NothingThen
49 None.gif    rs1.Close
50None.gifEnd If

51None.gifIf Not (rs2 Is NothingThen
52 None.gif    rs2.Close
53None.gifEnd If

54 None.gif
55None.gifSet rs1 = Nothing

56None.gifSet rs2 = Nothing
57 None.gif
58
None.gif
59None.gif' Close Connection

60None.gifIf Not (con1 Is NothingThen
61 None.gif    con1.Close
62None.gifEnd If

63None.gifIf Not (con2 Is NothingThen
64 None.gif    con2.Close
65None.gifEnd If

66 None.gif
67None.gifSet con1 = Nothing

68None.gifSet con2 = Nothing
69 None.gif
70None.gif%>

转载于:https://www.cnblogs.com/gucsnet/archive/2005/11/28/286044.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值