1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
   |  
// Valeur de retour
int ret=DB_CONNECTION_ERREUR;
 
// Creation environnement
retcode = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE, &env);
 
// Environnement correct
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
    // On précise la version de ODBC utilisée
    retcode = SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL  _OV_ODBC3,0);
    // Version correcte
    if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
       // Création environnement odbc
       retcode = SQLAllocHandle(SQL_HANDLE_DBC,env,&hdbc); 
       // Environnement correct
       if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
                // Initialisation du tps de connexion a 5 s.
                SQLSetConnectAttr(hdbc,SQL_LOGIN_TIMEOUT,(void *)5,0);
                // String de connexion passée en paramètre
                char strCon[TAILLE_REQ];
                strcpy(strCon,ConstruireConnexion().c_str());
                // Connexion à une BDD
                retcode = SQLDriverConnect(hdbc,NULL,(SQLCHAR *) strCon,SQL_NTS, (SQLCHAR*)OutConnectString,sizeof(OutConnectString  ), &sqlInt,SQL_DRIVER_COMPLETE);
                // Connexion BDD effectuée
                if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
                                    ret=InitBDD();
                }
       }
   }
}
 
 
string COdbcMySql::ConstruireConnexion(){
//chaine de connexion que l'on passe
    //"DRIVER={MySQL ODBC 3.51 river};DATABASE=ife;SERVER=roi;
    //PORT=3306;UID=ife;PWD=********";
    string sRes = "";
    sRes += "DRIVER={";
    sRes += m_sDriver;
    sRes += "};DATABASE=";
    sRes += m_sDatabase;
    sRes += ";SERVER=";
    sRes += m_sServer;
    sRes += ";PORT=";
    sRes += m_sPort;
    sRes += ";UID=";
    sRes += m_sId;
    sRes += ";PWD=";
    sRes += m_sMdp;
    return sRes;
} | 
Partager