词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。