事务处理的定义
在做WEB开发时,不可避免的需对数据库进行查询、插入、更新、删除等操作,有时操作的一条数据,有时操作的是一组连续的指令集合,这时我们就须对数据操作进行事务处理,所谓事务,就是指一次逻辑单元操作组合,简单的说就是把一组操作,当作一个整体来处理。
例如:要在数据库中需更新1000条数据,在更新过程中假设其中的一条数据发生错误,则所有已更新的数据都恢复成未更新时的初始状态。只有1000条记录全部更新成功之后,才最终确认更新。
目前大多数事务处理是针对数据库操作概念,但事实上事务的定义范围是非常广的。
为何要使用事务处理
例如:在一个电子商务交易网站上,A公司需购买B公司的产品,当通过网站上的交易系统进行网上交易时对数据库需进行至少下面两个操作步聚:
1、从A用户的帐号上扣除相应的金额 http://www.mscto.com
2、将扣除的金额转到B用户的帐号上 软件开发网
以上两个步聚须全部操作成功,整个交易才算完成,如果在第1步操作完成过程后,在进行第2步操作时发生错误,则整个事务处理失败,第1步操作取消,数据回滚到交易前的状态。
此操作假如未使用事务处理机制则在第1步操作完成后,扣除了A用户帐号上的金额,由于发生错误,第2步操作却未能完成,交易金额未能到达B用户的帐号上。则此次交易出现,A付了钱,B并未收到,以此次交易失败告终。
事务处理机制在此过程中相当于一个保险机制,它能确保整个事件在没有错误的状态下进行,一旦发生错误,事务处理允许你回到最初始的状态,保证了数据完整。
诸如此类的例子生活中很多,比如银行取款、转账等一样,大家慢慢体会吧!当然,在只对数据库进行单次操作时,事务处理是没有实际意义的。 软件开发网
下面我们来介绍下ASP中的事务处理机制
方法一 利用ASP内置ADO组件中的Connection对象
在ASP中,Connection对象有三个方法来实现事务处理机制:BeginTrans,CommitTrans和RollbackTrans。
在ASP中,当一个事务处理开始执行时,其后一直到事务处理结束之前,所有的一切程序都是暂时的,必须等到用CommitTrans方法结束事务处理之后,才能确定其中操作的有效性,如果这过程中发生错误,则可以用RollbackTrans方法取消事务处理,返回未执行程序之前。
具体程序如下:
<%
dim conn,sql
set conn=server.createobject(\"adodb.connection\")
conn.open\"driver={Microsoft access driver (*.mdb)};dbq=\" & server.mappath(\"dataname.mdb\") '连接数据库
conn.BeginTrans '事务处理开始
sql=\"delete * from user where name='\" & yourname & \"'\"
conn.execute(sql) '删除姓名为yourname的记录
sql=\"insert into user(name,pass,sex) values('yourname_2','111111','Boy')\"
conn.execute(sql) '添加一条新记录
if conn.errors.count=0 then
conn.CommitTrans '判断是否有错误发生,没有则提交CommitTrans方法结束 事务处理,完成以上程序
else
conn.RollbackTrans '如果发生错误,则用RollbackTrans方法取消事务处理, 以上程序无效
end if
conn.close
set conn=nothing
%>
方法二 利用数据库系统内部的事务处理机制
通过在数据库服务器中编写包含事务的存储过程,完成对数据操作的事务处理。同时,利用ADO组件调用存储过程,还可以根据存储过程的返回代码判断事务处理是否执行成功。
软件开发网
方法三 利用MTS(Microsoft Transaction Server)组件的事务处理机制实现事务处理需要注意的是,这种机制下的事务不能跨越多个ASP页,如果一个事务处理需要来自多个组件的对象,则须将对这些对象的操作组合在一个ASP页中。
事务处理能保证数据库记录统一性与完整性,因此在许多项目中都会采取事务处理机制来避免错误的发生。建议大家以后在做开发时,牵涉到对数据库进行多个单元操作时,起用事务处理机制加以处理,确保整个处理过程没有错误发生。
分享到:
相关推荐
《ASP.NET 2.0 + SQL Server 网络应用开发详解》这本书是针对使用ASP.NET 2.0和SQL Server进行Web应用开发的详细指南。ASP.NET是Microsoft .NET框架的一部分,它提供了一种高效、面向对象的方式来构建动态网站、web...
在与ASP.NET 2.0配合使用时,SQL Server提供了一套完整的数据访问接口,如ADO.NET,使得开发者能方便地进行数据存储、查询和事务处理。SQL Server 2005(对应.NET Framework 2.0时代)引入了新的功能,如集成服务...
内容概要:本文档详细介绍了在 ASP.NET 开发环境中使用 ADO.NET 操作 SQL Server 数据库的技术细节,主要内容包括ADO.NET组件介绍,如DataSet、DataTable、DataView的概念及其使用方法;通过实例演示了如何利用...
在ASP.NET开发中,SQLHelp是一个强大的工具,它提供了与数据库交互的便利,帮助开发者快速构建数据驱动的Web应用程序。本篇内容将深入探讨如何利用SQLHelp进行数据库操作,并结合Visual Studio 2008 (VS2008) 和 SQL...
在ASP.NET中,Web Forms是最初的开发模型,允许开发者使用事件驱动的方式进行编程,类似于Windows桌面应用。在源码中,可能包括了页面生命周期的控制、控件事件处理、数据绑定和验证等示例,这些都是Web Forms的基本...
“每周一讲之ASP应用专题集锦”可能包含了ASP在实际应用中的多种场景和技巧,比如用户登录验证、注册系统、购物车功能、邮件发送、文件上传下载、数据库备份与恢复等。这些专题将帮助你提升ASP在实际项目中的应用...
Web服务器和应用程序服务器是两种不同的服务类型,它们在互联网应用中扮演着各自的关键角色。本文将详细解释这两者的概念、功能以及它们之间的差异。 首先,Web服务器主要负责处理HTTP协议,它的核心任务是接收来自...
ASP.NET 2.0 ObjectDataSource 是一个非常重要的组件,它为Web应用程序提供了一种与业务对象交互的方式,而无需在视图层(View)和业务逻辑层(Business Logic Layer,BLL)之间直接耦合。这个组件使得开发人员能够...
N层结构在Web应用开发中的具体实现可能会涉及多种技术,如ASP.NET MVC、Java EE、Spring Boot、Django等。开发者需要根据项目需求和团队技能选择合适的技术栈。此外,对于分布式系统,可能还会涉及到负载均衡、缓存...
在文件中,你可能还会发现ASP.NET的ADO.NET Entity Framework,这是一个ORM(对象关系映射)工具,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库事务。还有ASP.NET Identity,这是微软提供的...
在ASP中,ObjectContext是内置对象之一,主要用于管理和控制事务处理,特别是当应用程序需要与Microsoft Transaction Server (MTS) 或后来的COM+集成时。 在ASP中,使用`@ TRANSACTION`指令可以开启一个事务,这...
在这个图书销售系统中,很可能是采用了Web Forms模型,该模型提供了一种与桌面应用程序相似的事件驱动编程模型,使得页面交互更易于处理。 2. **控件和事件处理**:Web Forms模型中的控件是ASP.NET的核心组件,例如...
在律师网站的构建中,ASP可以实现用户交互、数据处理、页面动态生成等功能,使网站更具活力和实用性。律师整站源代码asp的优势在于其灵活性和可定制性,开发者可以根据具体需求对源代码进行修改和扩展,以满足不同...
《基于ASP.NET的在线投稿及稿件处理管理系统:WEB与SQLServer数据库应用详解》 ASP.NET是一种强大的Web应用程序框架,由微软公司开发,用于构建高效、安全且可扩展的Web应用程序。在本系统中,它被用来创建一个在线...
3. **控件与事件**:在ASP.NET中,了解如何使用各种Web控件(如Button、Label、TextBox等)以及它们的事件处理程序。 4. **ASP.NET页面生命周期**:理解页面从请求到响应的过程,包括初始化、加载、回发、验证和...
4. 数据访问层(DAL):Asp代码与数据库之间的接口,负责执行SQL查询和事务操作。 三、Asp技术应用 1. 数据绑定:Asp可以方便地将服务器端数据绑定到HTML控件上,实现实时更新显示库存状态。 2. 会话管理:通过...
对于想要在面试或学习中提升ASP.NET技能的朋友,这些内容具有很高的参考价值。 首先,我们来看SQL部分。题目涉及了聚集索引和非聚集索引的区别,以及索引的意义和簇索引的优缺点。聚集索引的正文数据按照索引顺序...
在ASP中连接MySQL数据库需要配置ODBC(Open Database Connectivity)数据源,这是一个标准接口,允许应用程序与各种数据库进行交互。 在ASP+MySQL的配置中,主要有以下几个关键步骤: 1. **安装ODBC驱动**:首先,...
《ASP.NET与WinForm在银行存取款系统中的应用及三层架构详解》 在软件开发领域,银行存取款系统的构建是一项重要的任务,因为它涉及到金融数据的安全与准确性。本项目利用ASP.NET和WinForm技术,结合三层架构,实现...
《ASP.NET 2.0网络开发详解》实例源代码 和部分电子书 1.源文件的运行环境 操作系统:Windows 2000及其以上版本 开发环境:Microsoft Visual Studio 2005及其以上版本 数据库:SQL Server 2005及其以上...