Historique des modifications - Message

Message #4291

Sujet: code::blocks, mysql et c++


Type Date Auteur Contenu
Création du message 19-06-2008 01:40:34 noals
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+

Retour

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
236 invités en ligne
membre en ligne: -
RSS Feed