[C con Clase] pasar array mysql a variable

Pogui poguijuaz en gmail.com
Dom Feb 8 18:56:48 CET 2009


Alejo Alejo wrote:
> Este es el code :
>     MYSQL_RES *res;
>     MYSQL_ROW row;
>     mysql_query(&conexionbot, "SELECT * FROM main");
> res = mysql_store_result(&conexion);
> int p=0;
> int array[40];
>     while ( (row = mysql_fetch_row(res)) )
>     {
>     array[p]=row[p];
>     p++;
>     }
>  
> 
> Este es básicamente el código, la consulta mysql obtiene sobre 40 datos 
> y la idea es meterlos en un array para distinguirlos y poderlos usar por 
> separado mas adelante, el resultado es un aviso al compilar :
> 
> la asignación crea un entero desde un puntero sin una conversión
> 
> Y aparte cuando ejecuto un fallo de segmentacion.
> 
> He intentado probar con la funcion strcpy pero me da el mismo error, 
> tambien con sprintf pero me da lo mismo.
> 
> Nose que mas intentar.. espero que me podais ayudar.
> 
> 
> 
> ------------------------------------------------------------------------

Hola intentá usar sprintf para la query y tambiean acordate de testear 
la condición de resultado "res".
Acordate de nunca  darle a tu programa razones por la cual tirar un 
coredump, por ejemplo hacer un fetch_row sin un store_result exitoso etc.
Otro problema que noté es que no liberas las variables. No es condición 
para un fallo de segmento, pero no vienen mal hacerlo. (acordate de usar 
las funciones de la api para liberar ya que generalemnte son estructuras 
definidas)

En cuanto la lo del sprintf me refiero a lo siguinte:

ejemplo:
sprintf(Query,
               "UPDATE meters_2 SET date_next_cons = DATE_ADD(NOW(), 
INTERVAL 1 MINUTE) WHERE id_meter = %d",
               variable);

       ret = mysql_query(dbm, Query);

De todas maneras para que te queden las cosas mas claras, te dejo un 
pastebin de una función de un programa mio que ahora estoy migrando a 
odbc para que mires seguro que te sirve:

http://rafb.net/p/CqfSMR30.html


suerte y salu2






Más información sobre la lista de distribución Cconclase