不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
什么时候需要事务处理
编辑:dnawo 日期:2006-12-04
昨天对事务处理进行了深入的了解一番,之后突然冒出一个问题:什么时候需要事务处理?众所周知,使用事务处理能使一系列操作"同生共死",在很在程度上保证了程序的可用性,但却不能因此而滥用,如下程序:
<%
Dim conn,sqlstr
Set conn=server.createobject("ADODB.connection")
Conn.connectionstring="provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("db1.mdb")
Conn.open
sqlstr="insert into test(name) values('aaa')"
On error resume next
Conn.BeginTrans
conn.execute(sqlstr)
If err.number = 0 then
Conn.CommitTrans
Response.write ""
Else
Conn.RollbackTrans
Response.write ""
End if
On Error GoTo 0
Conn.close
Set conn=nothing
%>
整个过程只有一个操作,在此段程序中,事务处理完全是形同虚设,完全可以除去,再看下边这段程序:
<%
Dim conn,sqlstr,sqlstr2,sqlstr3
Set conn=server.createobject("ADODB.connection")
Conn.connectionstring="provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("db1.mdb")
Conn.open
sqlstr="insert into test(name) values('aaa')" '正确的SQL语句
sqlstr2="insert into test(name2) values('bbb')" '错误的SQL语句
sqlstr3="insert into test(name) values('ccc')" '正确的SQL语句
On error resume next
Conn.BeginTrans
conn.execute(sqlstr)
conn.execute(sqlstr2)
conn.execute(sqlstr3)
If err.number = 0 then
Conn.CommitTrans
Response.write ""
Else
Conn.RollbackTrans
Response.write ""
End if
On Error GoTo 0
Conn.close
Set conn=nothing
%>
当执行第二条错误的SQL语句时,第二个操作失败,事务处理机制生效,第一个操作也随之无效,在此,事务处理起到了作用。
可见,事务处理只有用在一系列有关系的操作时方能显示出其作用,对于单个操作没有实际的意义。
<%
Dim conn,sqlstr
Set conn=server.createobject("ADODB.connection")
Conn.connectionstring="provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("db1.mdb")
Conn.open
sqlstr="insert into test(name) values('aaa')"
On error resume next
Conn.BeginTrans
conn.execute(sqlstr)
If err.number = 0 then
Conn.CommitTrans
Response.write ""
Else
Conn.RollbackTrans
Response.write ""
End if
On Error GoTo 0
Conn.close
Set conn=nothing
%>
整个过程只有一个操作,在此段程序中,事务处理完全是形同虚设,完全可以除去,再看下边这段程序:
<%
Dim conn,sqlstr,sqlstr2,sqlstr3
Set conn=server.createobject("ADODB.connection")
Conn.connectionstring="provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("db1.mdb")
Conn.open
sqlstr="insert into test(name) values('aaa')" '正确的SQL语句
sqlstr2="insert into test(name2) values('bbb')" '错误的SQL语句
sqlstr3="insert into test(name) values('ccc')" '正确的SQL语句
On error resume next
Conn.BeginTrans
conn.execute(sqlstr)
conn.execute(sqlstr2)
conn.execute(sqlstr3)
If err.number = 0 then
Conn.CommitTrans
Response.write ""
Else
Conn.RollbackTrans
Response.write ""
End if
On Error GoTo 0
Conn.close
Set conn=nothing
%>
当执行第二条错误的SQL语句时,第二个操作失败,事务处理机制生效,第一个操作也随之无效,在此,事务处理起到了作用。
可见,事务处理只有用在一系列有关系的操作时方能显示出其作用,对于单个操作没有实际的意义。
评论: 1 | 引用: 0 | 查看次数: 4938
发表评论
请登录后再发表评论!