[C con Clase] otro error mysql

duna.montero en ldasistencia.com duna.montero en ldasistencia.com
Mar Jun 26 18:21:35 CEST 2007




Hola Steven, yo sigo con problemas, te cuento...

<Si cualquiera de estos punteros es "basura" o es nulo, vas a tener el
error que mencionas en tiempo de ejecución. Por lo tanto, necesitamos
comprobar que los <punteros recibidos no sean nulos y cuidar que no
contengan "basura"; o sea, que las direcciones de memoria sean válidas. En
el caso de 'row', no hace falta <comprobar su validez, porque conocemos la
cantidad de filas al invocar 'mysql_num_rows()'. Aún así, sugiero comprobar
el resultado de 'mysql_fetch_row()', ya que <estamos teniendo errores en el
programa. Podríamos hacer lo siguiente:
<
<if( !consulta1 )
<  fputs( "ERROR: consulta1 es nulo", stderr );
<
<if( !row )
<  fputs( "ERROR: row es nulo", stderr );
<else if( !row[k] )
<  fputs( "ERROR: row[k] es nulo", stderr );
<...
<
<Esto es para determinar quién cause el problema.


He hecho lo que me has dicho para ver dónde sale el error, y el error sale
en consulta1, que es nulo, pero en teoría no debería ser así? me refiero a
que cuando creo la estructura, no le doy valor, o esque me está apuntazndo
a una mala dirección? como me has dicho

Con respecto a strncpy (consulta1->titulo, row[k], lon);
Me da error, que no puede convertir un unsigned long en un unsigned int,
pero claro, lon tiene que ser así para que le pueda asignar
mysql_fetch_lengths()...

Te haré caso en lo que me digas, seguro que sabes muchiiiisimo más que yo,
era por simple curiosidad, que haya veces que funcione y otras que no.
Crees que se podría solucionar si en lugar de ser titulo un puntero de
caracteres, fuese una estructura de char definida, es decir, que en lugar
de ser:
struct final_l_titulo
{
        char* titulo;
        struct final_l_titulo * next;
};

fuera

struct final_l_titulo
{
        char  titulo [100];
        struct final_l_titulo * next;
};

Estoy desesperada, quiero quitarme esto yaaaaaaaaaaaaa.


Muchas gracias por vuestra ayuda...





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