$PBExportHeader$uo_remote_sqlca.sru forward global type uo_remote_sqlca from nonvisualobject end type end forward global type uo_remote_sqlca from nonvisualobject autoinstantiate end type forward prototypes public function integer init_remote_sqlca () 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) 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) public function integer add_cntno () public function integer del_cntno () public function integer cnt_remote_sqlca (integer arg_cnt_no, ref transaction arg_transaction, ref string arg_msg) end prototypes public function integer init_remote_sqlca ();//init_remote_sqlca string cnt_count int ls_i cnt_count=ProfileString (sys_inifilename, "remote_sqlca", "cnt", '1') sys_remote_sqlca_p=integer(cnt_count) //for ls_i=1 to sys_remote_sqlca_p // sys_remote_sqlca[ls_i]=create transaction // //next return 0 end function 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) int rslt=1 if arg_cnt_no<=0 or arg_cnt_no>sys_remote_sqlca_p then arg_msg='连接标号不在系统设置范围' rslt=0 goto ext end if arg_cntname=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "cntname", "" ) arg_dbms=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbms", "MSS Microsoft SQL Server 6.x" ) arg_database=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "database", "") arg_userid =ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "userid", 'sa') arg_dbpass =f_psw_bczh(ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbpass",''),1,sys_power_key) arg_logid =ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "logid", 'sa') arg_logpassword=f_psw_bczh(ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "LogPassWord",''),1,sys_power_key) arg_servername=ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "servername", '') arg_dbparm=f_psw_bczh(ProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbparm", ''),1,sys_power_key) ext: return rslt end function 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 int rslt=1 if arg_cnt_no<=0 or arg_cnt_no>sys_remote_sqlca_p then arg_msg='连接标号不在系统设置范围' rslt=0 goto ext end if SetProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "cntname", arg_cntname) SetProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbms", arg_dbms) SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "database", arg_database) SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "userid", arg_userid) SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbpass", f_psw_bczh(arg_dbpass,0,sys_power_key)) SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "logid", arg_logid) SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "LogPassWord",f_psw_bczh(arg_logpassword,0,sys_power_key)) SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "servername", arg_servername) SETProfileString (sys_inifilename, "remote_sqlca"+string(arg_cnt_no,'00'), "dbparm", f_psw_bczh(arg_dbparm,0,sys_power_key)) ext: return rslt end function public function integer add_cntno ();string cnt_count='1' cnt_count=ProfileString (sys_inifilename, "remote_sqlca", "cnt", '1') setProfileString (sys_inifilename, "remote_sqlca", "cnt", string(integer(cnt_count)+1)) sys_remote_sqlca_p=integer(cnt_count)+1 return 0 end function public function integer del_cntno ();string cnt_count cnt_count=ProfileString (sys_inifilename, "remote_sqlca", "cnt", '2') setProfileString (sys_inifilename, "remote_sqlca", "cnt", string(integer(cnt_count) - 1)) sys_remote_sqlca_p=integer(cnt_count) - 1 return 0 end function 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) int rslt=1 if arg_cnt_no<=0 or arg_cnt_no>sys_remote_sqlca_p then arg_msg='连接标号不在系统设置范围' rslt=0 goto ext end if disconnect using arg_transaction; destroy arg_transaction arg_transaction=create transaction string arg_cntname,arg_dbms,arg_database,arg_userid,arg_dbpass,arg_logid,arg_logpassword,arg_servername,arg_dbparm 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) if rslt=0 then arg_msg="提取连接信息失败>"+arg_msg goto ext end if arg_transaction.DBMS = arg_dbms arg_transaction.database = arg_database arg_transaction.userid = arg_userid arg_transaction.dbpass = arg_dbpass arg_transaction.logid = arg_logid arg_transaction.logpass = arg_logpassword arg_transaction.servername = arg_servername arg_transaction.dbparm = arg_dbparm connect using arg_transaction; If arg_transaction.SQLCode<>0 Then arg_msg="连接数据库失败>"+arg_transaction.sqlerrtext rslt=0 goto ext End if ext: return rslt end function on uo_remote_sqlca.create call super::create TriggerEvent( this, "constructor" ) end on on uo_remote_sqlca.destroy TriggerEvent( this, "destructor" ) call super::destroy end on