p
u
b
l
i
c
i
t
é
publicité

Discussion: MySQL connector c++

  1. #1
    Membre du Club
    Inscrit en
    juin 2008
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 84
    Points : 44
    Points
    44

    Par défaut MySQL connector c++

    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.

  2. #2
    Expert Confirmé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur R&D / Doctorant
    Inscrit en
    avril 2007
    Messages
    1 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur R&D / Doctorant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 1 322
    Points : 2 552
    Points
    2 552

    Par défaut

    N'as-tu pas simplement un problème de configuration en release concernant l'intégration de mysqlconnector c++ ?
    Vous postez du code ? Merci d'utiliser les balises [CODE] ... [/CODE]
    Un message vous paraît pertinent ? Merci de le gratifier d'un vote positif
    Vous avez obtenu une réponse à votre question ? Merci d'utiliser le tag
    __________________
    Ingénieur R&D, diplômé en 2007 de l'ISIMA
    Doctorant à l'EDSPI de Clermont-Ferrand, depuis 2011.

  3. #3
    Membre du Club
    Inscrit en
    juin 2008
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 84
    Points : 44
    Points
    44

    Par défaut

    Non, la configuration est correcte.

    Apparemment, et pour une raison qui m'échappe, le problème se corrige en modifiant ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_cnx = m_driver->connect(m_url, m_user, m_passwd); //on crée la connexion
    en ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_cnx = m_driver->connect(m_url.c_str(), m_user.c_str(), m_passwd.c_str()); //on crée la connexion
    Voila des fois que ça puisse aider quelqu'un.

  4. #4
    Invité régulier
    Inscrit en
    juin 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : juin 2007
    Messages : 11
    Points : 5
    Points
    5

    Par défaut

    Cette solution ne fonctionne pas chez moi...
    En revanche, cela fonctionne en utilisant comme paramètre de config :
    Propriétés de config > C/C++ > Génération de code > Runtime : /MDd

    La raison semble être que les std::string font 28 bits en debug et 32 en release...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MySQL Connector et VB .NET
    Par JamesFrance dans le forum VB.NET
    Réponses: 13
    Dernier message: 07/03/2007, 13h48
  2. Réponses: 2
    Dernier message: 21/10/2006, 15h20
  3. [JDBC] Pb avc mysql-connector sous Debian
    Par laulaurent dans le forum JDBC
    Réponses: 3
    Dernier message: 04/05/2006, 00h30
  4. MySql connector ODBC
    Par 12_darte_12 dans le forum Administration
    Réponses: 3
    Dernier message: 02/11/2005, 15h40
  5. [VB.NET] [MySQL Connector Net 1.0.4] Pb de MySqlConnection
    Par toxine dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/03/2005, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo