中国计算机报1998年总732期  

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 的内部事务对象内容。
  多个数据窗口控件,可以共享某个事务对象。事务控制以事务对象为单位,事务的提交和回滚都是对应某个事务对象而言。连接数据库时只需在使用前进行一次连接即可,不必对数据窗口控件分别连接。可以通过建立多个事务对象同时与多个数据库建立连接,也可以多个事务对象根据不同的注册要求,设置不同的注册参数,连接至同一个数据库。

 back.gif (1185 字节)