#0 

19-06-2008 03:40:34

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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)

Code:

||=== 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

Code:

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

mon code

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

Code:

#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 << '\t' << 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


#1 

19-06-2008 07:44:55

maitrelame12545
Membre
Date d'inscription: 28-11-2006
Messages: 51

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


Codeur elewendyl

Hors ligne


#2 

19-06-2008 08:47:47

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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


#3 

19-06-2008 14:43:18

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

Elle se trouve dans quel dossier ta DLL ?

Hors ligne


#4 

19-06-2008 21:42:13

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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


#5 

19-06-2008 21:52:31

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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


#6 

19-06-2008 22:35:28

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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

Hors ligne


#7 

19-06-2008 23:24:56

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

ç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


#8 

19-06-2008 23:49:53

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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


#9 

19-06-2008 23:52:19

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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

Hors ligne


#10 

20-06-2008 00:04:35

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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


#11 

20-06-2008 00:08:05

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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

Hors ligne


#12 

20-06-2008 00:34:34

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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


#13 

20-06-2008 01:24:29

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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


#14 

20-06-2008 02:10:24

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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.

Dernière modification par noals (20-06-2008 02:11:10)

Hors ligne


#15 

20-06-2008 02:12:05

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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


#16 

20-06-2008 02:16:33

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

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

Hors ligne


#17 

20-06-2008 02:18:01

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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

Hors ligne


#18 

20-06-2008 02:21:58

noals
Membre
Date d'inscription: 17-05-2008
Messages: 34

ok, bon ben j'vais essayer alors.

merci
a+

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
106 invités en ligne
Aucun membre connecté
RSS Feed