• Martes 30 de Abril de 2024, 02:03

Autor Tema:  recuperar consulta resultado de row en un array char  (Leído 1209 veces)

sukre_83

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
recuperar consulta resultado de row en un array char
« en: Domingo 8 de Mayo de 2011, 18:16 »
0
intento recuperar los valores de la consuta y guardarlos en una variable posiciones[10] pero ahora me al ejecutar salta una excepcion y no veo donde

Código: C++
  1. string consultaPartida= "Select * from tiradasjugadorespartida where TiradaPartida="+p+" and JugPartida="+jug+" and Tirada="+t+" and NumBola="+b+";";
  2. char consPartida[100];
  3. int k=0;
  4. strcpy(consPartida,consultaPartida.c_str());
  5. cout<<consPartida<<endl;
  6.  
  7.  
  8. mysql_query(myData,consPartida);
  9.  res=mysql_store_result(myData);
  10.  row = mysql_fetch_row(res);
  11. k = (int) mysql_num_rows(res);
  12. cout<<k<<endl;
  13. char posiciones[10]=B;
  14. int j=0;
  15. for(i=4;i<14;i++){ //solo con los datos de los bolos
  16.   strcat(posiciones,row[i]); //aqui se para la ejecucion
  17.  
  18. }
  19.  
  20. cout<<posiciones<<endl;
  21.  mysql_free_result(res);
  22.  
¿Cual seria la mejor forma de guardar esos resultados?
gracias

alexg88

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: recuperar consulta resultado de row en un array char
« Respuesta #1 en: Domingo 8 de Mayo de 2011, 23:47 »
0
Creo que tu problema está que supones que te va a devolver 14 columnas el resultado. Para saber el nº de columnas que va a devolver la consulta se usa mysql_num_fields.

Código: C++
  1.  
  2.  
  3. string consultaPartida= "Select * from tiradasjugadorespartida where TiradaPartida="+p+" and JugPartida="+jug+" and Tirada="+t+" and NumBola="+b+";";
  4. char consPartida[100];
  5. int k=0;
  6. strcpy(consPartida,consultaPartida.c_str());
  7. cout<<consPartida<<endl;
  8.  
  9. mysql_query(myData,consPartida);
  10.  res=mysql_store_result(myData);
  11. int num_fields = mysql_num_fields(res);
  12.  row = mysql_fetch_row(res);
  13. k = (int) mysql_num_rows(res);
  14. cout<<k<<endl;
  15. char posiciones[10]=B;
  16. int j=0;
  17. for(i=4;i<num_fields;i++){ //solo con los datos de los bolos
  18.   strcat(posiciones,row[i]); //aqui se para la ejecucion
  19. }
  20.  
  21. cout<<posiciones<<endl;
  22.  mysql_free_result(res);
  23.  
  24.