请输入您要查询的百科知识:

 

词条 SetTransObject
释义

函数作用:为数据窗口或者DataStore指定一个事务对象。必须通过事务对象,PowerBuilder才能够和数据库进行通信,才能够进行数据处理。这里的事务对象是基于程序的事务对象,可以对数据库事务进行更多的控制。在程序中,通过SQL语句中的Connect、 Rollback、CommIT等进行事务的控制。使用该事务对象,可以为PB应用程序建立一个和数据库的永久性联结,在数据窗口或者DataStore每次进行Retrieve或者Update前不必再临时建立联结,而建立联结是比较费资源的一种操作,所以使用该函数可以提供更好的程序执行性能。在调用该函数之前,应该设置事务对象的各个参数。缺省的事务对象SQLCA,是一个Transaction类型的全局变量,可以在PB应用程序中直接使用。也可以定义我们自己的事务对象。和该函数类型的还有SetTrans,两者的区别是:SetTransObject不能对事务进行自动控制,都是由程序来控制的;使用函数SetTrans时程序不能控制事务对象,这时的事务都是自动控制的。使用事务对象按照如下步骤进行:

1)设置事务对象的参数,根据DBMS的不同而不同,可以在DB Profile对话框的Preview中找到语法。这些教本通常在Application的Open事件中编写;

2)使用SQL语句Connect联结数据库。通常也是在Application的Open事件中编写该教本。需要注意的是,一定要检查是否联结成功。可以通过SQLCA.SQLCode来判断,如果SQLCA.SQLCode等于1则表示联结成功。如果联结不成功,则不应该继续允许。

3)调用SetTransObject函数,为数据窗口对象设置事务对象。通常在窗口的Open事件或者数据窗口的Constructor事件中编写。

4)在调用函数Update之后,检查返回值是否为1,如果是1则使用事务语句CommIT提交数据,否则调用Rollback回退事务。

函数语法:integer dwcontrol.SetTransObject ( transaction transaction )

ldwcontrol:要设置事务对象的DataWindow、下拉子数据窗口或者DataStore的名称。

ltransaction:事务对象名称,是Transaction类型的变量。

返 回 值:integer类型,1表示成功,如果发生错误则返回-1,如果任意参数为Null则返回Null。

代码实例:

例1:以下脚本在窗口的Open事件中编写:

dw_1.SetTransObject(SQLCA)

例子2:以下脚本在数据窗口的Constructor事件中编写:

This.SetTransObject(SQLCA)

例子3:以下教本在Application对象的Open事件中编写:

// Profile Mpxt

SQLCA.DBMS = ProfileString('setup.ini','databASE','DBMS','')

SQLCA.AutoCommIT = False

SQLCA.DBParm = ProfileString('setup.ini','databASE','DBParm','')

connect;

if sqlca.SQLcode = 0 then

Open(w_main)

else

MessageBox('错误','不能和数据库建立连接。按任意键关闭系统......',StopSign!)

halt close;

end if

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/31 20:00:57