PDF de programación - MySQL con Clase

Imágen de pdf MySQL con Clase

MySQL con Clasegráfica de visualizaciones

Publicado el 9 de Junio del 2018
1.155 visualizaciones desde el 9 de Junio del 2018
663,2 KB
129 paginas
Creado hace 18a (15/05/2005)
http://localhost/conclase/c/mysql/para-pdf/index.php



Con Clase, http://www.conclase.net

Curso del API C de MySQL por Salvador Pozo Coronado

© Mayo 2005

http://localhost/conclase/c/mysql/para-pdf/index.php15/05/2005 14:31:30

Prólogo

Prólogo

MySQL es una marca registrada por MySQL AB. Parte del material que se

expone aquí, concretamente las referencias de funciones del API de MySQL y de la sintaxis de
SQL, son traducciones del manual original de MySQL que se puede encontrar en inglés en
www.mysql.com.

Este sitio está desarrollado exclusivamente por los componentes de Con Clase, cualquier
error en la presente documentación es sólo culpa nuestra.

Introducción

El presente manual trata sobre la integración de bases de datos MySQL dentro de aplicaciones C y C++.
Para ello nos limitaremos a explicar algunas de las funciones y estructuras del API de MySQL y al modo en
que estas se combinan para crear programas que trabajen con bases de datos.

Se supone que el lector de este documento ya tiene conocimientos sobre diseño de bases de datos y sobre el
lenguaje de consulta SQL. De todos modos, en Con Clase también se incluye un curso sobre estos temas, al
que se puede acceder desde MySQL con Clase.

También supondremos que trabajamos en un sistema que tiene instalado el servidor MySQL. Se puede
consultar la documentación en la página de MySQL para obtener detalles sobre el modo de instalar este
servidor en distintos sistemas operativos.

Instalación de librerías para Dev-C++

Lo que sí necesitamos es, por supuesto, un compilador de C/C++. Los ejemplos que aparecen en este curso
están escritos en C++, pero usaremos el API C, de modo que las estructuras de los programas deben ser
fácilmente adaptables a código C.

Nota: Aunque existe un API C++, que encapsula el API C de MySQL, de momento no se incluye
documentación sobre él en este curso.

Siguiendo lo que ya es una tradición en Con Clase usaremos el compilador Mingw y el entorno de
desarrollo Dev-C++ para crear nuestros programas de ejemplo. En este entorno se puede descargar un
paquete para usar el API de MySQL. Veamos cómo hacerlo paso a paso:

1. Usar la opción Ayuda->Sobre..., se mostrará este cuadro de diálogo:

http://localhost/conclase/c/mysql/para-pdf/index.php?cap=000 (1 of 6)15/05/2005 14:31:33

Prólogo

2. Pulsar el botón "Buscar actualizaciones", se mostrará el cuadro de diálogo de actualizaciones:

http://localhost/conclase/c/mysql/para-pdf/index.php?cap=000 (2 of 6)15/05/2005 14:31:33

Prólogo

3. Pulsar el botón "Check for updates". Se leerá una lista de los paquetes disponibles.
4. Seleccionar el paquete MySQL y pulsar el botón "Download selected":

http://localhost/conclase/c/mysql/para-pdf/index.php?cap=000 (3 of 6)15/05/2005 14:31:33

Prólogo

5. Se descargará el paquete desde Internet, y aparecerá este mensaje: "The updates you selected have

been downloaded. Now they will be installed.", es decir, que se han descargado las actualizaciones y
se procederá a instalarlas. Pulsamos "Ok".

6. Se abrirá otra ventana, con el "Installation Wizard", pulsamos "Install>":

7. Cuando termine la instalación pulsamos "Finish", y se cerrará el "Installation Wizard".

http://localhost/conclase/c/mysql/para-pdf/index.php?cap=000 (4 of 6)15/05/2005 14:31:33

Prólogo

Ahora tendremos un subdirectorio MySQL bajo el directorio include de Dev-C++, que contendrá los ficheros
de cabecera ".h". En el directorio lib de Dev-C++ se habrán copiado los ficheros "libmySQL.a" y
"libmySQL.def". Y en el directorio de examples de Dev-C++ habrá una carpeta con un proyecto de ejemplo
MySQLClientTest, (que no funcionará :-), aunque esto no debe preocuparnos, ya que tampoco lo vamos a
necesitar).

Usar ficheros incluidos con MySQL

Pero en realidad, aunque esto funcione, lo cierto es que junto con la instalación del servidor MySQL ya
existen los ficheros de cabecera y las librerías necesarias para usar MySQL en nuestros programas C/C++.

El método que vamos a explicar tiene la ventaja de que usaremos las librerías adecuadas para la versión de
MySQL que tenemos instalada. Si usamos el método del paquete de Dev-C++ probablemente estaremos
usando librerías de una versión anterior.

Los ficheros de cabecera están en el directorio include dentro del directorio de instalación de MySQL, que
dependerá de dónde lo hayas instalado. Esos ficheros pueden ser copiados al directorio a un directorio mysql
dentro del directorio include de Dev-C++.

Además, en el directorio lib\opt de MySQL existen varios ficheros de librería, y una librería de enlace
dinámico libmysql.dll. Copiaremos esta librería a un directorio donde sea accesible, por ejemplo al directorio
system32 de Windows.

De los ficheros de librerías estáticas sólo nos interesa uno: libmysql.lib.

Pero Mingw no puede usar esa librería directamente. Este compilador usa otro formato de librerías estáticas,
que además de tener la extensión ".a", tienen un formato interno diferente. Deberemos, por lo tanto, convertir
la librería.

Para poder hacerlo necesitamos los siguientes ficheros:

l El fichero de librería dinámica "dll": libmysql.dll.
l El fichero de librería estática "lib": libmysql.lib.
l El fichero de definición de librería "def": libmysql.def.

Y estas tres utilidades:

l Utilidad reimp.exe.
l Utilidad dlltool.exe.
l Utilidad as.exe.

Los dos primeros ficheros ya los tenemos, los encontraremos en el directorio lib\opt de modo que para
trabajar más fácilmente, los copiaremos a un directorio temporal de trabajo, por ejemplo, C:\mysqltmp\.

http://localhost/conclase/c/mysql/para-pdf/index.php?cap=000 (5 of 6)15/05/2005 14:31:33

Prólogo

Para obtener el tercero necesitamos una utilidad de Mingw llamada reimp. Esta utilidad sirve para extraer
ficheros de definición de librerías "lib".

Para conseguir la herramienta reimp hay que descargar el fichero Utilidades mingw, que contiene algunas
utilidades, pero del que sólo nos interesa el fichero reimp.exe.

Copiaremos el fichero reimp.exe al directorio de trabajo temporal, y ejecutamos esta sentencia desde la línea
de comandos:

C:\mysqltmp> reimp -d libmysql.lib

Ahora ya tenemos el fichero libmysql.def. El siguiente paso es generar el fichero de librería estática libmysql.
a. Para ello necesitamos las otras dos utilidades, dlltool.exe y as.exe que están incluidan con el compilador
Mingw, y que podemos encontrar en el subdirectorio mingw32\bin del directorio donde esté instalado Dev-C
++. Para comodidad, copiaremos estas utilidades al directorio temporal de trabajo, y ejecutaremos la
siguiente sentencia desde la línea de comandos:

C:\mysqltmp>dlltool -d libmysql.def -D libmysql.dll -k -l libmysql.a

La utilidad as.exe se invoca automáticamente desde dlltool. Ahora ya tenemos nuestro fichero de librería
estática libmysql.a, y lo copiaremos al directorio lib de Dev-C++.

Por último, podemos borrar el directorio de trabajo temporal. Y ya podemos usar bases de datos desde
programas C/C++.

Este proceso es válido para convertir cualquier librería en formato "lib" a su equivalente en formato "a".

Usar librerías desde otros compiladores

No lo he verificado, pero es de suponer que otros compiladores usarán, o bien las librerías estáticas con
extensión "a" si se basan en Mingw, o las que tienen extensión "lib", como los compiladores de Borland o
Microsoft.

En cualquier caso, si quieres compartir tus experiencias en estos compiladores con nosotros, podremos
ampliar este apartado.

http://localhost/conclase/c/mysql/para-pdf/index.php?cap=000 (6 of 6)15/05/2005 14:31:33

Conectar y desconectar de MySQL

1 Conectar y desconectar

Siempre, cada vez que queramos usar MySQL en una de nuestras aplicaciones, deberemos realizar
algunas tareas antes y después de acceder al servidor. Esto es bastante corriente cuando se trabaja con
"motores", ya sean gráficos, de bases de datos, o de lo que sea.

Primero hay que verificar que el motor está presente y en ejecución. Después hay que establecer una
conexión o canal que sirva para mantener un diálogo con el servidor. A partir de ahí podremos
entablar comunicación con ese servidor, y cuando hayamos terminado, cerrar la conexión.

Iniciar y conectar con el servidor MySQL

Lo primero es iniciar un objeto del tipo MYSQL. Este objeto se usa por el API para mantener las
variables de la conexión con el motor de MySQL.

Para iniciar uno de estos objetos usamos la función mysql_init(). Esta función sólo necesita un
parámetro, que es un puntero a un objeto de tipo MYSQL. Si ya disponemos de un objeto de ese tipo
podemos pasar su dirección como parámetro, y la función lo iniciará. Si no disponemos de tal objeto,
pasaremos un puntero nulo y la función lo creará dinámicamente y nos devolverá un puntero al objeto.

Por ejemplo, usando un objeto dinámico:

MYSQL *myData;

// Intentar iniciar MySQL:
if(!(myData = mysql_init(0))) {
// Imposible crear el objeto myData
return 1;
}

Y usando un objeto estático:

MYSQL myData;

// Iniciar MySQL:
mysql_init((MYSQL*)&myData));

http://localhost/conclase/c/mysql/para-pdf/index.php?cap=001 (1 of 4)15/05/2005 14:31:40

Conectar y desconectar de MySQL

Generalmente trabajaremos con un objeto MYSQL dinámico, al menos en los ejemplos de este curso.

Establecer una conexión

Una vez hemos inicializado el objeto MYSQL, intentaremos establecer una conexión con el servidor.
Para ello usaremos la función mysql_real_connect().

Esta función necesita muchos parámetros, concretamente ocho. Veamos qué significa cada uno de
ellos:

1. Un puntero a un objeto MYSQL, que previamente tendremos que haber iniciado con la función

mysql_init().

2. El nombre del ordenador donde se está ejecutando el servidor. Puede ser también una dirección
IP. Si el servidor está ejecutándose en la misma máquina que la aplicación, este nombre puede
ser "localhost", o simplemente, un puntero nulo.

3. El nombre del usuario. En sistemas Unix puede ser un puntero nulo
  • Links de descarga
http://lwp-l.com/pdf11733

Comentarios de: MySQL con Clase (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad