f_connect_db_new.srf 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. $PBExportHeader$f_connect_db_new.srf
  2. global type f_connect_db_new from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_connect_db_new (string arg_servername, string arg_databasename, string arg_loginid, string arg_loginpwd, ref transaction arg_transaction, ref string arg_msg)
  6. end prototypes
  7. global function integer f_connect_db_new (string arg_servername, string arg_databasename, string arg_loginid, string arg_loginpwd, ref transaction arg_transaction, ref string arg_msg);Int rslt = 1
  8. String ls_dbms,ls_databasename
  9. String ls_logid,ls_logpass,ls_servername
  10. arg_transaction.DBMS = "SNC SQL Native Client(OLE DB)"
  11. arg_transaction.Database = arg_databasename
  12. arg_transaction.UserID = sqlca.UserID
  13. arg_transaction.DBPass = sqlca.DBPass
  14. arg_transaction.LogID = arg_LoginID
  15. arg_transaction.LogPass = f_psw_bczh(arg_LoginPwd,1,sys_power_key)
  16. arg_transaction.ServerName = arg_ServerName
  17. arg_transaction.Lock = "RC"
  18. arg_transaction.AutoCommit = false
  19. arg_transaction.DBParm = "Database= '" + arg_databasename + "',PBTrimCharColumns='YES'"
  20. CONNECT USING arg_transaction;
  21. IF arg_transaction.SQLCode <> 0 THEN
  22. arg_msg = '连接失败,'+arg_transaction.SQLErrText
  23. rslt = 0
  24. GOTO ext
  25. END IF
  26. String strkey
  27. strkey = 'I~'m LongJoe'
  28. EXECUTE Immediate :strkey Using arg_transaction;
  29. EXECUTE Immediate "set transaction isolation level READ UNCOMMITTED" Using arg_transaction;
  30. EXECUTE Immediate 'SET DEADLOCK_PRIORITY low' Using arg_transaction;
  31. IF arg_transaction.SQLCode <> 0 THEN
  32. HALT;
  33. END IF
  34. ext:
  35. RETURN rslt
  36. end function