IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème de compilation Connector C++ (MySQL)


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut Problème de compilation Connector C++ (MySQL)
    Bonjour,

    Voila mon soucis, je n'arrive pas à réutiliser un même pointeur MYSQL pour effectuer plusieurs différentes requête.
    Car si je le réutilise, mysql_query me retourne quelque chose différent de 0 (ce qui veut dire que ça a échoué).

    Je voulais donc savoir si je devais avant chaque nouvelle requête initialiser le pointeur avec mysql_init(NULL) avant chaque mysql_query ?
    Car j'ai essayé, et si je fait un delete de mon pointeur MYSQL puis que je réinitialise un nouveau pointeur MYSQL et que j'appel mysql_query avec ce nouveau pointeur, alors là, tout fonctionne correctement mais j'aimerai avoir 1 seule connexion au serveur de la DB au lieu d'en faire une à chaque fois que je souhaite y accéder :/

    Si vous avez besoin je peux laisser un bout de mon code ?

    Cordialement,

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    tu sembles utiliser la version C de mysqlclient, don je pense qu'il faut que tu mettes ta variable de connexion MYSQL en variable globale, ou membre statique de classe.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    Arf, il est préférable que j'utilise la version C++ ? Si oui elle apporte de meilleurs perf' ?
    Je peux trouver la version C++ où ? Elle s'installe aussi facilement que celle pour le C ?

  4. #4
    Membre éprouvé
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 121
    Par défaut
    Bonjour,

    Perso j'ai defini ca de la manière suivante et aucun problemes

    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
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    public:
     
        string DATABASE;            // Nom de la base de donnée utilisée
     
        string USER;                // Nom d'utilisateur
     
        string HOST;                // Serveur auquel la classe doit se connecter
     
        string PASSWORD;            // Mot de passe utilisé
     
        char *socket_name;          // Nom de la socket
     
        int flags;                  // Flags specifiques MySQL
     
        int port;                   // Pport utilisé
     
        int nb_rows;                // Nombre de lignes retournées par la requete SELECT
     
        int nb_rows_affected;       // Nombre de lignes retournées par les requetes UPDATE,DELETE,REPLACE,INSERT
     
        int nb_colonnes;            // Nombre de colonne du resultat
     
        map<string, char*> Record;  // Contient les enregistrement en cours 
     
        vector<string> Fields;      // Contient la liste des champs
     
     
     
        // Constructeur et destructeur.
     
        MysqlConnexion();    
     
        MysqlConnexion(string host,string user,string pwd);    
     
        ~MysqlConnexion(void);
     
     
     
     
     
        bool Select_DB(string db);
     
        bool Connect();
     
        bool Close();
     
        bool Next();
     
        bool Query(string query);
     
        //bool DoQuery(char *query);
     
     
     
     
     
    private:
     
        // Handle a la connection mysql
     
        MYSQL *con;
     
        bool connected;
     
        MYSQL_ROW	row;
     
        MYSQL_RES 	*res_set;
     
        MYSQL_FIELD	*field;


    Cordialement

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    Bon, faisant du C++, je me suis dit que ca serait bien d'utiliser le Connector mysql C++...

    J'ai installé (enfin, j'ai essayé) le connector C++ avec l'install. J'ai essayé de linker du mieux possible avec Code::Blocks tout les .lib du fichier Mysql C++ Connector. J'ai aussi linker tout les fichier include/debug, include/opt et lib.

    Mais quand je fais les include pour tester si les link sont ok, j'ai pleins d'erreurs et de warning :s

    Les voici,

    Quand je fait ces includes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include <driver.h>
    #include <connection.h>
    #include <metadata.h>
    #include <resultset_metadata.h>
    #include <exception.h>
    #include <warning.h>
    J'obtient ceci en warning :

    ignoring #pragma warning dans le fichier warning.h et exception.h


    Mais pire ! Quand je rajoute ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <statement.h>
    #include <prepared_statement.h>
    #include <resultset.h>
    J'obtiens des erreurs de compilations, en voici quelques unes :
    c:\program files\codeblocks\mingw-4.4\bin\..\lib\gcc\mingw32\4.4.0\..\..\..\..\include\stdint.h|27|error: 'int8_t' has a previous declaration as 'typedef signed char int8_t'|

    C:\Program Files\MySQL\MySQL Connector C++ 1.0.5\include\cppconn\config.h|75|error: conflicting declaration 'typedef long int int32_t'|

    c:\program files\codeblocks\mingw-4.4\bin\..\lib\gcc\mingw32\4.4.0\..\..\..\..\include\stdint.h|32|error: 'uint32_t' has a previous declaration as 'typedef unsigned int uint32_t'|
    A noter que j'utilise aussi la SMFL 1.6 et je suis sous Windows 7, j'utilise la dernière version de Gcc (4.4.0). Et la dernière version de Mysql.

    Savez-vous ce que j'ai fait de mal ? =x Ai-je mal linker ? Si oui, il faut que je link quoi seulement ? Et il faut que je change quoi ?

    Merci,

  6. #6
    Membre confirmé
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Par défaut
    J'ai cru lire qu'il fallait compiler soit même certain fichier ??!!

    Moi j'ai juste lancer l'install, et linker les chemins vers C:....\mysqlConnecotr\include
    et
    C:....\mysqlConnecotr\lib

    Personne pour m'aider ? :/



    NOTE : J'utilise code::blocks sous windows et mingw avec gcc4.4.0

    Quelqu'un ayant déjà réussi à utiliser ce Connector sous windows et/ou code::blocks peut me dire comment il a fait svp ?


    EDIT :

    Apparemment, il y a beaucoup de problème avec ce Connector et les autres IDE (mis à par VC ++...)
    --> http://stackoverflow.com/questions/3...-compile-error
    Donc je vais essayé de switcher sur mysql++, qui m'a d'ailleurs l'air encore plus compliqué à installer :s

Discussions similaires

  1. Problème de compilation API MYSQL
    Par thanks33 dans le forum Débuter
    Réponses: 8
    Dernier message: 29/06/2009, 13h06
  2. Problème de connexion au serveur MYSQL
    Par ETOKA dans le forum Outils
    Réponses: 2
    Dernier message: 27/11/2003, 09h28
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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