uo_transactionobject.sru 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. $PBExportHeader$uo_transactionobject.sru
  2. forward
  3. global type uo_transactionobject from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_transactionobject from nonvisualobject
  7. end type
  8. global uo_transactionobject uo_transactionobject
  9. type variables
  10. Transaction commit_transaction
  11. private boolean ins_hascreate = false
  12. end variables
  13. forward prototypes
  14. public function integer uof_new_tran (ref string arg_msg)
  15. public function integer uof_set_tran (transaction arg_tran)
  16. private subroutine pf_cleare_tran ()
  17. end prototypes
  18. public function integer uof_new_tran (ref string arg_msg);Int rslt = 1
  19. pf_cleare_tran()
  20. commit_transaction = Create Transaction
  21. ins_hascreate = False
  22. commit_transaction.Database = sqlca.Database
  23. commit_transaction.DBMS = sqlca.DBMS
  24. commit_transaction.DBParm = sqlca.DBParm
  25. commit_transaction.DBPass = sqlca.DBPass
  26. commit_transaction.Lock = sqlca.Lock
  27. commit_transaction.LogID = sqlca.LogID
  28. commit_transaction.LogPass = sqlca.LogPass
  29. commit_transaction.ServerName = sqlca.ServerName
  30. commit_transaction.UserID = sqlca.UserID
  31. CONNECT Using commit_transaction;
  32. IF commit_transaction.SQLCode <> 0 THEN
  33. rslt = 0
  34. arg_msg = '连接数据库失败,' + commit_transaction.SQLErrText
  35. GOTO ext
  36. END IF
  37. EXECUTE Immediate 'SET DEADLOCK_PRIORITY low' Using commit_transaction;
  38. IF commit_transaction.SQLCode <> 0 THEN
  39. rslt = 0
  40. arg_msg = '初始化数据库连接失败,' + commit_transaction.SQLErrText
  41. GOTO ext
  42. END IF
  43. ext:
  44. RETURN rslt
  45. end function
  46. public function integer uof_set_tran (transaction arg_tran);int rslt = 1
  47. pf_cleare_tran()
  48. commit_transaction = arg_tran
  49. return rslt
  50. end function
  51. private subroutine pf_cleare_tran ();IF ins_hascreate THEN
  52. DISCONNECT Using commit_transaction;
  53. Destroy commit_transaction
  54. SetNull(commit_transaction)
  55. ins_hascreate = False
  56. END IF
  57. end subroutine
  58. on uo_transactionobject.create
  59. call super::create
  60. TriggerEvent( this, "constructor" )
  61. end on
  62. on uo_transactionobject.destroy
  63. TriggerEvent( this, "destructor" )
  64. call super::destroy
  65. end on
  66. event constructor;commit_transaction = sqlca
  67. end event
  68. event destructor;pf_cleare_tran()
  69. end event