[C con Clase] Aprendiendo MySQL + API C
Carolina Herrera
carolinah802 en hotmail.es
Vie Feb 24 05:15:04 CET 2017
Te debo la vida Salvador!!! es un proyecto más bien simple, pero llevo varios años practicando con el C y por eso el interés en trabajar con ambos =)
De todos modos instalaré el SQLite a ver que tal funciona ;) la última duda... con el SQLite podría ingresar datos mediante el teclado a mi base de datos?
Muchísimas gracias de nuevo!!!
Un gran beso para ti.
Karo
________________________________
De: Cconclase <cconclase-bounces en listas.conclase.net> en nombre de Salvador Pozo Coronado <salvador en conclase.net>
Enviado: jueves, 23 de febrero de 2017 06:21 a.m.
Para: Lista de correo sobre C y C++
Asunto: Re: [C con Clase] Aprendiendo MySQL + API C
Estimada Carolina,
Con fecha jueves, 23 de febrero de 2017, 3:06:59, escribió:
CH>
CH>
CH> Muchísimas gracias Salvador!!! De verdad te agradezco por todo el
CH> esfuerzo que haces por ayudarme :)
CH>
CH> Estaré atenta esperando por los archivos, pero mientras revisaré lo que me comentas del SQLite ;)
Hola:
Esto es lo que he descubierto hasta ahora. Probablemente se convierta
en varios artículos en la página de "Con Clase", espero que pronto.
Opción 1
Instalar un compilador de 64 bits.
a) Descargar el compilador desde TDM-GCC 64 bit
(http://tdm-gcc.tdragon.net/download)
TDM-GCC : Download<http://tdm-gcc.tdragon.net/download>
tdm-gcc.tdragon.net
Bundle installer for the TDM32 MinGW edition. Includes C, C++, and OpenMP support, SJLJ exception handling, other GNU toolchain programs (binutils), Windows API ...
b) Instalar el compilador en el ordenador.
c) Configurar Code::Blocks para usar el nuevo compilador.
d) Crear la librería de enlace estático de 64 bits.
e) Copiar los ficheros de cabecera y las librerías en los lugares
adecuados.
f) Crear programas con acceso a MySQL.
Los pasos a y b son triviales.
Para configurar Code::Blocks seguir las instrucciones de este enlace:
http://forums.codeblocks.org/index.php?topic=21570.0
Step by step guide to adding the TDM-GCC 64 bit compiler ...<http://forums.codeblocks.org/index.php?topic=21570.0>
forums.codeblocks.org
Author Topic: Step by step guide to adding the TDM-GCC 64 bit compiler to Code::Blocks (Read 10 times)
Para crear el fichero libmysql.a de 64 bits, seguir las instrucciones
de la página de Con Clase:
http://c.conclase.net/mysql/index.php?cap=000b#inicio
API C MySQL - Prólogo<http://c.conclase.net/mysql/index.php?cap=000b#inicio>
c.conclase.net
No lo he verificado, pero es de suponer que otros compiladores usarán, o bien las bibliotecas estáticas con extensión "a" si se basan en Mingw, o las que tienen ...
La única diferencia es que se deben usar las versiones de los
programas reimp.exe, dlltool.exe y as.exe incluidas en el compilador
de 64 bits.
En este caso no es necesario retocar el fichero .def generado, ya que
no necesita la "decoración" @n para cada función.
Copiar los ficheros de cabecera en la ruta del nuevo compilador, en la
carpeta "include". Usar una carpeta separada llamada "mysql".
Copiar el fichero libmysql.a a la carpeta "lib" del nuevo compilador.
Cuando se cree el proyecto para la aplicación que use MySQL, no
olvidar incluir en "Build options" del proyecto, en la pestaña de
"Linker settings", "Link libraries" las cadenas "mysql" y "ws2_32".
Opción 2
Usar el compilador de 32 bits MinGW
a) Crear la librería de enlace estático de 32 bits.
b) Copiar los ficheros de cabecera y las librerías en los lugares
adecuados.
c) Crear programas con acceso a MySQL.
Aunque parezca más sencillo, esta opción presenta algunos inconvenientes.
Crear la librería, usando las versiones de 32 bits de reimp.exe,
dlltool.exe y as.exe no es tan simple, ya que hay que retocar el
fichero .def generado antes de generar el fichero libmysql.a.
Esto implica editar cada línea del fichero .def para añadir la
"decoración", que consiste en un carácter '@' seguido de un número.
El número corresponde al número de parámetros de la función que
aparece en la línea, multiplicado por cuatro.
Por ejemplo, "mysql_autocommit" se convierte en "mysql_autocommit en 8",
ya que esta función tiene dos parámetros.
Otro ejemplo, "mysql_change_user" se convierte en
mysql_change_user en 16, porque esta función tiene cuatro parámetros.
Para saber cuantos parámetros tiene cada función hay que buscarlas en
el fichero "mysql.h", y contarlos.
El fichero de librería obtenido libmysql.a se copia a la carpeta "lib"
del compilador, que generalmente se encuentra en la carpeta "MinGW"
donde hayamos instalado Code::Blocks.
Los ficheros de cabecera se copian a la carpeta "include", en la misma
ruta, y en una carpeta específica "mysql".
En las opciones del linker del proyecto también hay que incluir las
librerías "mysql" y "ws2_32".
En ambos casos, el fichero "libmysql.dll" debe ser accesible por
nuestra aplicación, por lo tanto, debe estar en una carpeta incluida
en la variable de entorno "PATH", o en la misma carpeta que nuestra
aplicación.
Incluyo varios ficheros adjuntos, para ahorrar trabajo ;-)
include.zip: contiene los ficheros de cabecera de mysql
libmysql_def.zip: fichero .def de 32 bits, decorado.
libmysql_a.zip: fichero de enlace estático de 32 bits.
libmysql_dll.zip: fichero dll
libmysql_lib.zip: fichero de enlace estático versión Microsoft
libmysql_def_64.zip: fichero .def de 64 bits, no necesita decoración.
libmysql_a_64.zip: fichero de enlace estático de 64 bits.
Enlace de descarga:
https://mega.nz/#F!KYhwFaQI
MEGA<https://mega.nz/#F!KYhwFaQI>
mega.nz
Select files to upload or drag drop anywhere on this page What is MEGA? Click or scroll
Clave de cifrado:
!E-cgnMdHbbM7dxhMfM6_0w
He probado las dos versiones, de 32 y 64 bits con el motor de bases de
datos que tengo instalado, MaríaDB, y funciona perfectamente. Debería
funcionar con cualquier versión relativamente reciente de MySQL.
Por último, si tu proyecto no necesita cosas como permisos y
privilegios, claves foráneas, procedimientos almacenados,
disparadores, etc. Una buena opción es SQLite.
Hasta pronto.
--
Saludos,
Salvador mailto:salvador en conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20170224/b515c005/attachment-0001.html>
Más información sobre la lista de distribución Cconclase