$PBExportHeader$uo_transactionobject.sru forward global type uo_transactionobject from nonvisualobject end type end forward global type uo_transactionobject from nonvisualobject end type global uo_transactionobject uo_transactionobject type variables Transaction commit_transaction private boolean ins_hascreate = false end variables forward prototypes public function integer uof_new_tran (ref string arg_msg) public function integer uof_set_tran (transaction arg_tran) private subroutine pf_cleare_tran () end prototypes public function integer uof_new_tran (ref string arg_msg);Int rslt = 1 pf_cleare_tran() commit_transaction = Create Transaction ins_hascreate = False commit_transaction.Database = sqlca.Database commit_transaction.DBMS = sqlca.DBMS commit_transaction.DBParm = sqlca.DBParm commit_transaction.DBPass = sqlca.DBPass commit_transaction.Lock = sqlca.Lock commit_transaction.LogID = sqlca.LogID commit_transaction.LogPass = sqlca.LogPass commit_transaction.ServerName = sqlca.ServerName commit_transaction.UserID = sqlca.UserID CONNECT Using commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = '连接数据库失败,' + commit_transaction.SQLErrText GOTO ext END IF EXECUTE Immediate 'SET DEADLOCK_PRIORITY low' Using commit_transaction; IF commit_transaction.SQLCode <> 0 THEN rslt = 0 arg_msg = '初始化数据库连接失败,' + commit_transaction.SQLErrText GOTO ext END IF ext: RETURN rslt end function public function integer uof_set_tran (transaction arg_tran);int rslt = 1 pf_cleare_tran() commit_transaction = arg_tran return rslt end function private subroutine pf_cleare_tran ();IF ins_hascreate THEN DISCONNECT Using commit_transaction; Destroy commit_transaction SetNull(commit_transaction) ins_hascreate = False END IF end subroutine on uo_transactionobject.create call super::create TriggerEvent( this, "constructor" ) end on on uo_transactionobject.destroy TriggerEvent( this, "destructor" ) call super::destroy end on event constructor;commit_transaction = sqlca end event event destructor;pf_cleare_tran() end event