$PBExportHeader$f_connect_db.srf global type f_connect_db from function_object end type forward prototypes global function integer f_connect_db (long arg_connectionid, ref transaction arg_transaction, ref string arg_msg) end prototypes global function integer f_connect_db (long arg_connectionid, ref transaction arg_transaction, ref string arg_msg);Int rslt = 1 String ls_dbms,ls_databasename String ls_logid,ls_logpass,ls_servername SELECT dbms,databasename,logid,logpass,servername INTO :ls_dbms,:ls_databasename,:ls_logid,:ls_logpass,:ls_servername FROM u_outerconnection Where connectionid = :arg_connectionid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询连接资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF //arg_transaction.DBMS = ls_dbms //arg_transaction.Database = ls_databasename //arg_transaction.LogID = ls_logid //arg_transaction.LogPass = ls_logpass //arg_transaction.ServerName = ls_servername arg_transaction.DBMS = "SNC SQL Native Client(OLE DB)" arg_transaction.Database = ls_databasename //arg_transaction.UserID = ProfileString (sys_inifilename, "database", "userid", "") //arg_transaction.DBPass = f_psw_bczh(ProfileString (sys_inifilename, "database", "dbpass", ""),1,sys_power_key) arg_transaction.LogID = ls_logid arg_transaction.LogPass = ls_logpass arg_transaction.ServerName = ls_servername arg_transaction.Lock = "RU" arg_transaction.AutoCommit = False arg_transaction.DBParm = "Database= '" + ls_databasename + "',PBTrimCharColumns='YES'" CONNECT USING arg_transaction; IF arg_transaction.SQLCode <> 0 THEN arg_msg = '连接失败,'+arg_transaction.SQLErrText rslt = 0 GOTO ext END IF String strkey strkey = 'I~'m LongJoe' EXECUTE Immediate :strkey USING arg_transaction; // 验证语句 EXECUTE Immediate "set transaction isolation level READ UNCOMMITTED" Using arg_transaction; EXECUTE Immediate 'SET DEADLOCK_PRIORITY low' Using arg_transaction; IF arg_transaction.SQLCode <> 0 THEN HALT; END IF ext: RETURN rslt end function