Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1470 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  utilisation de mysql++ => Seg Fault !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

utilisation de mysql++ => Seg Fault !

n°1545242
Ternel-
Posté le 19-04-2007 à 16:21:51  profilanswer
 

Bonjour,
 
Je suis sur le développement d'un logiciel libre destiné à la compression en masse.
J'ai développé une partie du programme en C, avec la lib mysql sans trop de problème, cependant je dois m'attaquer maintenant à la partie C++ avec mysql++, et n'ayant pas fait de C++ depuis longtemps j'ai un peu de mal !
 

Code :
  1. // Connect to the sample database.
  2. mysqlpp::Connection con(false);
  3. con.connect("test", "localhost", "toto", "toto" );
  4. if (!con)
  5. {
  6. cerr << "Database connection failed: " << con.error() << endl;
  7. return 1;
  8. }


 
La connexion à la base se déroule bien, c'est apparement ma création de requete qui merde :

Code :
  1. mysqlpp::Query query = con.query();
  2. query << "SELECT * FROM slave";
  3. mysqlpp::Result res = query.store();
  4. cout << "We have:" << endl;
  5. if (res) {
  6. char buf[100];
  7. mysqlpp::Row row;
  8. mysqlpp::Row::size_type i;
  9. for (i = 0; row = res.at(i); ++i) {
  10. cout << '\t' << row.at(0) << endl;
  11. // cout << '\t' << strncpy(buf, row.at(0), sizeof(buf)) << endl;
  12. }
  13. }
  14. else {
  15. cerr << "Failed to get item list: " << query.error() << endl;
  16. return 1;
  17. }


 
Le code comme ca, il marque le We have, la premiere valeur du champ de la table, et apres SegFault...
Si je commente le premier cout et décommente le second, il seg fault après le We have :
Résultat, compilé avec ou sans efence :

Citation :

Electric Fence 2.1 Copyright © 1987-1998 Bruce Perens.
We have:
127.0.0.1
Segmentation fault


 
et si je commente tout à partir du if (res) :

Citation :

Electric Fence 2.1 Copyright © 1987-1998 Bruce Perens.
We have:
 
ElectricFence Aborting: free(804d294): address not from malloc().
Illegal instruction


 
et sans efence :

Citation :

We have:
*** glibc detected *** free(): invalid pointer: 0x0804de0c ***
Aborted


 
Si quelqu'un a une idée, ou si vous pensez que j'ai pu oublier quelque chose, je suis preneur de toute idée, parce que j'ai un peu beaucoup de mal à me remettre au C++ après toutes ces années sans, et mon niveau était déja pas très élevé, donc...
 
Je viens de testé cette méthode :

Code :
  1. mysqlpp::Query query = con.query();
  2. query << "select * from slave";
  3. mysqlpp::ResUse res = query.use();
  4. // Retreive result rows one by one, and display them.
  5. if (res) {
  6. // Display header
  7. cout.setf(ios::left);
  8. cout << setw(21) << "IP" <<
  9. setw(10) << "Port" <<
  10. setw(10) << "State" <<
  11. endl << endl;
  12. // Get each row in result set, and print its contents
  13. mysqlpp::Row row;
  14. while (row = res.fetch_row()) {
  15. cout << setw(20) << row["ip"] << ' ' <<
  16. setw(9) << row["port"] << ' ' <<
  17. setw(9) << row["state"] << ' ' <<
  18. endl;
  19. }
  20. return 0;
  21. }
  22. else {
  23. cerr << "Failed to get stock item: " << query.error() << endl;
  24. return 1;
  25. }


 
 
Mais toujours pareil :

Citation :

We have:
IP Port State
 
127.0.0.1 30000 Waiting
Segmentation fault


 
(Je me base sur les exemples de la librairies mysql++)
 
Merci d'avance !
Si vous avez des idées n'hésitez pas ! (et n'hésitez pas à donner des détails, je ne suis pas très fort ;))


Message édité par Ternel- le 19-04-2007 à 16:22:52
mood
Publicité
Posté le 19-04-2007 à 16:21:51  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  utilisation de mysql++ => Seg Fault !

 

Sujets relatifs
format prix mysqlMySQL : création d'un nouveau utilisateur (OVH)
importer des tables mysql dans Access?????Afficher le résultat d'une requête mysql sous forme d'hyperlien
Quand utiliser les types BLOB de MySQL ?SELECT dans un INSERT mysql
Afiicher les 5 résultats les plus nombreux dans une table MySQLMysql - Compression de données texte / index fulltext ?
Mettre en route une base de données Mysql svpcalculer une multiplication de deux champs (mysql)
Plus de sujets relatifs à : utilisation de mysql++ => Seg Fault !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR