uo_remote_sqlca.sru 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. $PBExportHeader$uo_remote_sqlca.sru
  2. forward
  3. global type uo_remote_sqlca from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_remote_sqlca from nonvisualobject autoinstantiate
  7. end type
  8. forward prototypes
  9. public function integer init_remote_sqlca ()
  10. public function integer get_remote_sqlca (integer arg_cnt_no, ref string arg_cntname, ref string arg_dbms, ref string arg_database, ref string arg_userid, ref string arg_dbpass, ref string arg_logid, ref string arg_logpassword, ref string arg_servername, ref string arg_dbparm, ref string arg_msg)
  11. public function integer set_remote_sqlca (integer arg_cnt_no, string arg_cntname, string arg_dbms, string arg_database, string arg_userid, string arg_dbpass, string arg_logid, string arg_logpassword, string arg_servername, string arg_dbparm, ref string arg_msg)
  12. public function integer add_cntno ()
  13. public function integer del_cntno ()
  14. public function integer cnt_remote_sqlca (integer arg_cnt_no, ref transaction arg_transaction, ref string arg_msg)
  15. end prototypes
  16. public function integer init_remote_sqlca ();//init_remote_sqlca
  17. string cnt_count
  18. int ls_i
  19. cnt_count=ProfileString (sys_inifilename, "remote_sqlca", "cnt", '1')
  20. sys_remote_sqlca_p=integer(cnt_count)
  21. //for ls_i=1 to sys_remote_sqlca_p
  22. // sys_remote_sqlca[ls_i]=create transaction
  23. //
  24. //next
  25. return 0
  26. end function
  27. public function integer get_remote_sqlca (integer arg_cnt_no, ref string arg_cntname, ref string arg_dbms, ref string arg_database, ref string arg_userid, ref string arg_dbpass, ref string arg_logid, ref string arg_logpassword, ref string arg_servername, ref string arg_dbparm, ref string arg_msg);//Get_remote_sqlca(arg_cnt_no,arg_cntname,arg_dbms,arg_database,arg_userid,arg_dbpass,arg_logid,arg_logpassword,arg_servername,arg_dbparm,arg_msg)
  28. int rslt=1
  29. if arg_cnt_no<=0 or arg_cnt_no>sys_remote_sqlca_p then
  30. arg_msg='连接标号不在系统设置范围'
  31. rslt=0
  32. goto ext
  33. end if
  34. arg_cntname=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "cntname", "" )
  35. arg_dbms=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbms", "MSS Microsoft SQL Server 6.x" )
  36. arg_database=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "database", "")
  37. arg_userid =ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "userid", 'sa')
  38. arg_dbpass =f_psw_bczh(ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbpass",''),1,sys_power_key)
  39. arg_logid =ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "logid", 'sa')
  40. arg_logpassword=f_psw_bczh(ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "LogPassWord",''),1,sys_power_key)
  41. arg_servername=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "servername", '')
  42. arg_dbparm=f_psw_bczh(ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbparm", ''),1,sys_power_key)
  43. ext:
  44. return rslt
  45. end function
  46. public function integer set_remote_sqlca (integer arg_cnt_no, string arg_cntname, string arg_dbms, string arg_database, string arg_userid, string arg_dbpass, string arg_logid, string arg_logpassword, string arg_servername, string arg_dbparm, ref string arg_msg);//set_remote_sqlca
  47. int rslt=1
  48. if arg_cnt_no<=0 or arg_cnt_no>sys_remote_sqlca_p then
  49. arg_msg='连接标号不在系统设置范围'
  50. rslt=0
  51. goto ext
  52. end if
  53. SetProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "cntname", arg_cntname)
  54. SetProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbms", arg_dbms)
  55. SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "database", arg_database)
  56. SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "userid", arg_userid)
  57. SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbpass", f_psw_bczh(arg_dbpass,0,sys_power_key))
  58. SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "logid", arg_logid)
  59. SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "LogPassWord",f_psw_bczh(arg_logpassword,0,sys_power_key))
  60. SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "servername", arg_servername)
  61. SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbparm", f_psw_bczh(arg_dbparm,0,sys_power_key))
  62. ext:
  63. return rslt
  64. end function
  65. public function integer add_cntno ();string cnt_count='1'
  66. cnt_count=ProfileString (sys_inifilename, "remote_sqlca", "cnt", '1')
  67. setProfileString (sys_inifilename, "remote_sqlca", "cnt", string(integer(cnt_count)+1))
  68. sys_remote_sqlca_p=integer(cnt_count)+1
  69. return 0
  70. end function
  71. public function integer del_cntno ();string cnt_count
  72. cnt_count=ProfileString (sys_inifilename, "remote_sqlca", "cnt", '2')
  73. setProfileString (sys_inifilename, "remote_sqlca", "cnt", string(integer(cnt_count) - 1))
  74. sys_remote_sqlca_p=integer(cnt_count) - 1
  75. return 0
  76. end function
  77. public function integer cnt_remote_sqlca (integer arg_cnt_no, ref transaction arg_transaction, ref string arg_msg);//cnt_remote_sqlca(arg_cnt_no,arg_transaction,arg_msg)
  78. int rslt=1
  79. if arg_cnt_no<=0 or arg_cnt_no>sys_remote_sqlca_p then
  80. arg_msg='连接标号不在系统设置范围'
  81. rslt=0
  82. goto ext
  83. end if
  84. disconnect using arg_transaction;
  85. destroy arg_transaction
  86. arg_transaction=create transaction
  87. string arg_cntname,arg_dbms,arg_database,arg_userid,arg_dbpass,arg_logid,arg_logpassword,arg_servername,arg_dbparm
  88. rslt=Get_remote_sqlca(arg_cnt_no,arg_cntname,arg_dbms,arg_database,arg_userid,arg_dbpass,arg_logid,arg_logpassword,arg_servername,arg_dbparm,arg_msg)
  89. if rslt=0 then
  90. arg_msg="提取连接信息失败>"+arg_msg
  91. goto ext
  92. end if
  93. arg_transaction.DBMS = arg_dbms
  94. arg_transaction.database = arg_database
  95. arg_transaction.userid = arg_userid
  96. arg_transaction.dbpass = arg_dbpass
  97. arg_transaction.logid = arg_logid
  98. arg_transaction.logpass = arg_logpassword
  99. arg_transaction.servername = arg_servername
  100. arg_transaction.dbparm = arg_dbparm
  101. connect using arg_transaction;
  102. If arg_transaction.SQLCode<>0 Then
  103. arg_msg="连接数据库失败>"+arg_transaction.sqlerrtext
  104. rslt=0
  105. goto ext
  106. End if
  107. ext:
  108. return rslt
  109. end function
  110. on uo_remote_sqlca.create
  111. call super::create
  112. TriggerEvent( this, "constructor" )
  113. end on
  114. on uo_remote_sqlca.destroy
  115. TriggerEvent( this, "destructor" )
  116. call super::destroy
  117. end on