PB中的数据库事务管理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PB中的数据库事务管理 X)7V01.39No.3林业科技情报?79? PB中的数据库事务管理 曲剑冯红岩 (黑龙江省森林工业总局) [摘要]作者结合对数据库前端开发软件PowerBuilder的使用经验,简要介绍了PB中的数据库事务管理. [关键词]数据库;事务管理;PB DatabaseOfficeManagementInPowerbuilder QuJianFengHongyan (ForestryIndustryGeneralBureauOfHeilongjiangProvince) Abstract:eauthorbrieflyintroducesthedatabaseofficemanagementinPowerBuildercombinedwithhisusageexperi— ence. Keywords:database;officemanagement;Powerbuilder 1概述 在数据库中,所谓事务是指一组逻辑操作单元,使数 据从一种状态变换到另一种状态.为确保数据库中数据的 一 致性,数据的操纵应当是离散的成组的逻辑单元:当它 全部完成时,数据的一致性可以保持,而当这个单元中的 一 部分操作失败,整个事务应全部视为错误,所有从起始 点以后的操作应全部回退到开始状态. 对事务的操作是这样进行的:先定义开始一个事务, 然后对数据作修改操作,这时如果提交(COMMIT),这些 修改就永久地保存下来,如果回退(ROLLBACK),数据库 管理系统将放弃所作的所有修改而回到开始事务时的状态. 此外有些数据库支持事务的存储点(savepoint)这一概念: 即在一个事务进程中任意一点都可以进行当前状态的存储, 回退时只是回到你所设定的存储点,而不必退回全部的事 务.如果事务可以分成几组对数据库的修改,那就可以设 置多个存储点,根据需要可以回退到任意一个存储点,而 不使所有事务的修改数据全部丢失. 正确地管理事务可以保证数据的完整性,当所做的工 作全部完成和得到确认之前,没有任何数据物理地写进数 据库.让我们来看这样一个实例,我们有这样一个银行应 用系统,前台使用者作出将储户甲的一百元存款划归储户 乙帐下的操作;在后台的数据库中,这两个客户的记录分 储在两张表中,当使用者在屏幕上作出如上操作时,在后 台需要对两张表进行修改.如果在数据库中对甲用户存款 余款作减去一百元修改后,对乙用户加一百元的操作修改 却失败时,前一张表也必须回到修改前的状态,否则数据 库的内容不统一,甲储户白白损失一百元,信息必然是不 正确的.因此进行事务管理是必须的. 传统地,我们认为一个事务包括了对一个或多个表的 修改,而随着分布式数据库和数据仓库的发展,事务可能 包括了对一个或多个数据库的修改.在上例中甲乙两用户 就可能是异地用户,信息分储在不同地域的不同数据库中, 上述的一个事务就涉及到了对不同数据库的操作. 2PowerBuildel”中的事务管理 作为数据库的前台开发工具PowerBuilder支持事务管理 的操作.在PowerBuilder中有一种称作事务(transaction)的 对象,这个对象是PowerBuilder应用与数据库的通讯区域. PowerBuilder在应用开始时建立一个全局的事务对象SQtC.A. 由于大多数的应用只用到一个数据库,所以一般开发者主 要也只用SQLCA作为与唯一数据库连接的事务对象. PowerScript中常用的事务管理的语句有四个:COMM1T, ROLLBACK,CONNECT,DISCONNECT. 当需要应用与数据库建立连接时使用CONNECT这一操 作命令,取消连接时执行DISCONNECT,这两个命令一般分 别用在应用的开始和结束,也就是Application的Open和 Close事件中. 当一个事务的数据库修改都成功地完成后,修改须提 交给数据库,COMM1T语句是一个旧事务结束和一个新事 务开始的界线.在修改被提交前,数据库的数据并没有被 真正地修改,这些修改被保留在某个工作区,只有作修改 的用户才能看到这些被修改后的值,提交之后,则所有的 用户就都可以看到新值了. 在事务的进程中发生某些错误,或者在操作中出于种 种原因打算中止事务,须用ROLLBACK命令回退事务,如 果已作的操作不用ROLLBACK命令取消,这些操作必将错 误地作为下一个事务的一部分而导致数据库的混乱. 如果使用的是多窗口的应用,却只用一个事务对象, 就应格外注意ROLLBACK和COMM1T会影响事务的逻辑一 致性.在某个窗口执行的这两个指令会使其他窗口应用中 所进行到一半的工作提交或回退. 在多用户系统中,修改和提交的时间越接近,提交成 功的可能性就越高.因为一个事务中所有的SQL语句全部 执行

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档