PB的事务管理机制
王兴华
Power Builder(简称PB)作为客户/服务器应用客户端开发工具越来越得到广泛使用。理解PB
的事务管理机制对掌握PB和在应用中灵活运用至关重要。
我们知道要对后端数据库操作,首先应进行连接,操作结束后再断开连接。就象VFP
中通过定义的连接Connection来提供连接数据库所需参数,如DBMS名称、数据库名称、注册用户标识、口令、服务器名称等,而PowerBuilder则通过事务对象Transaction
Objects传递连接信息给数据库,也可以从数据库取得信息,PB以指定事务对象进行的连接为事务管理单位。缺省事务对象为SQLCA,SQLCA全局有效,在任何脚本里都可使用,SQLCA
中包含连接数据库所需信息。
可以根据需要使用自定义事务对象,事务对象的使用也同其它对象一样需要定义事务对象变量,然后创建(分配空间),但全局SQLCA
无需定义和创建,SQLCA是应用分流运行时自动被创建。
使用步骤如下:
1、定义事务对象变量transaction OracleTrobject
2、创建事务对象,为事务对象变量分配空间OracleTrobject Transaction
3、指定连接信息
OraleTrobject.DBMS=″ORACIE″
OraleTrobject.Database=″LDMIS″
OraleTrobject.UserID=″wxh″
OraleTrobject.DBpass=″12345″
OraleTrobject.serverName=″jycmain″
OraleTrobject.LogID=″jycwxh″
OraleTrobject.Logpass=″wxh660304″
如果使用SQLCA连接无需1、2步,但仍需使用本步对连接参数设置。
4、连接数据库connect using OracleTrobject或connect,使用SQLCA连接
5、建立事务对象与对应数据窗口连接
dw—oracle.SetTransobject(OracleTrobject)
6、取数据、更新数据
7、提交或回滚事务
COMMIT using OracleTrobject)
Rollback Using Oracltiobject)
8、断开连接、释放事务对象变量
Disconnect using OracleTrobject
Destrog using OracleTrobject
事务对象是数据窗口控件与数据连接的纽带,对使用缺省的事务对象SQLCA连接数据库,则无需使用Using子句。
数据窗口控件可以拥有自己的内部事务对象,通过dw_Oracle.Settrans(OracleTrobject)来设置数据窗口控件dw_Oracle的内部事务对象,实际上是把事务对象OracleTrobject
的内容拷贝到数据窗口控件dw_Oracle的内部事务对象中,然后通过此数据窗口控件对数据库操作,与事务对象OracleTrobject无关,即使之后对事务对象OracleTrobject内容作了改变,也不会影响数据窗口控件dw_Oracle
的内部事务对象内容。
多个数据窗口控件,可以共享某个事务对象。事务控制以事务对象为单位,事务的提交和回滚都是对应某个事务对象而言。连接数据库时只需在使用前进行一次连接即可,不必对数据窗口控件分别连接。可以通过建立多个事务对象同时与多个数据库建立连接,也可以多个事务对象根据不同的注册要求,设置不同的注册参数,连接至同一个数据库。