Dev - C++ - conectar dev c++ con mysql

   
Vista:

conectar dev c++ con mysql

Publicado por Daniel (1 intervención) el 11/08/2010 22:34:59
Hola soy estudiante de programacion y necesito por favor poder conectar una base de datos mysql desde dev c++ este es el codigo:
/*
Name: MySQL Ejemplo 1
Author: Daniel
Date: 07/08/2010
Description: Ejemplo para mostrar contenidos de bases de datos usando MySQL.
Nota: incluir la opción "-lmysql" en las opciones del linker
dentro de las opciones de proyecto.
*/
// Includes...
#include <iostream>
#include <windows.h>
#include <mysql/mysql.h>
#include <mysql/mysqld_error.h>
#include <cstring>
#include <cstdio>
using namespace std;
// Programa principal
int main()
{
// Variables
MYSQL *myData;
MYSQL_RES *res;
MYSQL_ROW row;
MYSQL_FIELD *columna;
int i, j, k, l;
unsigned long *lon;
MYSQL_ROW_OFFSET pos;
// Intentar iniciar MySQL:
if(!(myData = mysql_init(0))) {
// Imposible crear el objeto myData
cout << "ERROR: imposible crear el objeto myData." << endl;
rewind(stdin);
getchar();
return 1;
}
// Debe existir un usuario "curso" con clave de acceso "clave" y
// con al menos el privilegio "SELECT" sobre la tabla
// "prueba.gente"
if(!mysql_real_connect(myData, NULL, "root", "123","creditos", 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(myData) <<
endl;
mysql_close(myData);
rewind(stdin);
getchar();
return 1;
}
// Conectar a base de datos.
if(mysql_select_db(myData, "creditos")) {
// Imposible seleccionar la base de datos, posiblemente no existe.
cout << "ERROR: " << mysql_error(myData) << endl;
mysql_close(myData);
rewind(stdin);
getchar();
return 2;
}
// Hacer una consulta con el comando "SELECT * FROM gente":
if(mysql_query(myData, "SELECT * FROM cuenta")) {
// Error al realizar la consulta:
cout << "ERROR: " << mysql_error(myData) << endl;
mysql_close(myData);
rewind(stdin);
getchar();
return 2;
}
// Almacenar el resultado de la consulta:
if((res = mysql_store_result(myData))) {
// Obtener el número de registros seleccionados:
i = (int) mysql_num_rows(res);
// Obtener el número de columnsa por fila:
j = (int) mysql_num_fields(res);
// Mostrar el número de registros seleccionados:
cout << "Consulta: SELECT * FROM cuenta" << endl;
cout << "Numero de filas encontradas: " << i << endl;
cout << "Numero de columnas por fila: " << j << endl;
// Información sobre columnas usando mysql_fetch_field:
cout << endl << "Informacion sobre columnas:" << endl;
for(l = 0; l < j; l++) {
columna = mysql_fetch_field(res);
cout << "Nombre: " << columna->name << endl;
cout << "Longitud: " << columna->length << endl;
cout << "Valor por defecto: " << (columna->def ?
columna->def : "NULL") << endl;
}
cout << endl;
// Información sobre columnas usando mysql_fetch_fields:
cout << endl << "Informacion sobre columnas:" << endl;
columna = mysql_fetch_fields(res);
for(l = 0; l < j; l++) {
cout << "Nombre: " << columna[l].name << endl;
cout << "Longitud: " << columna[l].length << endl;
cout << "Valor por defecto: " << (columna[l].def ?
columna[l].def : "NULL") << endl;
}
cout << endl;
// Información sobre columnas n, usando
mysql_fetch_field_direct:
cout << endl << "Informacion sobre columna 1:" << endl;
columna = mysql_fetch_field_direct(res, 1);
cout << "Nombre: " << columna->name << endl;
cout << "Longitud: " << columna->length << endl;
cout << "Valor por defecto: " << (columna->def ? columna->def : "NULL") << endl;
cout << endl;
// Leer registro a registro y mostrar:
l=1;
for(l = 0; l < i; l++) {
row = mysql_fetch_row(res);
lon = mysql_fetch_lengths(res);
cout << "Registro no. " << l+1 << endl;
// Mostrar cada campo y su longitud:
for(k = 0 ; k < j ; k++) {
cout << ((row[k]==NULL) ? "NULL" : row[k]);
cout << " longitud: " << lon[k] << endl;
}
}
cout << endl;
// Mostrar sólo 3ª fila:
mysql_data_seek(res, 2);
row = mysql_fetch_row(res);
cout << "Tercera fila" << endl;
for(k = 0 ; k < j ; k++) {
cout << ((row[k]==NULL) ? "NULL" : row[k]) << endl;
}
// Almacenar posición de la fila actual (la 4ª):
pos = mysql_row_tell(res);
// Lectura de filas hasta el final:
while(mysql_fetch_row(res));
// Recuperar la posición guardada:
mysql_row_seek(res, pos);
row = mysql_fetch_row(res);
cout << "Cuarta fila" << endl;
for(k = 0 ; k < j ; k++) {
cout << ((row[k]==NULL) ? "NULL" : row[k]) << endl;
}
cout << endl;
// Liberar el resultado de la consulta:
mysql_free_result(res);
}
// El mismo proceso usando mysql_use_result:
// Hacer una consulta con el comando "SELECT * FROM gente":
if(mysql_query(myData, "SELECT * FROM cuenta")) {
// Error al realizar la consulta:
cout << "ERROR: " << mysql_error(myData) << endl;
mysql_close(myData);
rewind(stdin);
getchar();
return 2;
}
// Mostrar todas las filas:
if((res = mysql_use_result(myData))) {
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;
}
// Liberar el resultado de la consulta:
mysql_free_result(res);
}
// Cerrar la conexión
mysql_close(myData);
// Esperar a que se pulse una tecla y salir.
rewind(stdin);
getchar();
return 0;
}

Bueno los errores que se presentan son:
linker error undefined reference to mysql_init@4'
linker error undefined reference to mysql_real_connect@32'
linker error undefined reference to mysql_error@4'
linker error undefined reference to mysql_close@4'
linker error undefined reference to mysql_select@4'

tengo instalada la libreria libmysql pero igual no me funciona
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:conectar dev c++ con mysql

Publicado por cultural420 (1 intervención) el 20/08/2010 04:20:56
primero te sugiero que te busques los siguientes instaladores:

mysql-front-3-23-20i.exe ------> como sistema gestor de base de datos
phptriad2-2-1-------> como motor de base de datos
wxdevcpp_6.10.2_setup.exe ------> para acceder a la base de datos desde un interfaz
libmysql-5.0.5-1sid ---------> libreria para la coneccion a la base de datos

1er paso instalas el wxDev C++ 6.1.
2do paso instalas la libreria de coneccion.
3er paso instalas el motor de base de datos phptriad.
4to paso instalas el sistema gestor de base de datos My-SQL Front.
5to paso abres un proyecto y copias tu codigo.
6to paso lo haces correr.

te sugiero que con los nombres de instaladores que te doy busques sus manuales de instalacion para seguir todo al pie de la letra y te salga bien el ejemplo.

Pronto pondre paso a paso la coneccion de C++ en my sql a la siguiente pagina: www.sistemasjpa.es.tl

Finalmente si no te da siempre puedes escribirme a mi correo cultural420@hotmail.com y te mandare todo lo que necesites de forma mas detallada en cuanto me de tiempo y puedes estar viendo la pagina que te dejo arriba para aprender mucho mas sobre C++.

Bueno espero te sirva lo que te doy por el momento y que te salga todo bien.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar