[C con Clase] otro error mysql-c
duna.montero en ldasistencia.com
duna.montero en ldasistencia.com
Mie Jun 13 12:54:17 CEST 2007
Hola.
No sé qué me pasa, pero estoy teniendo muchos problemas con la conexión
entre estructuras en c y asociar los datos que obtengo de la base de datos
mysql.
os pongo el código y el error a ver si alguie me puede ayudar, ya que se lo
agradecería muchiiiiiiiiiisimo...
struct final_l_titulo
{
char* titulo;
struct final_l_titulo * next;
};
recibo la consulta desde recibida
final_l_titulo* consulta_buno_1_titulo (char * recibida)
{
int i, j, l, k;
MYSQL_RES *res1;
MYSQL_FIELD *columna;
MYSQL_ROW row;
unsigned long *lon;
MYSQL * base;
final_l_titulo *consulta1, *primero, *anterior;
printf ("\nllego a consultar bases\n");
if(!(base = mysql_init(NULL)))
{
// Imposible crear el objeto myData
}
else
printf ("La conexion se ha hecho bien \n");
if(!mysql_real_connect(base, NULL, NULL, NULL, "uno",
MYSQL_PORT, NULL, 0))
{
printf ("Imposible conectar con servidor mysql en
el puerto %d", MYSQL_PORT);
mysql_close(base);
// return 1;
}
else
printf ("La conexión a la base de datos se ha hecho
OK\n");
if(mysql_select_db(base, "uno"))
{
// Error al seleccionar base de datos.
printf ("ERROR: %s",mysql_error(base));
mysql_close (base);
rewind(stdin);
getchar();
// return 2;
}
if(mysql_query(base, recibida))
{
// Error al realizar la consulta:
printf( "ERROR: %s\n",mysql_error(base));
mysql_close(base);
rewind(stdin);
getchar();
}
if((res1 = mysql_store_result(base)))
{
i = (int) mysql_num_rows(res1);
j = (int) mysql_num_fields(res1);
printf ("\nEl número de resultados es: %d\n", i);
columna = mysql_fetch_fields(res1);
if (i!=0)
{
primero=NULL;
anterior=NULL;
for(l = 0; l < i; l++)
{
consulta1= (final_l_titulo *)malloc (sizeof
(final_l_titulo));
row = mysql_fetch_row(res1);
lon = mysql_fetch_lengths(res1);
printf ( "Registro no. %d", l+1);
// Mostrar cada campo y su longitud:
k=0;
consulta1->titulo = row[k]; AQUI ES
DONDE ME DA EL ERROR
printf ("\n%s", consulta1->titulo);
printf (" ");
k++;
consulta1->next=NULL;
if (primero == NULL)
primero=consulta1;
else
anterior->next=consulta1;
anterior=consulta1;
}
}
}
if (i != 0)
{
consulta1->next=NULL;
consulta1=primero;
}
if (i==0)
{
consulta1=NULL;
}
//mysql_free_result(res1);
mysql_close(base);
return (consulta1);
}
y el error que me da cuando hago un debug es este:
Unhandled exception in proyecto.exe : 0x000000005 Access violation
Supongo que será que hay algo que no estoy asociando bien, pero se supone
que cuando en el debug pongo row [k] me pone que tiene el valor titulo (que
es como he llamado al titulo del libro.)
La consulta que hago es select titulo from libros where cl = 123;
Muchas gracias a todos.
Un saludo
Más información sobre la lista de distribución Cconclase