[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