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

  FORUM HardWare.fr
  Programmation
  C++

  C++ et procédure stockées MySql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C++ et procédure stockées MySql

n°2210842
gmanouvrie​r1
Posté le 19-11-2013 à 17:05:33  profilanswer
 

Bonjour,
 
Aprés avoir installé la libmysql j'ai tenté 2, 3 tests de codes pour écrire et lire des données en provenance de mysql(en C++)
 
Pas de soucis jusque là.
J'ai appelé une procédure stockée sans résultats attendu (genre une procedure qui ajoute des infos en base sans rien retournée), pas de soucis.
 
Lorsque j'invoque une procédure stockée qui doit me retourner des informations, le programme plante :  
 

Code :
  1. cout << "avant connection" << endl;
  2.     MYSQL mysql;
  3. mysql_init(&mysql);
  4. mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option" );
  5. if(mysql_real_connect(&mysql,"10.129.1.242","gilles","gilles0310","test_c",0,NULL,0))
  6. {
  7.     cout << "connection ok" << endl;
  8.     //OK sans soucis
  9.     //mysql_query(&mysql,"insert into test (TEST_KEY1, TEST_KEY2, NOM, PRENOM) values (1,'WSSI00','Manouvrier','Gilles')" );
  10.     //OK sans soucis
  11.     //mysql_query(&mysql,"CALL AddRow(3,'mantouvrier','gl')" );
  12.    
  13.    
  14.    
  15.     //lecture complete
  16.     //sans soucis
  17.     //mysql_query(&mysql,"select * from test" );
  18.  
  19.    mysql_query(&mysql,"CALL test_c.GetRow('manouvrier')" );
  20.    
  21.     MYSQL_RES   *result   =  NULL;
  22.     MYSQL_ROW   row;
  23.     unsigned   int   i =  0;
  24.     unsigned   int   num_champs   =  0;
  25.    
  26.     //On   met   le   jeu   de  résultat   dans  le   pointeur   res
  27.     result   =  mysql_store_result(&mysql);
  28.    
  29.     //On   récupère le   nombre   de  champs
  30.     num_champs   = mysql_num_fields(result);//PLANTAGE!
  31.     cout << "nb champs " << num_champs << endl;
  32.     while ((row = mysql_fetch_row(result)))
  33.     {
  34.         unsigned long *lengths;
  35.         lengths = mysql_fetch_lengths(result);
  36.         for(i = 0; i < num_champs; i++)
  37.         {
  38.             printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL" );
  39.         }
  40.         printf("\n" );
  41.     }
  42.     mysql_close(&mysql);


 
Dès que j'essaye d'accéder au données retournées, ça plante.(Le programme a cessé de fonctionner)
J'en déduit que ma manière d'invoquer la procedure est mauvaise.
J'ai voulu d'installer la lib mysql++ mais visiblement le lien était mort.
Je ne vois donc que la libmysql 'traditionnelle'.
 
(j'utilise Dev-cpp pour développer sous windows et Geany sous linux)
 
Pourriez vous me mettre sur la bonne voie?
 
Merci à tous.
 
Gilles

mood
Publicité
Posté le 19-11-2013 à 17:05:33  profilanswer
 


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

  C++ et procédure stockées MySql

 

Sujets relatifs
Novice en langage C ! HELP![C] Tirage de lettre et probabilité
[C] Calculer la Normale d'un vecteur en C[C#]grand débutant restriction
MySql mes tables sont la mais je ne les vois pasReload automatique toute les 10sec - C#
C sous unix => synchronisation avec les signauxHelp [PHP/MySQL] et programmation de jeu
envoyer tout un vecteur comme un paramètre de Java en C + + 
Plus de sujets relatifs à : C++ et procédure stockées MySql


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