delphi数据库高级应用技术_第1页
delphi数据库高级应用技术_第2页
delphi数据库高级应用技术_第3页
delphi数据库高级应用技术_第4页
delphi数据库高级应用技术_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1Delphi数据库高级应用技术10.1

事务处理第1页/共33页2.一致性事务是一个完整的单元,因为它保持数据的一致性,将数据从一种数据一致状态转换到另一种数据一致状态。隔离事务是一个隔离单元,允许可并行执行的事务表现得像是在系统中运行的唯一事务。隔离性要求即使同时可能有其他事务正在运行,每个事务也像是操作数据存储区的唯一事务一样。事务应从不查看其他事务的中间阶段。性.3

持续事务也是一个恢复单元。如果事务成功,则即使在提交后计算机立即崩溃,系统仍将保证更新该事务。专用记录允许系统的重新启动过程完成未完成的操作,以使事务可持续。性.410.1

事务处理第2页/共33页1中1ihpleD.10事0.中务.1控1.制.3的3D方De式ellpphhii中事务控制的方式有在两默种认显情式况控下制,通务有方为式应::程序提供隐式事务控,。当应用程序处于隐式事务控制时,为数据集中的每个记录的写操作进行隐式事务控制。它提交每一个独立的写操作,如和。droceRdneppAtsoPihpleD。制控务事式显是种一制制控务事式隐是种一用种ODA两过Delphi式方的制控务事ihpleD一种是使用组件事如)所提供的方法和属性进行事务控制。到支持事务的数据库服务器进行事务控制。许多数据库都提供自己的事务处理方式。itcennoCODATon(ihpleD另一种是直接发送SQL命令10.1

事务处理第3页/共33页2.使用控TADOConnection(制1)事务处理过程通常事务处理有以下这样一个过程:开eginTrans;///try/B捕始捉一异个常新事务处理数据库更新操作(如、、等)etadputresnieteled..

操作成功,提交事务//;snarTtimmoC.异xcept//s//;RollBackTrane操常作处失理败,回退事务end;10.1

事务处理第4页/共33页(开)2始开一始个一事个务事使务用BeginTrans方法。当开始一个事务时,后来的所有读写数据库的操作都发生在那次事务的环境中使,用直例到句:事务被明确地终止或提交了新事务。(3)提交一个事务OConnection1.BeginTransDBeginTransL;evel:=A方法返回该事务的嵌套级别。tTransCADOConnection1.ommi例如,下列语句将终止在上例中开始的事务:为了做永久性修改,事务完成后必须使用CommitTrans方法提交。(为)4了回取退消一对个数事据务库的修改,必须用RollbackTrans方法回退一个事务。10.1

事务处理第5页/共33页eRollrback.ans;ADOConnTction1例如:下列语句将回退一个事务:ckTrans;ennoCODAticon1.Rollba(判)5断判是断否是正否在正处在理处事理务事,务可以通过InTransaction属性。

例:itennoCODAFIcNEHTnoitcasnarTnI.1no()使用属性leveLnoialIsto6IsolationLevel属性描述TADOConnection组件事务的独立级别,事务的独立级别决定了事务与其它作用于相同表的事务是如何相互作用的。10.1

事务处理第6页/共33页1100.下.1面1.以.4一4事个简务单的处例子理说明的事务实的处例理过程。【【实例现对步组骤件】使用的是默认的隐含事务控制,在表格修改一条记录后,当记录指针移动以后,数据就被写入到数据库中了。若表格很大、修改项目又很多时,如果中途想要放弃所作的修改,很难使表格恢复原样。这时就可以使用事务处理来解决这样的问题。编程实现对数据库的表的事务操作。eeyolpmebdm.somedbddirGBDTihpleD1-01】首先建立应用程序。.12.定制窗体10.1

事务处理图10-1程序设计界面第7页/共33页10.1

事务处理表10-2各组件属性设置组件名属性属性值说明ADOConnection1ConnectionString使用ConnectionString设置对话框设置该属性,连接到数据库dbdemos.mdb。ADOTable1ConnectionADOConnection1指定使用的数据连接组件。TableNameemployee指定打开的数据表名ActiveTrue打开数据集。DataSource1DataSetADOTable1指定使用的数据集。DBGrid1DataSourceDataSource1为表格指定数据源。ReadOnlyTrue表格设置为只读btnBeginCaption开始事务EnableTrue允许使用按钮btnCommitCaption提交事务EnableFalse禁止使用按钮btnRollBackCaption回退事务EnableFalse禁止使用按钮btnCloseCaption关第闭8页/共33页EnableTrue允许使用按钮10.1

事务处理编3.4.程写序启动代执码行程分序析后,点击【开始事务】按钮,在表格中修改几条记录,然后点击【提交事务】按钮,关闭程序后重新进入,会发现修改内容已写入数据库中。点击【开始事务】按钮,在表格中修改几条记录,然后点击【回退事务】按钮,关闭程序后重新进入,再次查看表格内容,会发现数据库没有被修改。第9页/共33页10.2

使用存储过程第10页/共33页1100.存.2储2.过.1程1存()dureostredproce储是一过组预程先编概译好述的SQL代码。存储过程作为一个独立的数据库对象,可以作为一个单元被用户的应用程序调用,它在服务器上执行一系列重复性的与数据库相关的任务,并将结果传给客户应用程序。由于存储过程是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率。1100..22..22直存理管和用.1使储接过程执的应行用程SSQQLL命序令来使用和管理存储过程【例建立一个使用和管理存储过程的应用程序。使用的示例数据库。SBUPrevreSLQSSM2-01】10.2

使用存储过程【(实1)现首步先骤建】立应用程序。(2)定制窗体图10-2程序设计界面第11页/共33页10.2

使用存储过程第12页/共33页组件名属性属性值说明ADOConnection1ConnectionString使用ConnectionString设置对话框设置该属性,建立到数据库dbdemos.mdb的连

接。ADOQuery1ConnectionADOConnection1指定使用的数据连接组件。DataSource1DataSetADOQuery1指定使用的数据集。DBGrid1DataSourceDataSource1为表格指定数据源。ReadOnlyTrue设置为只读Button1Caption新建存储过程、修改存储过程、删除存储过程Button2Caption执行存储过程Memo1Lines为空Label1Caption输入SQL命令Label2Caption显示存储过程执行结果表10-3各组件属性设置10.2

使用存储过程第13页/共33页表10-3各组件属性设置10.2

使用存储过程第14页/共33页2.使用和管理存储过程的SQL命令(创)1建创存建储存过储程过的程简单语法如下:]n...,[]]TUPTUO[]tluafed=[]GNIYRAV[}epyt_atadretemarap@{[]rebmun;[eman_erudecorp]ERUDE[CORPETAERC]}NOITPYRCNE,ELIPMOCER|NOITPYRCNE|ELIPMOCER{HTIW[

SA]NOITACILPERROF[sql_statement[...n]10.2

使用存储过程第15页/共33页(2)执直行接存执储行过存程储过程可以使用EXECUTE命令来执行。在Memo1的编辑框中输入:EXECoakland_authors点击按钮“执行存储过程”以执行存储过程akland_authorso,结果将显示在BDGrid1表格中。

或and_auathorsEXECUTEokl(存储过程可以根据用户的要求或者基表定义的改变而改变。使用语句可以更改先前通过执行语句创建的过程,但不会更改权限,也不影响相关的存储过程或触发器。ERUDECORPETAERCERUDECORPRETLA程过储存改修3)10.2

使用存储过程第16页/共33页Tnumb]erAL;ERPROC[EDURE]procedure_name[其语法形式如下:]n...,[]]TUPTUO[]tluafed=[]GNIYRAV[}epyt_atadretemarap@{[]NOITACILPERROF[]}NOITPYRCNE,ELIPMOCE|NOITPYRCNE|ELIPMOCER{HTIW[ASsql_statement[...n]下面对存储过程oakland_authors进行修改,使其能够显示出所有居住在加里福尼亚的作者,而不考虑其它地区居住的作者。10.2

使用存储过程第17页/共33页cand_authorsalterproedureoakl修改存储过程的代码如下:

sanoitpyrcnehtiwsrohtuamorfpiz,ytic,sserdda,emanl_ua,emanf_uatceles()删除存储过程4

e="ca"orderbyautlname,au_fwamehe_resatn删除存储过程可以使用命令,命令可以将一个或者多个存储过程或者存储过程组从当前数据库中删除…其语法形式如下:]noorp{erudecrpporde,[}erudc,PORDPORD10.2

使用存储过程第18页/共33页puthoraoenrudecorspordklad_a(如)将带存参储数过的程存orshloakand_aut从储数过据程库中删除,则在1omeM的编辑框中输入以下代码:本存5储过过程中使用了输入参数。程使用两种类型的参数,一种是输入参数,另一种是输出参数。不使用OUTPUT保留字的参数是输入参数,使用OUTPUT保留字的参数是输出参数。输入参数是单向的,而输出参数是双向的,可以向调用者返回值。例的存储 )02(rahcravemantsrif@,)04(rahcravemantsal@rofni_rohtuaerudecorpetaercenohp,emanf_ua,emanl_uatcelessa

emantsal@=emanl_uadnaemantsrif@=emanf_uaerehwsrohtuamorf10.2

使用存储过程第19页/共33页1组1P.1corderotSODAT0件0.组简.2介2..33用AADDOO组件操作存储过程()的关键属性作远程服务器上的数据库中的存储过程。是一个数据集组件,数据集组件所具有的公共属性、方法和事件,在都具有。eAODStordProcAODcrPderotSOoDA操于用要TAOSoredProcD主1件rcorPdeTotSODA••属性noitcennoCevitcA••属性retliFgnirtSnoitcennoC••FilteredParameters属性ProcedureName属性10.2

使用存储过程第20页/共33页()2Open属关性键方法••属性hserfeResolCoceRtxNtesdre属性组TcorPderotSODA2.【件例建】10-3的立使一用个用和管理存储过程的应用程序。使用的示例数据库。PSBUSLQSSMrevre【1实首现先步建骤立】使序。()定制窗体应用程210.2

使用存储过程图10-5程序设计界面第21页/共33页10.2

使用存储过程第22页/共33页组件名属性属性值说明ADOConnection1ConnectionString使用ConnectionString设置对话框设置该属性,连接到数据库Pubs。ADOStoredProc1ConnectionADOConnection1指定使用的数据连接组件。ProcedureNameauthor_infor;1指定使用的存储过程名DataSource1DataSetADOStoredProc1指定使用的数据集。DBGrid1DataSourceDataSource1为表格指定数据源。ReadOnlyTrue设置为只读Button1Caption执行存储过程Gropbox1Caption传入参数Label1CaptionLastNameLabel2CaptionFirstNameEdit1Text为空Edit2Text为空表10-4各组件属性设置10.2

使用存储过程(34)编运写行代程码序图10-6执行结果第23页/共33页10.3

主从结构的数据库应用程序第24页/共33页【例使有-401】用时自我们需要将数据表格联系起来,这些表格具一种一对多的关系。比如客户表和订单表,一个客户可能会有许多订单。当我们浏览客户订货信息时,希望在客户表选择一个客户后,能够显示该客户的所有订单。利用eDlphi可以方便地设计出主从表结构的应用程序。【1实首现先步建骤立】应的用数据库中的表和表建立一个程序,实现主从表。为主表,为从表,两表之间通过字段链接。uoNtsCsredrOremotsuc/rsredOtsucremoomedbdbdm.ssseccA带Dihple()创建数据模块程序。210.3

主从结构的数据库应用程序图10-7数据模块设计界面第25页/共33页10.3

主从结构的数据库应用程序第26页/共33页组件名属性属性值说明ADOConnection1ConnectionString使用ConnectionString设置对话框设置该属性,连接到数据库dbdemos.mdb。ADOTable1ConnectionADOConnection1指定使用的数据连接组件。TableNameCuctomer指定打开的数据表名ActiveTrue打开数据集。DataSource1DataSetADOTable1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论