Delphi-数据库高级应用技术.ppt
《Delphi-数据库高级应用技术.ppt》由会员分享,可在线阅读,更多相关《Delphi-数据库高级应用技术.ppt(34页珍藏版)》请在三一办公上搜索。
1、第10章 数据库高级应用技术,本章主要内容:事务的概念Delphi中的事务控制Delphi中使用存储过程主从结构的数据库应用程序,10.1 事务处理,10.1.1 事务的概念当用Delphi创建数据库应用时,Delphi提供了用于所有数据库访问的事务控制。一个事务(transaction)是指在一个数据库中的一张或多张表上执行的一组相关动作,在这一组动作被永久提交前,必须成功完成所有动作,如果该组动作中有一个动作操作失败,那么所有动作就会被取消。10.1.2 事务的特性事务具有不可分性、一致性、隔离性和持续性。1.不可分性事务是一个工作单元,是在应用程序的 BEGIN TRANSACTION
2、和 END TRANSACTION 语句之间发生一系列操作。事务只执行一次,且是不可分的,即完成全部工作或者不做任何工作。,10.1 事务处理,2.一致性事务是一个完整的单元,因为它保持数据的一致性,将数据从一种数据一致状态转换到另一种数据一致状态。3.隔离性事务是一个隔离单元,允许可并行执行的事务表现得像是在系统中运行的唯一事务。隔离性要求即使同时可能有其他事务正在运行,每个事务也像是操作数据存储区的唯一事务一样。事务应从不查看其他事务的中间阶段。4.持续性事务也是一个恢复单元。如果事务成功,则即使在提交后计算机立即崩溃,系统仍将保证更新该事务。专用记录允许系统的重新启动过程完成未完成的操作
3、,以使事务可持续。,10.1 事务处理,10.1.3 Delphi中事务控制的方式1.Delphi中事务控制的方式Delphi中事务控制的方式有两种:一种是隐式事务控制,一种是显式事务控制。在默认情况下,Delphi通过ADO为应用程序提供隐式事务控制。当应用程序处于隐式事务控制时,Delphi为数据集中的每个记录的写操作进行隐式事务控制。它提交每一个独立的写操作,如Post和AppendRecord。有两种显式控制事务方式:一种是使用Delphi组件(如TADOConnection)所提供的方法和属性进行事务控制。另一种是直接发送SQL命令到支持事务的数据库服务器进行事务控制。许多数据库都提
4、供自己的事务处理方式。,10.1 事务处理,2.使用TADOConnection控制事务(1)事务处理过程通常事务处理有以下这样一个过程:BeginTrans;/开始一个新事务处理 try/捕捉异常.数据库更新操作(如delete、insert、update等).CommitTrans;/操作成功,提交事务 except/异常处理 RollBackTrans;/操作失败,回退事务end;,10.1 事务处理,(2)开始一个事务开始一个事务使用BeginTrans方法。当开始一个事务时,后来的所有读写数据库的操作都发生在那次事务的环境中,直到事务被明确地终止或提交了新事务。使用例句:Level:
5、=ADOConnection1.BeginTrans;BeginTrans方法返回该事务的嵌套级别。(3)提交一个事务为了做永久性修改,事务完成后必须使用CommitTrans方法提交。例如,下列语句将终止在上例中开始的事务:ADOConnection1.CommitTrans(4)回退一个事务为了取消对数据库的修改,必须用RollbackTrans方法回退一个事务。,10.1 事务处理,例如:下列语句将回退一个事务:ADOConnection1.RollbackTrans;(5)判断是否正在处理事务判断是否正在处理事务,可以通过InTransaction属性。例:IF ADOConnecti
6、on1.InTransaction THENADOConnection1.RollbackTrans;(6)使用IsolationLevel属性IsolationLevel属性描述TADOConnection组件事务的独立级别,事务的独立级别决定了事务与其它作用于相同表的事务是如何相互作用的。,10.1 事务处理,10.1.4 事务处理的实例下面以一个简单的例子说明事务的处理过程。【例10-1】Delphi对TDBGrid组件使用的是默认的隐含事务控制,在表格修改一条记录后,当记录指针移动以后,数据就被写入到数据库中了。若表格很大、修改项目又很多时,如果中途想要放弃所作的修改,很难使表格恢复原
7、样。这时就可以使用事务处理来解决这样的问题。编程实现对数据库dbdemos.mdb的表employee的事务操作。【实现步骤】1.首先建立应用程序。2.定制窗体,10.1 事务处理,图10-1 程序设计界面,10.1 事务处理,表10-2 各组件属性设置,10.1 事务处理,3.编写代码4.程序执行分析启动程序后,点击【开始事务】按钮,在表格中修改几条记录,然后点击【提交事务】按钮,关闭程序后重新进入,会发现修改内容已写入数据库中。点击【开始事务】按钮,在表格中修改几条记录,然后点击【回退事务】按钮,关闭程序后重新进入,再次查看表格内容,会发现数据库没有被修改。,10.2 使用存储过程,10.
8、2.1 存储过程概述存储过程(stored procedure)是一组预先编译好的SQL代码。存储过程作为一个独立的数据库对象,可以作为一个单元被用户的应用程序调用,它在服务器上执行一系列重复性的与数据库相关的任务,并将结果传给客户应用程序。由于存储过程是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率。10.2.2 直接执行SQL命令来使用和管理存储过程1.使用和管理存储过程的应用程序【例10-2】建立一个使用和管理存储过程的应用程序。使用MS SQL Server的示例数据库PUBS。,10.2 使用存储过程,【实现步骤】(1)首先建立应用程序。(2)定制窗体,图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi 数据库 高级 应用技术

链接地址:https://www.31ppt.com/p-5427227.html