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

Soyez le premier à donner votre avis sur cette source.

Vue 22 606 fois - Téléchargée 5 888 fois

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

Ajouter un commentaire

Commentaires

Messages postés
15
Date d'inscription
samedi 22 mai 2004
Statut
Membre
Dernière intervention
10 octobre 2008

Vous êtes satisfait mais vous mettez même pas une bonne note voilà qui est des plus original ^^
Messages postés
8
Date d'inscription
lundi 28 mars 2005
Statut
Membre
Dernière intervention
17 mars 2008

bjr
ca marche 100%100

g suivé votre expilcation de a à z/et enfin je suis arrivé à connecter a la base donné Mysql d'apres une longue recherche

je vous remercie pour votre aide et votre details d'expliquer les choses.
Messages postés
108
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
12 septembre 2009
2
Je tiens a remercier infiniment kimmp pour ce tuto
Messages postés
108
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
12 septembre 2009
2
Bonjour
Je viens de resoudre le probleme en ajoutant :
#define my_socket int
dans mysql_com.h
Messages postés
108
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
12 septembre 2009
2
Bonjour
j'ai les erreurs suivantes:

c:\program files\microsoft visual studio\vc98\include\mysql_com.h(183) : error C2146: syntax error : missing ';' before identifier 'fd'
c:\program files\microsoft visual studio\vc98\include\mysql_com.h(183) : error C2501: 'SOCKET' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\mysql_com.h(183) : error C2501: 'fd' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\mysql_com.h(358) : error C2065: 'SOCKET' : undeclared identifier
c:\program files\microsoft visual studio\vc98\include\mysql_com.h(358) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\mysql_com.h(359) : error C2059: syntax error : ')'

Comment résoudre le problème
Merci
Afficher les 9 commentaires

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.