Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- La funzione effettua la connessione col database
- Parametri:
- trans_object transaction object utilizzato per la connessione
- userid utenza di connessione
- pwd password di connessione
- In caso di errore chiude l'applicazione.
- Ne caso in cui nel file .INI siano specificati UserID e Pwd vengono utilizzati al
- posto dei parametri in input.
- */
- string nome_file, dba_pwd, dsn
- int indice
- string ls_language, ls_numeric_characters
- dsn = space(50)
- nome_file = var_glob.n_appl + ".ini"
- trans_object.dbms = ProfileString(nome_file, var_glob.PROFILO, "DBMS","")
- trans_object.database = ProfileString(nome_file, var_glob.PROFILO, "database","")
- trans_object.servername = ProfileString(nome_file, var_glob.PROFILO, "ServerName","")
- trans_object.logid = userid
- trans_object.logpass = pwd
- trans_object.UserID = userid
- trans_object.DBPass = pwd
- IF (var_glob.PROFILO = "ANY") THEN
- //profilo di connessione per database anywhere
- dsn = ProfileString(nome_file,var_glob.PROFILO,"DataSourceName","")
- trans_object.DBPARM = 'connectstring='+'~''+'DSN=' + dsn + ';uid=' + trans_object.logid +';pwd=' + trans_object.logpass + '~''
- ELSEIF var_glob.profilo = "ORA" THEN
- //profilo di connessione per database oracle
- trans_object.DBParm = ProfileString(nome_file, var_glob.PROFILO, "DBParm","")
- END IF
- SetPointer (hourglass!)
- CONNECT USING trans_object;
- SetPointer (arrow!)
- IF trans_object.sqlcode <> 0 THEN
- //verifico se l'errore è di mancata connessione
- IF trans_object.sqldbcode = 999 THEN
- // 210=Errore in fase di connessione al Database
- messaggio('global', '210', 'Stop')
- return -2
- //verifico se l'errore è di utente non noto o password errata
- ELSEIF ProfileInt(var_glob.n_appl + ".ini", "parametri","uid_pwd_err", 0) = &
- trans_object.sqldbcode OR trans_object.sqldbcode = 100 THEN
- Messagebox('Connessione','Utente o PassWord errati!', Exclamation!)
- return -1
- ELSE
- trans_proc(sqlca)
- END IF
- END IF
- IF var_glob.profilo = "ORA" THEN
- // Setta il linguaggio di scambio dati con il server in inglese (serve soprattutto per le date)
- ls_language = "alter session set nls_language = 'american'"
- execute immediate : ls_language USING trans_object;
- // Setta il separatore dei decimali a . e delle migliaia a ,
- ls_numeric_characters = "alter session set nls_numeric_characters = '.,'"
- execute immediate : ls_numeric_characters USING trans_object;
- END IF
- return 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement