点晴MIS内部交流论坛加入收藏
新手上路
论坛搜索
 您的位置:点晴MIS系统问题答疑『 经验分享&问题答疑 』浏览当前帖子  
登 陆注 册论坛帮助  

  网站搜索
  搜索范围: 搜索方式: 关键词(可用空格分开)  

  作者及文章信息: 本文热度:109 % 
admin

积分:73146
等级:网站管理员
文数:13451
注册:2004-7-20

 信息   留言   主页   编辑   引用    

楼 顶 

 asp执行SQL事务并在错误时回滚功能简单小应用


conn.begintrans '开启SQL事务功能
...中间是一些添加修改删除操作
如果出现错误就取消
conn.rollbacktrans '取消事务更改并结束事务
如果没问题,就保存
conn.CommitTrans '保存事务并结束事务
代码如下:
<%if not session("type")="3" then 
response.Redirect "../login.asp"  
else
%>
<!--#include file="../conn.asp" -->
<LINK href="../css/home1.css" type=text/css rel=stylesheet>
<%    
set rs=server.createObject("ADODB.recordset")
sql = "select * from [sushe] where m_su='"& request.Form("su") &"'"
rs.open sql,conn,1,1
if rs.recordcount>0 then
response.write("


response.Write "<a href='xitong_set.asp' target='mainFrame'>继续添加</a></p>"
rs.close
set rs=nothing
conn.close
set conn=nothing
else 
rs.close
conn.begintrans '开启事务功能
rs.open "sushe",conn,1,3
rs.addnew '插入数据到users表
rs("m_su")=request.Form("su")
rs.update
rs.close
if err.number<>0 then
conn.begintrans '开启事务功能
...中间是一些添加修改删除操作
如果出现错误就取消
conn.rollbacktrans '取消事务更改并结束事务
如果没问题,就保存
conn.CommitTrans '保存事务并结束事务
response.Write("


response.write "<a href='xitong_set.asp' target='mainFrame'>重新添加</a></p>"
else
conn.CommitTrans '保存事务并结束事务
response.write"<script language=Javascript>alert('添加成功!');"
response.write"setTimeout(parent.mainFrame.document.location='xitong_set.asp',0)"
response.write"</script>"
end if 
end if
%>
<%end if%>
<%response.End()%>


该文章在 2022/6/22 0:24:04 编辑过

  离 线  2022/6/22 0:23:47 

admin

积分:73146
等级:网站管理员
文数:13451
注册:2004-7-20

 信息   留言   主页   编辑   引用

A9楼 
 


 所谓事务,是指一系列必须都成功的操作,只要有一步操作失败,其他的步骤也必须撤销。其实在数据库系统中,每一条SQL语句都是一个事务,当执行这条语句的时候,要么执行成功,要么执行错误并退出到最初的状态。但是如果执行一组SQL语句的操作,当其中某个步骤出错,就不能还原到最初的状态,这时候就需要使用事务处理机制来处理了。

ASP内置组件中的Connection对象,主要使用事务处理的方法有以下3个:
BeginTrans          :用于启动一个事务
CommitTrans      :用于完成/提交一个事务
RollBackTrans     : 回滚
一个简单的例子:
代码如下:
on error resume next 
objConn.BeginTrans '事务开始  
     多条SQL语句 
If  objConn.Errors.Count=0 then   
   objConn.CommitTrans  '如果没有错误,则执行事务提交 
else  
   objConn.RollbackTrans '否则回滚 
End If

  离 线  2022/6/22 0:38:01 
  本文章共有 1 页, 1 张回文,每页有 10 张回文 >> [ 1 ]
页码:

Copyright 2003-2022 ClickSun All Rights Reserved