Advertisement
Guest User

Untitled

a guest
Jan 8th, 2014
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. La funzione effettua la connessione col database
  3. Parametri:
  4.     trans_object      transaction object utilizzato per la connessione
  5.     userid          utenza di connessione
  6.     pwd         password di connessione
  7. In caso di errore chiude l'applicazione.
  8. Ne caso in cui nel file .INI siano specificati UserID e Pwd vengono utilizzati al
  9. posto dei parametri in input.
  10. */
  11.  
  12. string nome_file, dba_pwd, dsn
  13. int indice
  14. string ls_language, ls_numeric_characters
  15.  
  16. dsn = space(50)
  17. nome_file = var_glob.n_appl + ".ini"
  18.  
  19.  
  20. trans_object.dbms = ProfileString(nome_file, var_glob.PROFILO, "DBMS","")
  21. trans_object.database = ProfileString(nome_file, var_glob.PROFILO, "database","")
  22. trans_object.servername = ProfileString(nome_file, var_glob.PROFILO, "ServerName","")
  23. trans_object.logid = userid
  24. trans_object.logpass = pwd
  25. trans_object.UserID = userid
  26. trans_object.DBPass = pwd
  27.  
  28.  
  29. IF (var_glob.PROFILO = "ANY") THEN
  30.     //profilo di connessione per database anywhere
  31.     dsn = ProfileString(nome_file,var_glob.PROFILO,"DataSourceName","")
  32.     trans_object.DBPARM = 'connectstring='+'~''+'DSN=' + dsn + ';uid=' + trans_object.logid +';pwd=' + trans_object.logpass + '~''
  33. ELSEIF var_glob.profilo = "ORA" THEN   
  34.     //profilo di connessione per database oracle
  35.     trans_object.DBParm = ProfileString(nome_file, var_glob.PROFILO, "DBParm","")
  36.  
  37. END IF 
  38.  
  39. SetPointer (hourglass!)
  40. CONNECT USING trans_object;
  41. SetPointer (arrow!)
  42.  
  43. IF trans_object.sqlcode <> 0 THEN
  44.     //verifico se l'errore è di mancata connessione
  45.     IF trans_object.sqldbcode = 999 THEN
  46.         // 210=Errore in fase di connessione al Database
  47.         messaggio('global', '210', 'Stop')
  48.         return -2
  49.     //verifico se l'errore è di utente non noto o password errata 
  50.     ELSEIF ProfileInt(var_glob.n_appl + ".ini", "parametri","uid_pwd_err", 0) =         &
  51.             trans_object.sqldbcode OR trans_object.sqldbcode = 100 THEN
  52.             Messagebox('Connessione','Utente o PassWord errati!', Exclamation!)
  53.         return -1
  54.     ELSE
  55.         trans_proc(sqlca)
  56.     END IF
  57. END IF
  58.  
  59. IF var_glob.profilo = "ORA" THEN   
  60.     // Setta il linguaggio di scambio dati con il server in inglese (serve soprattutto per le date)
  61.     ls_language = "alter session set nls_language = 'american'"
  62.     execute immediate : ls_language USING trans_object;
  63.    
  64.     // Setta il separatore dei decimali a . e delle migliaia a ,
  65.     ls_numeric_characters = "alter session set nls_numeric_characters = '.,'"
  66.     execute immediate : ls_numeric_characters USING trans_object;
  67. END IF 
  68.  
  69. return 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement