Bonjour à tous,
alors voilà mon problème, tout est dans le titre.
J'utilise mysql sur visual studio 2010 en c++ avec EasyPHP installé sur mon PC.
J'arrive à me connecter à ma base de données, à lire les valeurs.... bref le code suivant :
J'obtiens donc sur cmd: "La connexion est réussie";
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 mysql_init(&mysql); //Options de connexion mysql_options(&mysql, MYSQL_OPT_LOCAL_INFILE, "option"); //Options de connexion if(mysql_real_connect(&mysql,"localhost","hacker","monMdP","maTable",0,NULL,0)) // CETTE LIGNE FONCTIONNE MAIS FAIT SATURER MON PROGRAMME QUI NE REPOND PLUS { cout << "La connexion est réussie" //Fermeture de MySQL mysql_close(&mysql); } //Si la connexion réussie... else { cout << "Une erreur s'est produite lors de la connexion à la BDD!"; //Fermeture de MySQL mysql_close(&mysql); }
MAIS LA SUITE DE MON PROGRAMME NE S'EXECUTE PLUS, j'obtiens le message d'erreur:
"LE PROGRAMME NE REPOND PLUS." Je fait du traitement d'images, avec OpenCV et Tesseract.
C'est bien mysql_real_connect qui fait tout planter.
NB: lors de l'installation des includes de MySql, j'avais une mauvaise interférence entre une structure LIST de mysql (dans my_list.h) avec une autre de Tesseract (dans baseapi.h). Ce qui faisait planter la compilation de mon projet visual. J'ai donc renommé
renommé en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct st_list { struct st_list *prev,*next; void *data; } LIST
et j'ai rremplacé LIST par LISTE_MYSQL dans tous les fichiers .h de Mysql. J'ai alors pu recompilé sans erreurs mon projet visual.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct st_list { struct st_list *prev,*next; void *data; } LISTE_MYSQL;
Maintenant, les plus chevronnés d'entre vous me diront peut être qu'il est possible que l'erreur vienne de là (mauvaise interaction entre ces modif et les fichier .lib ou .dll de mysql ??? )
Mais je ne pense personnellement pas que l'erreur vienne de là, sinon je ne pourrai même pas me connecter à ma base de données. D'autant plus que j'ai pu lire les éléments de chaque ligne de ma table...
En attendant, si j'enlève cette ligne, mon programme fonctionne et continue de s'exécuter, je peux alors traiter l'image suivante. Dans le cas ou je me connecte, je ne traite qu'une image et mon programme ne répond plus, il sature.... le processeur affiche 40% d'utilisation et le ventilo ronfle.
Avez vous une idée ?
Partager