123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- $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
|