1 / 12
文档名称:

PB中的事务管理.docx

格式:docx   大小:15KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

PB中的事务管理.docx

上传人:zhuwo11 2022/6/24 文件大小:15 KB

下载得到文件列表

PB中的事务管理.docx

相关文档

文档介绍

文档介绍:数据库的事务管理
在数据库中,所谓的事务可以理解成是 一组逻辑操作单元,使数据从一种状态 变换到另一种状态。为确保数据库中数 据的一致性, DML 看作是一个离散的队 列:从开始到它全部完成后,数据的一 致性可以保持,commit可以提交讯区域 由于很多时候应用系统只用到单一数据 库,所以一般开发者主要也只用 SQLCA 作为与唯一数据库连接的事务对象。
PowerScript 中常用的事务管理的语句 有四: COMMIT,ROLLBACK,CONNECT, DISCONNECT。
当您需要应用与数据库建立连接时使用 CONNECT 这一操作命令,取消连接时执 行 DISCONNECT ,这两个命令一般分别用 在应用的开始和结束,也就是 Application 的 Open 和 Close 事件中。
当一个事务的数据库修改都成功地完成 后,修改须提交给数据库,COMMIT语句 是一个旧事务结束和一个新事务开始的 界线。在修改被提交前,数据库的数据 并没有被真正地修改,这些修改被保留 在某个工作区,只有作修改的用户才能 看到这些被修改后的值,提交之后,则 所有的用户就都可以看到新值了。在事 务的进程中发生某些错误,或者在操作 中出于种种原因打算中止事务,须用
ROLLBACK 命令回退事务,如果已作的操
作不用 ROLLBACK 命令取消,这些操作必
将错误地作为下一个事务的一部分而导
致数据库的混乱。
如果您使用的是多窗口的应用,却只用 一个事务对象,就应格外注意 ROLLBACK 和 COMMIT 会影响事务的逻辑一致性。在 某个窗口执行的这两个指令会使其他窗 口应用中所进行到一半的工作提交或回 退。
在多用户系统中,修改和提交的时间越
接近,提交成功的可能性就越高。因为 一个事务中所有的 SQL 语句全部执行成 功而提交却失败是完全可能发生的,例 如在您的事务过程中,另一个用户修改 了数据并提交,这很可能使您作出的修 改无效,这时 COMMIT 将失败,您必须回 退这一事务的全部。
SQLCA 的 AutoCommit 属性 事务对象有一个 AutoCommit 的属性可 以使开发者简化对事务管理的操作,这
» ▲ P ▲ > > | I t “ _ “ ■& t hit frV - _ 片亠
对其赋值。当其为真时,PB自动隐式提 交。
当然,您可以设置 AutoCommit 属性为假 (缺省值),使用 COMMIT 或 ROLLBACK 这 样的关键词来显式提交或回退事务。
大多数应用中,一部分的数据库操作是 要成组提交的,而另一些则不用。因此 我们可以利用 AutoCommit 的特性来确 定事务的起点,当我们把 AutoCommit 的 属性设为 True 时,系统设定此时为事务 的起点。当 AutoCommit 设为 False 时, 系统自动消取这一事务。因此你可以先
把AutoCommit设为False,当您需要开 始一个事务时,将其置为True,此刻即 为事务起始点。
PB 内部这种事务管理的最大优点是方便。
您不去考虑整个事务,
而只需把您所作
的修改提交或滚回即可。但是方便与可 控性总是矛盾的,在 PB 中没有存储点和 嵌套事务管理的机制,即使您所使用的
数据库支持这些特性,在 PB 中却无法得 以体现。不过在普通的应用中,存储点 和嵌套事务管理并不是必须的,一般的 事务管理足以够用。
动态 sql 在某些应用中,我们也的确需要利用所 用的数据库系统的嵌套事务和存储点的 特性,而 PB 内部的事务管理没有提供这 样的功能,必须自己设计,也即常说的 动态 sql。
自己进行事务管理的方式是直接使用数 据库本身的事务指令。当您使用自己的 管理方式时,就应使 PB 停止管理事务 即设置Auto Commit为False,系统内部 就不会自动建构事务处理的命令了。实 现人工事务管理的方式是采用 EXECUTE
nr
IMMEDIATE :ls_sql 这条 PB 指令来执行
任意的数据库操作。你所需做的是将数 据库指令编辑成一个字符串ls_sql(其
可以是建表、建主键、存储过程等 DDL), 比方可以使用如下:
EXECUTE IMMEDIATE BEGIN TRANSACTION trans-name 这样的指令开始一个事务。采用这种方 法,只要您所用的数据库支持嵌套事务 和存储点等事务管理,我们通过 PB 开发 出的应用也就同样可以实现。
在 PB 中提供的事务管理的方法是多种 多样的,只要您灵活运用,就一定能设 计出优秀的数据库应用来。
后台存储过程在 PB 前台的调用方法之
函数法
1.
在前台要申明一个事务
(