Bonjour,

Je développe actuellement un serveur en C++ communiquant avec une BDD par l'intermédiaire de mysqlconnector c++.

Mon code compile et fonctionne parfaitement en mode débuggage. En revanche quand je passe en mode release, apparemment, ma fonction openConnection() qui permet de se connecter à la base ne fonctionne plus.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
try
{
	m_driver = get_driver_instance(); //on charge le driver MySQL
	MessageBox(NULL, "123123132", "Service Error", MB_SERVICE_NOTIFICATION | MB_OK);
	m_cnx = m_driver->connect(m_url, m_user, m_passwd); //on crée la connexion
	MessageBox(NULL, "00000000000000", "Service Error", MB_SERVICE_NOTIFICATION | MB_OK);
	m_cnx->setSchema(m_db); //on selectionne la BDD
	m_stmt = m_cnx->createStatement(); //pour executer des requetes
}
catch (sql::SQLException& ex)
{ //erreur lors de la construction de l'objet on le detruit proprement.
	closeConnection();
	std::stringstream t ;
	t << ex.getErrorCode();
	MessageBox(NULL, t.str().c_str(), "123 Error", MB_SERVICE_NOTIFICATION | MB_OK);
	throw ex;
}
m_connected = true;
Les messageBox() ne sont la que pour le débuggage du mode release. Donc pour résumer, ce code tourne et fonctionne (m_driver->connect() passe sans soucis) en mode debug mais en release il provoque une exception avec l'erreur : "Can't connect to ...." avec le code d'erreur 1243156. Pour infos, ex.getSQLstate() me retourne "HY000".

Voila si quelqu'un a un début de piste, je lui serais extrêmement reconnaissant.

Merci d'avance.