- 1、本文档共125页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PB基知识整理版
PB基础知识
.数据库的事务管理
在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。
对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。此外有些数据库支持事务的存储点(savepoint)这一概念:即在一个事务进程中任意一点您都可以进行当前状态的存储,回退时只是回到你所设定的存储点,而不必退回全部的事务。如果您的事务可以分成几组对数据库的修改,那就可以设置多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改数据全部丢失。
正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写进数据库。让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上操作时,在后台需要对两张表进行修改。如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失一百元,信息必然是不正确的。因此进行事务管理是必须的。
传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能包括了对一个或多个数据库的修改。在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数据库中,上述的一个事务就涉及到了对不同数据库的操作。
PowerBuilder中的事务管理 作为数据库的前台开发工具Power Builder支持事务管理的操作。在Power Builder中有一种称作事务(transaction)的对象,这个对象是PowerBuilder应用与数据库的通讯区域。PowerBuilder在应用开始时建立一个全局的事务对象SQLCA。由于大多数的应用只用到一个数据库,所以一般开发者主要也只用SQLCA作为与唯一数据库连接的事务对象。
PowerScript中常用的事务管理的语句有四个:COMMIT,ROLLBACK,CONNECT,DISCONNECT。
当您需要应用与数据库建立连接时使用CONNECT这一操作命令,取消连接时执行DISCONNECT,这两个命令一般分别用在应用的开始和结束,也就是Appli cation的Open和Close事件中。
当一个事务的数据库修改都成功地完成后,修改须提交给数据库,COM MIT语句是一个旧事务结束和一个新事务开始的界线。在修改被提交前,数据库的数据并没有被真正地修改,这些修改被保留在某个工作区,只有作修改的用户才能看到这些被修改后的值,提交之后,则所有的用户就都可以看到新值了。
在事务的进程中发生某些错误,或者在操作中出于种种原因打算中止事务,须用ROLLBACK命令回退事务,如果已作的操作不用ROLLBACK命令取消,这些操作必将错误地作为下一个事务的一部分而导致数据库的混乱。
如果您使用的是多窗口的应用,却只用一个事务对象,就应格外注意ROLL BACK和COMMIT会影响事务的逻辑一致性。在某个窗口执行的这两个指令会使其他窗口应用中所进行到一半的工作提交或回退。
在多用户系统中,修改和提交的时间越接近,提交成功的可能性就越高。因为一个事务中所有的SQL语句全部执行成功而提交却失败是完全可能发生的,例如在您的事务过程中,另一个用户修改了数据并提交,这很可能使您作出的修改无效,这时COMMIT将失败,您必须回退这一事务的全部。
事务对象的AutoCommit属性 事务对象有一个AutoCom mit的属性可以使开发者简化对事务管理的操作,这一布尔型的属性可以用TRUE或FALSE来对其赋值。当其为真时,PowerBuilder不通过其他额外的交互就将您的SQL语句传输给后台数据库,而且执行完毕自动提交。
当然,您可以设置AutoCommit属性为假(缺省值),使用COMMIT或ROLLBACK这样的关键词提交或回退事务。在大多数应用中,一部分的数据库操作是要成组提交的,而另一些则不用。因此我们可以利用AutoCommit的特性来确定事务的起点,当我们把AutoCommit的属性设为False时,系统设定此时为事务的起点。当Aut
您可能关注的文档
- MSP430G2553寄存器中文注释.doc
- MTB操作规程.doc
- mulisim元器件库参考资料.doc
- MTB操作运行规程.doc
- midsNFX有限元分析教程.doc
- Mulisim快速入门.doc
- MTB操作规程上.doc
- MTK置文件参数说明.doc
- MVYEHENG散杂船合同.doc
- mv分WEB界面代码.doc
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)