Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Pasar resultado de una consulta a variable

Estas en el tema de Pasar resultado de una consulta a variable en el foro de C/C++ en Foros del Web. Hola! Estoy intentado realizar unas consultas a una BD a través de C++. La conexion y la consulta no tengo problemas pero cuando intento guardar ...
  #1 (permalink)  
Antiguo 10/09/2015, 13:59
 
Fecha de Ingreso: septiembre-2015
Mensajes: 1
Antigüedad: 8 años, 7 meses
Puntos: 0
Pasar resultado de una consulta a variable

Hola!

Estoy intentado realizar unas consultas a una BD a través de C++.

La conexion y la consulta no tengo problemas pero cuando intento guardar el resultado en una variable para posteriormente usarla solo me da como valor "1".

Un poco del codigo:

if(!mysql_real_connect(objDatos, "127.0.0.1", "root", "clave", "base", MYSQL_PORT, NULL, 0)) {
// No se puede conectar con el servidor en el puerto especificado.
cout << "Imposible conectar con servidor mysql en el puerto "
<< MYSQL_PORT << " Error: " << mysql_error(objDatos) << endl;
mysql_close(objDatos);
rewind(stdin);
getchar();
return 1;
}


if(mysql_select_db(objDatos, "base_ejemplo")) {
// Imposible seleccionar la base de datos, posiblemente no existe.
cout << "ERROR: " << mysql_error(objDatos) << endl;
mysql_close(objDatos);
rewind(stdin);
getchar();
return 2;
}

str = "SELECT estado FROM personas WHERE nombre='user'";

str.replace(42,4,user);


if(mysql_query(objDatos, str.c_str())) {
cout << "ERROR: " << mysql_error(objDatos) << endl;
mysql_close(objDatos);
rewind(stdin);
getchar();
return 2;
}


if((res = mysql_use_result(objDatos))) { // esta es la consulta
j = (int) mysql_num_fields(res);
while(row = mysql_fetch_row(res)) {
for(k = 0 ; k < j ; k++) cout << ((row[k]==NULL) ? "NULL" : row[k])<< endl;

}

El contenido de la celda me la muestra en la consola sin problemas.
Como puedo guardar el contenido de esta consulta en una variable?

Espero que alguien me pueda ayudar, Gracias !
  #2 (permalink)  
Antiguo 11/09/2015, 00:32
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Pasar resultado de una consulta a variable

row es de tipo MYSQL_ROW, que viene a ser un alias de char*, si quieres recuperar el valor como una cadena, necesitas usar strcpy, si lo quieres copiar en un char*, o el operador = si lo vas a almacenar en un string.

Si, en cambio, el registro actual contiene un número, tienes que realizar una conversión de char* a int (o a uint, o a float, ... lo que proceda en cada momento). Para realizar esta tarea puedes programarte tus propias funciones o puedes utilizar las que te proporciona la librería estándar (o librerías externas que vayas a usar).

Algunos ejemplos de funciones útiles para estos casos son: atoi, stoi (C++11), atof, atol, ....

Un saludo

Etiquetas: char, int, resultado, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:47.