ImageVerifierCode 换一换
格式:PPT , 页数:34 ,大小:969.50KB ,
资源ID:8689098      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8689098.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Delphi——数据库高级应用技术.ppt)为本站会员(j35w19)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Delphi——数据库高级应用技术.ppt

1、第10章 数据库高级应用技术,本章主要内容:事务的概念Delphi中的事务控制Delphi中使用存储过程主从结构的数据库应用程序,10.1 事务处理,10.1.1 事务的概念当用Delphi创建数据库应用时,Delphi提供了用于所有数据库访问的事务控制。一个事务(transaction)是指在一个数据库中的一张或多张表上执行的一组相关动作,在这一组动作被永久提交前,必须成功完成所有动作,如果该组动作中有一个动作操作失败,那么所有动作就会被取消。 10.1.2 事务的特性事务具有不可分性、一致性、隔离性和持续性。 1. 不可分性事务是一个工作单元,是在应用程序的 BEGIN TRANSACTI

2、ON 和 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方法。当开始一个事务时,后来的所有读写数据库的操作都发生在那次事务的环境中,直到事务被明确地终止或提交

5、了新事务。 使用例句: Level := ADOConnection1.BeginTrans; BeginTrans方法返回该事务的嵌套级别。 (3) 提交一个事务为了做永久性修改,事务完成后必须使用CommitTrans方法提交。 例如,下列语句将终止在上例中开始的事务: ADOConnection1.CommitTrans(4) 回退一个事务为了取消对数据库的修改,必须用RollbackTrans方法回退一个事务。,10.1 事务处理,例如:下列语句将回退一个事务:ADOConnection1.RollbackTrans;(5) 判断是否正在处理事务判断是否正在处理事务,可以通过InTra

6、nsaction属性。 例: IF ADOConnection1.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. 程序执行分析启动程序后,点击【开始事务】按钮,在表格中修改几条记录,然后点击【提交事务】按钮,关闭程序后重新进入,会发现修改内容已写入数据库中。 点击【开始事务】按钮,在表格中修改几条记录,然后点击【回退事务】按钮,关闭程序后重新

8、进入,再次查看表格内容,会发现数据库没有被修改。,10.2 使用存储过程,10.2.1 存储过程概述存储过程(stored procedure)是一组预先编译好的SQL代码。存储过程作为一个独立的数据库对象,可以作为一个单元被用户的应用程序调用,它在服务器上执行一系列重复性的与数据库相关的任务,并将结果传给客户应用程序。由于存储过程是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率。 10.2.2 直接执行SQL命令来使用和管理存储过程 1. 使用和管理存储过程的应用程序 【例10-2】建立一个使用和管理存储过程的应用程序。使用MS SQL Server的示例数据库P

9、UBS。,10.2 使用存储过程,【实现步骤】 (1) 首先建立应用程序。 (2) 定制窗体,图10-2 程序设计界面,10.2 使用存储过程,表10-3 各组件属性设置,10.2 使用存储过程,表10-3 各组件属性设置,10.2 使用存储过程,2. 使用和管理存储过程的SQL命令 (1) 创建存储过程 创建存储过程的简单语法如下: CREATE PROCEDURE procedure_name ;numberparameter data_type VARYING =default OUTPUT ,.n WITHRECOMPILE | ENCRYPTION | RECOMPILE,ENCRY

10、PTION FOR REPLICATION ASsql_statement .n ,10.2 使用存储过程,(2) 执行存储过程直接执行存储过程可以使用EXECUTE命令来执行。在Memo1的编辑框中输入: EXEC oakland_authors 或 EXECUTE oakland_authors点击按钮“执行存储过程”以执行存储过程oakland_authors,结果将显示在DBGrid1表格中。 (3) 修改存储过程 存储过程可以根据用户的要求或者基表定义的改变而改变。使用ALTER PROCEDURE语句可以更改先前通过执行 CREATE PROCEDURE 语句创建的过程,但不会更改

11、权限,也不影响相关的存储过程或触发器。,10.2 使用存储过程,其语法形式如下: ALTERPROCEDUREprocedure_name;numberparameterdata_typeVARYING=defaultOUTPUT,.n WITH RECOMPILE | ENCRYPTION | ECOMPILE,ENCRYPTION FOR REPLICATION ASsql_statement .n 下面对存储过程oakland_authors进行修改,使其能够显示出所有居住在加里福尼亚的作者,而不考虑其它地区居住的作者 。,10.2 使用存储过程,修改存储过程的代码如下: alter p

12、rocedure oakland_authors with encryption as select au_fname, au_lname, address, city, zip from authors where state = ca order by au_lname, au_fname(4) 删除存储过程删除存储过程可以使用DROP命令,DROP命令可以将一个或者多个存储过程或者存储过程组从当前数据库中删除,其语法形式如下: drop procedure procedure ,n,10.2 使用存储过程,如将存储过程oakland_authors从数据库中删除,则在Memo1的编辑框中

13、输入以下代码:drop procedure oakland_authors(5) 带参数的存储过程存储过程使用两种类型的参数,一种是输入参数,另一种是输出参数。不使用OUTPUT保留字的参数是输入参数,使用OUTPUT保留字的参数是输出参数。输入参数是单向的,而输出参数是双向的,可以向调用者返回值。 本例的存储过程中使用了输入参数。 create procedure author_inforlastname varchar (40) , firstname varchar (20) as select au_lname,au_fname,phone from authors where au_

14、fname=firstname and au_lname=lastname,10.2 使用存储过程,10.2.3 用ADO组件操作存储过程 1. TADOStoredProc组件简介TADOStoredProc组件主要用于操作远程服务器上的数据库中的存储过程。ADOStoredProc是一个数据集组件,ADO数据集组件所具有的公共属性、方法和事件,在ADOStoredProc都具有。(1) TADOSoredProc的关键属性 Active属性Connection属性ConnectionString属性Filter属性Filtered属性Parameters属性ProcedureName属性,

15、10.2 使用存储过程,(2) 关键方法Open属性Close属性Refresh属性NextRecordset属性 2. TADOStoredProc组件的使用 【例10-3】建立一个使用和管理存储过程的应用程序。使用MS SQL Server的示例数据库PUBS。 【实现步骤】 (1) 首先建立应用程序。 (2) 定制窗体,10.2 使用存储过程,图10-5 程序设计界面,10.2 使用存储过程,表10-4 各组件属性设置,10.2 使用存储过程,(3) 编写代码 (4)运行程序,图10-6 执行结果,10.3 主从结构的数据库应用程序,有时我们需要将数据表格联系起来,这些表格具一种一对多的

16、关系。比如客户表和订单表,一个客户可能会有许多订单。当我们浏览客户订货信息时,希望在客户表选择一个客户后,能够显示该客户的所有订单。利用Delphi可以方便地设计出主从表结构的应用程序。 【例10-4】使用Delphi自带的Access数据库dbdemos.mdb中的表customer和表Orders建立一个程序,实现主/从表。customer为主表,Orders为从表,两表之间通过字段CustNo链接。 【实现步骤】 (1) 首先建立应用程序。 (2) 创建数据模块,10.3 主从结构的数据库应用程序,图10-7 数据模块设计界面,10.3 主从结构的数据库应用程序,表10-5 数据模块各组件属性设置,10.3 主从结构的数据库应用程序,图10-8 链接字段设计器,10.3 主从结构的数据库应用程序,图10-9 引用单元对话框,10.3 主从结构的数据库应用程序,(4)定制窗体,程序设计界面,10.3 主从结构的数据库应用程序,表10-6 窗体中各组件属性设,10.3 主从结构的数据库应用程序,图10-10 主/从表关系的应用程序运行界面,(5)保存所有文件,然后运行程序,本章实训指导,1. 掌握事务处理的应用程序的编写。 2. 掌握直接用SQL命令管理和执行存储过程。 3. 掌握使用TADOStoredProc组件执行存储过程。 4. 上机完成本章所有实例。,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报