|
|
|
|
Bonjour,
Je programme en c++ depuis un certain temps et j'aimerais pouvoir utiliser le SQL dans mes programmes.
J'ai donc télécharger sur le site officiel du SQL la librairie pour le c++, mais voilà, lorsque je test les exemples donnés il y a des erreurs.
Voici mon code :
#include <cstdlib>
#include <iostream>
#include <sstream>
#include <string>
#include <stdexcept>
#include <driver/mysql_public_iface.h>
#include <driver/mysql_driver.h>
using namespace std;
int main(int argc, char **argv)
{
sql::Driver* driver;
sql::Connection *con;
sql::Statement *stmt;
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "Capry", "mdp");
if (!con)
{
cout<<"Impossible de se connecter"<<endl;
}
else
{
cout<<"Connecter"<<endl;
}
stmt = con->createStatement();
system("PAUSE");
return EXIT_SUCCESS;
}
stmt = con->createStatement();
Configuration: Windows XP Firefox 1.5
Répondre à Capry
|
Non en c++ j'ai déjà essayé on ne peut pas faire :
|
Répondre à Capry
|
Répondre à Capry
|
Répondre à Capry
|
Le fait d'ajouter le bout de code avec "pragma" ne change rien. Mais je n'ai pas compris ton second message :
mysqlcppconn.lib --> il faut copier la nouvelle librarie qui a été livrée à l'installation de ton driver MySql ODBC C++ tel qu'il fourni par MySql AB - pas l'ancienne libraire de ta vieille API qui plantait !!... Tu veux dire qu'il faut que re remplace dans le répertoire "lib" de dev, un fichier nommé "mysqlcppconn.lib" par le nouveau fichier "mysqlcppconn.lib" qui était dans le pack que j'ai télécharger, c'est ça ? |
Répondre à Capry
|
J'ai recommencé à zero et suivit ta procédure.
#include <cppconn/resultset.h> #include <cppconn/statement.h> #include <cppconn/prepared_statement.h> Le compilateur va me donner plein de 48 C:\Program Files\MySQL\MySQL Connector C++ 1.0.4.0\include\cppconn\config.h conflicting declaration 'typedef char int8_t' 27 C:\Dev-Cpp\include\stdint.h 'int8_t' has a previous declaration as `typedef signed char int8_t' ou de 63 C:\Program Files\MySQL\MySQL Connector C++ 1.0.4.0\include\cppconn\config.h declaration of `typedef long int int32_t' 31 C:\Dev-Cpp\include\stdint.h conflicts with previous declaration `typedef int int32_t' Mais si je ne les mets pas j'ai toujours le même [Linker error] undefined reference to `_imp___ZN3sql5mysql25get_mysql_driver_instanceEv' Le problème viendrait-il donc de dev ??
|
Répondre à Capry
|
Re,
#include <cstdlib>
#include <iostream>
#include <sstream>
#include <string>
#include <stdexcept>
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
using namespace std;
int main(int argc, char **argv)
{
sql::Driver* driver;
sql::Connection *con;
sql::Statement *stmt;
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "Capry", "mdp");
if (!con)
{
cout<<"Impossible de se connecter"<<endl;
}
else
{
cout<<"Connecter"<<endl;
}
stmt = con->createStatement();
system("PAUSE");
return EXIT_SUCCESS;
} |
Répondre à Capry
|
Et il c'est quoi le répertoire d'installation de MySQL Server ? Si tu parle d'un répertoire qui serait dans celui de Wamp (le serveur local), je l'ai mis à la racine du dossier de mon application mais il plante :
|
Ah cette librairie est TRÈS GALÈRE !
|