Connexion à une base de données mysql à l'aide de visual c++

Description

MySQL?Visual C++ :
Ce document a pour but de montrer comment exploiter une connexion à une base de données mySQL, en utilisant uniquement l'API fournie avec mySQL au travers d'une application écrite en C++ sous Windows, à l'aide de Visual C++.

Configuration requise :
Ce document se basera sur une petite application exemple écrite avec Visual C++ 6.0 et exploitant une connexion à une base de données MySQL version 5.0.27. L'application exemple peut attaquer des bases MySQL qui résident soit sur la machine locale, soit sur un serveur à travers le réseau (Windows ou Linux) . Dans les deux cas, il faut toujours avoir les bibliothèques clientes et fichiers inclus de MySQL d?une installation MySQL sous Windows qui faudra ajouter à Visual C++.
Configuration de Visual C++ pour MySQL.
Premièrement il faut copier les fichiers du répertoire $MYSQL_HOME\include\*.* d?une installation MYSQL sous Windows et les coller dans le répertoire des \include\ de Visual C++, par la suite il faut copier le fichier $MYSQL_HOME\lib\opt\libmysql.lib et le coller dans le repertoire \lib\ de Visual C++. A ce niveau si en écrit du code dont on insere des fonctions de l?API MySQL la compilation réussira mais on aura échec dans phase édition des liens(Link error).

Linking...
mysql.obj : error LNK2001: unresolved external symbol _mysql_close@4
mysql.obj : error LNK2001: unresolved external symbol _mysql_free_result@4
mysql.obj : error LNK2001: unresolved external symbol _mysql_num_fields@4
mysql.obj : error LNK2001: unresolved external symbol _mysql_fetch_row@4
mysql.obj : error LNK2001: unresolved external symbol _mysql_use_result@4
mysql.obj : error LNK2001: unresolved external symbol _mysql_query@8
mysql.obj : error LNK2001: unresolved external symbol _mysql_real_connect@32
mysql.obj : error LNK2001: unresolved external symbol _mysql_init@4
mysql.obj : error LNK2001: unresolved external symbol "void __cdecl sleep(int)" (?sleep@@YAXH@Z)
Debug/a.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.

Pour résoudre ce problème, nous devons intégrer la bibliothèque libmysql.lib dans notre projet. A ce niveau la génération de l?exécutable réussit mais son exécution peut ne pas réussir si on ne possède pas le fichier libmysql.dll car notre exécutable est lié dynamiquement à cette bibliothèque. Ce fichier est fourni avec MySQL et son emplacement dans une installation MySQL est $MYSQL_HOME\lib\opt\libmysql.dll. On doit mettre cette bibliothèque soit dans le répertoire de notre exécutable soit dans le dossier system32 de Windows pour réussir l?édition des liens dynamique que le système effectue lors du chargement d?une application.
Pour ajouter le fichier libmysql.lib dans notre projet nous avons deux méthodes :
1- il suffit de créer un nouveau dossier dans l?arborescence du projet sur l?explorateur de fichiers Visual C++ puis ajouter le fichier libmysql.lib dans ce dossier en choisissant add existing file to folder sur le menu contextuel du dossier qu?on vient de créer.
2- on cliquant sur le sous menu settings du menu Project on atteint la boite de dialogue ?Project Settings ?. On choisit le volet Link puis on ajoute libmysql.lib dans la liste Object/Library Modules

Conclusion :


j'ai pris pas mal de détail, car des tuto dans ce sens j'en vu beaucoup mais il y a tjrs des manque et que les gens n'arrive à executer le code.
pure & simple!!

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.