#1 

19-06-2008 01:40:34

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

salut,

est-ce que quelqu'un aurait la gentillesse de me faire un petit tuto pour utiliser une base de donné mysql en c++ avec codeblocks.

j'ai déjà trouver quelque tuto mais j'arrive pas à compiler.
j'comprend pas comment j'dois linker tous les fichier et je ne suis justement pas sur de quel fichier je dois linker.

en utilisant code::blocks 8.02, GNU GCC compiler et mysql++, j'ai beau essayer dans tous les sens, j'arrive toujours au meme resultat.

si je link pas le dll (libmysql.dll)

||=== testMySQL, Release ===|
obj\\Release\\main.o:main.cpp:(.text+0xff)||undefined reference to `__imp___ZN7mysqlpp10ConnectionC1EPKcS2_S2_S2_j'|
obj\\Release\\main.o:main.cpp:(.text+0x14b)||undefined reference to `mysqlpp::Connection::~Connection()'|
obj\\Release\\main.o:main.cpp:(.text+0x1bf)||undefined reference to `mysqlpp::Connection::~Connection()'|
||=== Build finished: 3 errors, 0 warnings ===|

si je link le dll
ld.exe||cannot find -lmysql.dll|
||=== Build finished: 1 errors, 0 warnings ===|

mon code
#include <iostream>
#include <mysql++.h>
using namespace std;
using namespace mysqlpp;

int main()
{
	try
	{
		char db[] = "testdb";
		char host[] = "localhost";
		char user[] = "testuser";
		char passwd[] = "secret";
		Connection c (db, host, user, passwd);
		if(c) cout << "==> Connected" << endl;
    }

	catch (Exception& e)
	{
		cout << "==> Error: " << e.what() << endl;
	}
}

qui vient de cet exemple la que déjà, j'ai modifié car j'avais des erreur de définition que je n'ai meme pas compris non plus.


j'ai lu aussi que j'dois avoir un fichier.a (j'ai libmysqlclient.a) fait avec dlltool ou je ne sais quoi mais j'comprend pas trop non plus si ce n'est le fait de le metre dans mon dossier mingw/lib.



mysql++ fournit ce code la sinon
#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int
main(int argc, char *argv[])
{
	// Get database access parameters from command line
    const char* db = 0, *server = 0, *user = 0, *pass = "";
	if (!parse_command_line(argc, argv, &db, &server, &user, &pass)) {
		return 1;
	}

	// Connect to the sample database.
	mysqlpp::Connection conn(false);
	if (conn.connect(db, server, user, pass)) {
		// Retrieve a subset of the sample stock table set up by resetdb
		// and display it.
		mysqlpp::Query query = conn.query("select item from stock");
		if (mysqlpp::StoreQueryResult res = query.store()) {
			cout << "We have:" << endl;
			for (size_t i = 0; i < res.num_rows(); ++i) {
				cout << '\	' << res[i][0] << endl;
			}
		}
		else {
			cerr << "Failed to get item list: " << query.error() << endl;
			return 1;
		}

		return 0;
	}
	else {
		cerr << "DB connection failed: " << conn.error() << endl;
		return 1;
	}
}

mais peut importe ce que j'essaye, j'arrive toujours plus ou moin au meme résultat.
'fin bref, si quelqu'un pouvait m'aider ou faire un petit tuto la dessus pour code::blocks avec du c++, ça serait sympa.
sinon y'a peut etre d'autre bd plus simple à utiliser en c++, j'sais pas trop, j'utilse easyphp et j'trouve mysql asser simple avec, c'est pour ça.

merci
a+


Hors ligne


#2 

19-06-2008 05:44:55

maitrelame12545
Membres
Avatar de maitrelame12545
Date d'inscription:
Messages: 51
IP: 75.56.198.36
Courriel

Il ne faut pas inclure la dll mais la lib .a


Codeur elewendyl

Hors ligne


#3 

19-06-2008 06:47:47

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

j'dois l'inclure ou aussi ?
si j'la link a la place du dll, j'ai le meme message d'erreur (le premier)

j'suis meme pas sur d'avoir le bon fichier.a en plus.


Hors ligne


#4 

19-06-2008 12:43:18

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

Elle se trouve dans quel dossier ta DLL ?


Hors ligne


#5 

19-06-2008 19:42:13

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

dans un dossier mysql/bin sans rapport avec code::blocks vu que logiquement, le dll, je le met apres, avec mon programme compilé.


Hors ligne


#6 

19-06-2008 19:52:31

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

As tu déjà copié ta DLL dans le répertoire de ton projet ?
car tu doit avoir la DLL lorsque tu compile ton projet


Hors ligne


#7 

19-06-2008 20:35:28

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

ça change rien.
d'ailleur avec irrlicht, dll ou pas dans le projet, ça compile sans problème.


Hors ligne


#8 

19-06-2008 21:24:56

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

ça dépend si tu a déjà copié ta DLL dans le dossier system32 de windows
car si j'ai bien compris le fonctionnement des Dll et .a (ou .lib) c'est que le .a link ta DLL qui doit se trouver dans ton projet ou dans ton dossier system32


Hors ligne


#9 

19-06-2008 21:49:53

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

bah meme, si j'indique dans les options de mon projets, les repertoires dans lequelles se trouve les fichiers, ça devrait etre pareil non ?

dans un sens, ça l'est, j'ai toujours le même problème...

j'vais réinstallé mysql je crois, j'avais juste pris les fichier officiel à dezipper.
j'vais prendre le fichier install.exe et recommencer, j'vois pas ce que j'peux faire d'autre là.


Hors ligne


#10 

19-06-2008 21:52:19

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

si tu a besoin je peux de uploader la version que j'utilise


Hors ligne


#11 

19-06-2008 22:04:35

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

j'veux bien mais si j'sais pas comment m'en servir, c'est un peu la même chose.
t'utilises du mysql 5 ?


Hors ligne


#12 

19-06-2008 22:08:05

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

j'utilise la version 5.0.51b-win32
sinon j'ai aussi le reference manual fr


Hors ligne


#13 

19-06-2008 22:34:34

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

j'utilise la meme, c'est pas la peine et le manuel est ici aussi.

si t'as du temps à m'accorder, la seul chose que j'ai envie de te demander, c'est d'essayer mysql++ ne serait-ce que pour savoir si t'y arrive et ensuite me dire comment t'as fait parce que franchement, j'sais pas moi.

sinon tu peux me filler ton ou tes fichier.a pour essayer mais j'y crois pas trop.
vraiment, j'comprend pas, j'ai tous les fichier normalement et j'ai beau linker, indiquer mes dossiers dans mon projets dans tous les sens, j'me retrouve toujours avec ces deux messages d'erreurs.


Hors ligne


#14 

19-06-2008 23:24:29

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

Bon Ba je viens de télécharger Mysql++ et le code source marche pas du tout,
donc je te conseille d'utiliser Mysql tout simple qui est assez facile à utiliser


Hors ligne


#15 

20-06-2008 00:10:24

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

j'vais essayer un autre API, j'ai celui là aussi dans mes favoris.

d'façon il me faut bien du c++ si j'veux m'en servir avec irrlicht non ?
mysql en soit, c'est pas compliqué avec easyphp mais j'veux essayer de me faire un petit client/serveur pour ajouter du contenu avec irrlicht ensuite. ('fin d'abors juste un petit prog qui communique avec la db qui servira de serveur ensuite pour l'instant)

sinon y'a raknet qui m'interesse mais c'est encore trop compliqué pour moi.

merci d'avoir tester.


Hors ligne


#16 

20-06-2008 00:12:05

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

Si tu veut l'utiliser avec irrlicht tu peut prendre mysql en c (sa ferat juste un peux de mélange C/C++)


Hors ligne


#17 

20-06-2008 00:16:33

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

et c'est possibile de compiler en utilisant les deux ? Oo
il me faudra bien un warper/wrapper(?) quelque part non ?


Hors ligne


#18 

20-06-2008 00:18:01

bestben
Membres
Date d'inscription:
Messages: 133
IP: 84.100.248.167
Courriel

non moi j'utilise les 2 en même temps


Hors ligne


#19 

20-06-2008 00:21:58

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

ok, bon ben j'vais essayer alors.

merci
a+


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
161 invités en ligne
membre en ligne: -
RSS Feed