contactarse a una base de dato mysql a través de mysql connector

14
CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C ( LIBMYSQL) BYCROSS - 07/07/2012 Contactarse a una base de dato MySQL a traves de MYSQL Connector/C (libmysql) QT LIBRARIES VERSION 4.8.1 CONNECTOR/C 6.0.2

Upload: bycross-garcia

Post on 26-Oct-2014

1.473 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

Contactarse a una base de dato MySQL a trave s de MYSQL Connector/C

(libmysql)

QT LIBRARIES VERSION 4.8.1

CONNECTOR/C 6.0.2

Page 2: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

PUNTOS QUE TOCA EL TUTORIAL:

1. INSTALACIÓN DE QT CON LOS COMPONENTE DE QT 4.8.1 SOURCES.

2. EN CASO DE TENER INSTALADO QT, HABILITAR LOS COMPONENTE DE QT 4.8.1 SOURCES.

3. DESCARGAR E INSTALAR MYSQL CONNECTOR/C (LIMMYSQL).

4. AGREGAR EN QT LOS PATH LAS LIBRERÍAS DE MYSQL CONNECTOR/C.

5. MODIFICAR LAS LIBRERÍAS PARA QUE FUNCIONE CON QT.

6. CONFIGURANDO UNA APLICACIÓN QT.

7. EJEMPLOS DE USOS.

8. DOCUMENTACIÓN DE MYSQL.

Page 3: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

EN CASO DE NO TENER QT INSTALADO:

1. DESCARGE QT (HTTP://QT.NOKIA.COM/DOWNLOADS)

2. INSTALE QT CON LA OPCIÓN DE INSTALAR EL PAQKETE QtSources 4.8.1

a. En la pantalla siguiente seleccionamos la Opción Custom, y pulsamos siguiente:

b. En esta pantalla se muestra los componentes a instalar con QT, activamos el Qt 4.8.1

Sources que se encuentra en Qt Sdk > Miscellaneouns > Qt 4.8.1 Sources

Luego Pulsamos siguiente.

Page 4: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

Y luego seguimos la instalación como seria habitual.

EN CASO DE TENERLO INSTALADO QT Y NO A VER INSTALADO (QTSOURCES):

1. ABRIR SDKMAINTENANCETOOL QUE SE EN CUENTRA EN MENU INICIO > QT SDK > MAINTAIN QT SDK

O SINO EN <CARPETA DE INSTALACIÓN DE QT>\SDKMAINTENANCETOOL.EXE

a. Una vez Abierto no aseguramos que la opción Package manager este activado

Page 5: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

b. En esta pantalla se muestra los componentes a instalar con QT, activamos el Qt 4.8.1

Sources que se encuentra en Qt Sdk > Miscellaneouns > Qt Sources > Qt 4.8.1

Sources Luego Pulsamos siguiente.

Page 6: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

Y luego seguimos como seria habitual.

Page 7: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

DESCARGAR E INSTALAR MYSQL CONNECTOR/C (LIMMYSQL).

1. DESCARGE MYSQL CONNECTOR/C DE (HTTP://WWW.MYSQL.COM/DOWNLOADS/CONNECTOR/C/)

2. INSTALE MYSQL CONNECTOR/C.

AGREGAR EN QT LOS PATH LAS LIBRERÍAS DE MYSQL CONNECTOR/C.

1. Abrimos el CMD(consola) del sistema y vamos a la carpeta donde está instalado QT.

En mi caso es D:\QtSdk\

Y luego nos metemos dentro de la carpeta \QtSources\4.8.1

En mi caso sería: D:\QtSdk\QtSources\4.8.1\

Una vez posicionado en la carpeta Ejecutamos el siguiente comando:

configure.exe -opensource -debug-and-release -platform win32-g++ -I <Dirección donde se

instaló el Connector>\include -L <Dirección donde se instaló el Connector>\lib\opt

Nota: Remplazar por la dirección donde instalaron <Dirección donde se instaló el Connector>

MySql Connector/C

Page 8: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

No sale lo siguiente:

Escribimos “Y” y pulsamos Enter

Vemos que sale un montón de Texto

Eso quiere decir que Qt ahora tiene Los path de la librería.

Page 9: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

MODIFICAR LAS LIBRERÍAS PARA QUE FUNCIONE CON QT.

Lo que hay que hacer a continuación es modificar 2 lines de código un fichero fuente de MySql

connector/c

1. Abrimos con Qt el archivo mysql_com.h que se encuentra en <Dirección donde se instaló el

Connector>\include

Vamos a la Línea 268:

Y la comentamos quedaria asi:

Y luego en el mismo archivo vamos a la línea 437:

Y comentamos esta otra línea también, quedaría así:

Una Vez Echo eso Guardamos el Fichero y listo.

Page 10: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

CONFIGURANDO UNA APLICACIÓN QT.

1. CREAMOS UN NUEVO PRPYECTO EN QT.

2. UNA VEZ CREADO EL PROYECTO.

HACEMOS CLICK CON EL DERECHO EN LA RAÍZ DEL PROYECTO Y SELECCIONAMOS ADD LIBRARY…

3. LUEGO SELECCIONAMOS EXTERNAL LIBRARY Y LE DAMOS A SIGUIENTE.

Page 11: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

4. a. LE DAMOS BROWSE DONDE DICE LIBRARY FILE:

EN CUADRO DE DIALOGO TENEMOS QUE BUSCAR EL ARCHIVO LIBMYSQL.LIB EN DONDE

INSTALAMOS EL CONECTOR/C.

EJ: C:\MYSQLCONNECTEC\LIB\OPT\LIBMYSQL.LIB

b. LE DAMOS BROWSE DONDE DICE INCLUDE PATH:

EN CUADRO DE DIALOGO TENEMOS QUE BUSCAR LA CARPETA INCLUDE DONDE INSTALAMOS EL

CONECTOR/C.

EJ: C:\MYSQLCONNECTEC\INCLUDE

Y LUEGO PULSAMOS SIGUIENTE Y FINALIZAR Y YA TENEMOS

CONFIGURADO NUESTRA APP.

Page 12: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

EJEMPLOS:

CONECTARSE A UNA BASE DE DATOS MYSQL:

#include <QtGui/QApplication>

#include <QDebug>

// Incluimos las Librerías

#include <mysql.h>

#include <mysql_com.h>

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

MYSQL mysql; // Creamos un recurso MySQL

mysql_library_init(0,NULL,NULL); // inicializamos la librería

mysql_init(&mysql); // inicializamos el recurso de MySql

mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"Nombre Aplicacion");

// Conectamos a la base de dato

if(!mysql_real_connect(&mysql,"localhost","root","","test",0,NULL,0)){

qDebug() << "Error" << mysql_error(&mysql);

}

return a.exec();

}

Page 13: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

CREANDO UNA CONSULTA A LA BASE DE DATO MYSQL:

#include <QtGui/QApplication>

#include <QDebug>

// Incluimos las Librerías

#include <mysql.h>

#include <mysql_com.h>

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

MYSQL mysql; // Creamos un recurso MySQL

mysql_library_init(0,NULL,NULL); // inicializamos la librería

mysql_init(&mysql); // inicializamos el recurso de MySql

mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"Nombre Aplicacion");

// Conectamos a la base de dato

if(!mysql_real_connect(&mysql,"localhost","root","","test",0,NULL,0)){

qDebug() << "Error" << mysql_error(&mysql);

return a.exec();

}

// Query a enviar a la base de dato

QString query="SELECT * FROM tabla ";

// Envía el Select a la base de dato.

mysql_query(&mysql,query.toAscii().data());

// Obtiene los resultados de la base de dato en un recurso MYSQL_RES

MYSQL_RES * res= mysql_store_result(&mysql);

if(res){ // Verifica MYSQL_RES tenga datos

// Obtiene el número de filas devueltas.

unsigned int num_rows=mysql_num_rows(res);

// Obtengo los resultado de la primera fila en un recurso MYSQL_ROW

MYSQL_ROW row=mysql_fetch_row(res);

// Para acceder a los valores devueltos en la file se accede al

// igual que un array de datos.

// En este caso sacaría el valor de la columna 1 y 2 de la fila 1

qDebug() << row[0] << row[1] ;

}

return a.exec();

}

Page 14: Contactarse a una base de dato MySQL a través de MYSQL Connector

CONTACTARSE A UNA BASE DE DATO MYSQL A TRAVÉS DE MYSQL CONNECTOR/C (LIBMYSQL) BYCROSS - 07/07/2012

DOCUMENTACIÓN DE MYSQL

DOCUMENTACIÓN GENERA:

http://dev.mysql.com/doc/refman/5.1/en/connector-c.html

DOCUMENTACIÓN DE LAS GENERAL DE MYSQL C API:

http://dev.mysql.com/doc/refman/5.1/en/c.html

DOCUMENTACIÓN DE LAS FUNCIONES DE MYSQL C API:

http://dev.mysql.com/doc/refman/5.1/en/c-api-function-overview.html