Se connecter avec
S'enregistrer | Connectez-vous

[C++] probleme du driver SQL

Dernière réponse : dans Programmation

Bonjour,
Je voudrais pouvoir gérer en c++ une base de donnée en SQL. J'ai déjà une bonne expérience en PHP donc le SQL en lui même ne devrait pas trop poser de problèmes...
J'ai donc installé la librairie et fait tout les includes nécessaires, mais lors de la première ligne (eh oui déjà :honte: ) j'ai un problème, voici mon code :


  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <stdexcept>
  5. #include <driver/mysql_public_iface.h>
  6.  
  7. using namespace std;
  8.  
  9. int main(int argc, char *argv[])
  10. {
  11. sql::Driver * driver = get_driver_instance();
  12. system("PAUSE");
  13. return EXIT_SUCCESS;
  14. }




Lorsque je compile le compilateur affiche :

  1. [Linker error] undefined reference to `_imp__get_driver_instance'




J'ai beau tourner un rond pendant des heures je ne trouves pas de solutions à ce problème. Est-ce qu'un zéro aurait une idée ?

Merci d'avance,
Capry

Autres pages sur : probleme driver sql

Lassé par la pub ? Créez un compte

J'ai un nouveau problème :S (decidemment cette librairie va m'énerver >_< ), voici mon code :


  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <string>
  5. #include <stdexcept>
  6. #include <driver/mysql_public_iface.h>
  7.  
  8. using namespace std;
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12. sql::Driver * driver = get_driver_instance();
  13. std::auto_ptr< sql::Connection > con(driver->connect("127.0.0.1", "Capry", "barbedor"));
  14. std::auto_ptr< sql::Statement > stmt(con->createStatement());
  15.  
  16. system("PAUSE");
  17. return EXIT_SUCCESS;
  18. }



Tout se passe bien à la compilation, aucune erreur signalée mais dès que je l'éxecute :

"SQL.exe à rencontrer un probleme et doit fermer"

Même chose si je ne met pas la troisième ligne sauf que le message ne se met qu'une fois passé le "system("PAUSE");" :S.

Quelqu'un aurait une idée pour résoudre ce problème ? Peut-être une DLL non incluse ?

Merci d'avance
Capry

Sur
  1. int main(int argc, char *argv[])


Il n'y à pas 2 étoiles sur argv? **argv?

Sinon, peut être que le problème vient des std. Il y en a un pour se connecter à la base de donnée et l'autre pour création.

pour les 2 étoiles ça revient au même non o_O ?

Et pour les std j'ai plus ciblé :

  1. sql::Driver* driver;
  2. sql::Connection *con;
  3. sql::Statement *stmt;
  4. driver = get_driver_instance();
  5. con = driver->connect("tcp://127.0.0.1:3306", "Capry", "barberousse");
  6. stmt = con->createStatement();


C'est cette ligne là qui pose problème :
  1. stmt = con->createStatement();


Si elle n'est pas là, aucun problème, dès que je l'insère le programme plante à l'exécution.

Ais-je oublier de mettre une dll concernant la librairie d'où provient cette fonction ??
Et surtout qu'est-ce qu'elle fait exactement parce que tout les tutos sont en anglais je n'ai pas compris le passage là.
Je commmence à perdre la boule :pt1cable:  ...
Expert Programmation

Ton application a crashé (lecture ou écriture hors zone de ton processus).
Quand on fait ceci:
  1. con = driver->connect("tcp://127.0.0.1:3306", "Capry", "barberousse" );

Après on teste si con n'est pas NULL pour s'assurer qu'il n'y a pas eu d'erreur.
  1. con = driver->connect("tcp://127.0.0.1:3306", "Capry", "barberousse" );
  2. if (!con)
  3. {
  4. // Erreur, il faut quitter avec un joli message
  5. }

Lassé par la pub ? Créez un compte
Tom's guide dans le monde