Hilo
Saludos a todos!!!
Encontré un programa que en teoría funciona en C y utiliza MySQL, el problema es que incluye el archivo "mysql.h", ya lo busqué en mi pc, pero no encuentro dicho archivo [☹]
Intenté bajarlo de internet, pero tampoco pude encontrarlo, tengo entendido (por lo poco que leí) que es el que se encarga de enlazar mi programa en C con el MySQL, alguien sabe donde puedo encontrarlo?
Como siempre agradecida por cualquier ayuda que puedan darme.
Un beso
Karo
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Salvador Pozo) 2017-02-21 11:57:10
El pasado 2017-02-21 03:20:41, Carolina Herrera escribió:
CH> Encontré un programa que en teoría funciona en C y utiliza MySQL, el problema es que incluye el archivo "mysql.h", ya lo busqué en mi pc, pero no encuentro dicho archivo [☹]
CH> Intenté bajarlo de internet, pero tampoco pude encontrarlo, tengo entendido (por lo poco que leí) que es el que se encarga de enlazar mi programa en C con el MySQL, alguien sabe donde puedo encontrarlo?
Hola:
No sólo necesitas los ficheros de cabecera (.h), también necesitas ficheros de librería de enlace dinámico (DLL) y ficheros de librería de enlace estático, para poder acceder a la DLL (.lib o .a).
Lamentablemente MySQL ya no es libre, y además, las versiones actuales son algo diferentes que la que se documenta en la página de "Con Clase".
En la página está explicado el procedimiento para obtener los ficheros de cabecera y de librería:
http://conclase.net/c/mysql/index.php?cap=000b#inicio
Puedes encontrar un procedimiento general para conseguir ficheros .a a partir de .lib o .dll en:
https://blogconclase.wordpress.com/2013/04/26/crear-librerias-a-a-partir-de-librerias-lib/
Esto es si usas el compilador MinGW, si usas un compilador de Microsoft no necesitas un fichero .a, bastará con el .lib.
Dado que estos ficheros se extraen del paquete de instalación de MySQL, es probable que los obtenidos para diferentes versiones de MySQL no sean compatibles entre si. Podría enviarte los ficheros necesarios, pero no te aseguro que funcionen en tu versión.
Otra opción es usar otro motor de bases de datos. Por ejemplo, MariaDB:
https://mariadb.org/
Es un proyecto que se separó de MySQL cuando fue comprado por Oracle, y que sigue siendo software libre. Las primeras versiones son virtualmente idénticas, aunque desde que se separaron han evolucionado por separado, aún son compatibles casi al 100%.
En cualquier caso, si descargas MySQL o MariaDB, en ambos casos se incluyen dos carpetas: lib e include.
En la primera encontrarás los ficheros de librería DLL, y en el segundo, los ficheros de cabecera .h.
En ambos casos usan los mismos nombres de fichero (mysql.h, libmysql.dll, etc)
Si no consigues encontrar los ficheros necesarios, me dices que versión usas y te los enviaré o los pondré para descarga.
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador@conclase.net
Blog con Clase: http://blogconclase.wordpress.com
Con Clase: http://conclase.net
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Carolina Herrera) 2017-02-22 01:57:32
Hola Salvador!!!
Ya revisé y no consigo encontrar los archivos =(, la versión que tengo instalada es la 5.7 para Windows de 64 bits.
Disculpa por molestarte tanto, pero no tengo a quien más recurrir, yo creía que MySQL era software libre y por eso me animé a aprenderlo en lugar del SQL Server, considerando aquello, ¿cuál me recomiendas aprender? algunos de mis compañeros me comentaron que podría usar SQL Server y Access para hacer mi proyecto, pero mi objetivo inicial era irme por el lado del software libre.
Desde ya te agradezco por tu paciencia y por tu gran ayuda!!!
Un beso enorme para ti.
Karo
________________________________
De: Cconclase <cconclase-bounces@listas.conclase.net> en nombre de Salvador Pozo <salvador@conclase.net>
Enviado: martes, 21 de febrero de 2017 07:57 a.m.
Para: cconclase@listas.conclase.net
Asunto: Re: [C con Clase] Aprendiendo MySQL + API C
El pasado 2017-02-21 03:20:41, Carolina Herrera escribió:
CH> Encontré un programa que en teoría funciona en C y utiliza MySQL, el problema es que incluye el archivo "mysql.h", ya lo busqué en mi pc, pero no encuentro dicho archivo [☹]
CH> Intenté bajarlo de internet, pero tampoco pude encontrarlo, tengo entendido (por lo poco que leí) que es el que se encarga de enlazar mi programa en C con el MySQL, alguien sabe donde puedo encontrarlo?
Hola:
No sólo necesitas los ficheros de cabecera (.h), también necesitas ficheros de librería de enlace dinámico (DLL) y ficheros de librería de enlace estático, para poder acceder a la DLL (.lib o .a).
Lamentablemente MySQL ya no es libre, y además, las versiones actuales son algo diferentes que la que se documenta en la página de "Con Clase".
En la página está explicado el procedimiento para obtener los ficheros de cabecera y de librería:
http://conclase.net/c/mysql/index.php?cap=000b#inicio
API C MySQL - Prólogo - Con Clase<http://conclase.net/c/mysql/index.php?cap=000b#inicio>
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 ...
Puedes encontrar un procedimiento general para conseguir ficheros .a a partir de .lib o .dll en:
https://blogconclase.wordpress.com/2013/04/26/crear-librerias-a-a-partir-de-librerias-lib/
[https://blogconclase.files.wordpress.com/2016/02/libros.jpg?w=182&h=140]<https://blogconclase.wordpress.com/2013/04/26/crear-librerias-a-a-partir-de-librerias-lib/>
Crear librerías .a a partir de librerías .lib | Blog con Clase<https://blogconclase.wordpress.com/2013/04/26/crear-librerias-a-a-partir-de-librerias-lib/>
blogconclase.wordpress.com
9 marzo, 2016 - 20:16 salvapozo. No debería ser complicado. En los dos casos, lo que queremos obtener es una librería estática para poder acceder a las funciones ...
Esto es si usas el compilador MinGW, si usas un compilador de Microsoft no necesitas un fichero .a, bastará con el .lib.
Dado que estos ficheros se extraen del paquete de instalación de MySQL, es probable que los obtenidos para diferentes versiones de MySQL no sean compatibles entre si. Podría enviarte los ficheros necesarios, pero no te aseguro que funcionen en tu versión.
Otra opción es usar otro motor de bases de datos. Por ejemplo, MariaDB:
https://mariadb.org/
[https://mariadb.org/wp-content/uploads/2015/10/mariadb-seal-rise.jpg]<https://mariadb.org/>
MariaDB.org - Ensuring continuity and open collaboration<https://mariadb.org/>
mariadb.org
The MariaDB Foundation – Ensuring continuity and open collaboration in the MariaDB ecosystem
Es un proyecto que se separó de MySQL cuando fue comprado por Oracle, y que sigue siendo software libre. Las primeras versiones son virtualmente idénticas, aunque desde que se separaron han evolucionado por separado, aún son compatibles casi al 100%.
En cualquier caso, si descargas MySQL o MariaDB, en ambos casos se incluyen dos carpetas: lib e include.
En la primera encontrarás los ficheros de librería DLL, y en el segundo, los ficheros de cabecera .h.
En ambos casos usan los mismos nombres de fichero (mysql.h, libmysql.dll, etc)
Si no consigues encontrar los ficheros necesarios, me dices que versión usas y te los enviaré o los pondré para descarga.
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador@conclase.net
Blog con Clase: http://blogconclase.wordpress.com
Con Clase: http://conclase.net
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Salvador Pozo) 2017-02-22 20:23:07
Estimada Carolina,
Con fecha miércoles, 22 de febrero de 2017, 3:02:32, escribió:
CH> Hola Salvador!!!
CH> Ya revisé y no consigo encontrar los archivos =(, la versión que
CH> tengo instalada es la 5.7 para Windows de 64 bits.
CH>
CH> Disculpa por molestarte tanto, pero no tengo a quien más
CH> recurrir, yo creía que MySQL era software libre y por eso me animé
CH> a aprenderlo en lugar del SQL Server, considerando aquello, ¿cuál
CH> me recomiendas aprender? algunos de mis compañeros me comentaron
CH> que podría usar SQL Server y Access para hacer mi proyecto, pero
CH> mi objetivo inicial era irme por el lado del software libre.
CH>
Hola:
Llevo un buen rato trabajando en este tema . Primero consiguiendo la
versión de MySQL.
Una vez he localizado el fichero DLL (libmysql.dll), y los ficheros de
cabecera, he conseguido generar un fichero libmysql.a, que permite
usar la dll desde MinGW, al menos en teoría.
El problema que estoy teniendo ahora es que la dll es para 64 bits, y
el compilador que viene con Code::Blocks es de 32 bits, por lo que,
aunque el programa compila correctamente, da un error de ejecución.
Ahora estoy descargando una versión del compilador de 64 bits, a ver
si con eso se soluciona el problema.
Mientras, he probado con una versión de la dll de 32 bits, y el
programa funciona sin problemas, por lo que imagino que compilando
para 64 bits también funcionará usando la dll de 64 bits.
En cuanto tenga todo verificado te envío los ficheros que
necesitas.
En cuanto a qué te recomiendo aprender, no hay muchas diferencias
entre unos motores de bases de datos y otros, siempre que sean SQL, el
lenguaje es similar, y sólo te afectará a la hora de usarlo desde tus
propios programas. En principio, con todos tendrás problemas
similares.
Por cierto, que estoy usando una dll de MySQL con un motor de MariaDB,
y funciona bien. Hasta ese punto son compatibles. De hecho, son
prácticamente intercambiables.
Otra opción es usar SQLite, que también es libre, hasta donde yo sé.
Todo depende del proyecto que tengas entre manos. SQLite es mejor para
aplicaciones de escritorio, ya que no necesitas un servidor de bases
de datos. Si necesitas acceso a bases de datos remotas, puedes usar
MariaDB o MySQL indistintamente.
CH> Desde ya te agradezco por tu paciencia y por tu gran ayuda!!!
No hay de qué. Necesito desoxidarme un poco con la programación,
últimamente estoy bastante desconectado. Me viene bien un poco de
tarea.
Hasta pronto.
--
Saludos,
Salvador mailto:salvador@conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Carolina Herrera) 2017-02-23 02:01:42
Muchísimas gracias Salvador!!! De verdad te agradezco por todo el esfuerzo que haces por ayudarme
Estaré atenta esperando por los archivos, pero mientras revisaré lo que me comentas del SQLite ;)
Un gran beso para ti.
Karo
________________________________
De: Cconclase <cconclase-bounces@listas.conclase.net> en nombre de Salvador Pozo Coronado <salvador@conclase.net>
Enviado: miércoles, 22 de febrero de 2017 04:28:12 p.m.
Para: Lista de correo sobre C y C++
Asunto: Re: [C con Clase] Aprendiendo MySQL + API C
Estimada Carolina,
Con fecha miércoles, 22 de febrero de 2017, 3:02:32, escribió:
CH> Hola Salvador!!!
CH> Ya revisé y no consigo encontrar los archivos =(, la versión que
CH> tengo instalada es la 5.7 para Windows de 64 bits.
CH>
CH> Disculpa por molestarte tanto, pero no tengo a quien más
CH> recurrir, yo creía que MySQL era software libre y por eso me animé
CH> a aprenderlo en lugar del SQL Server, considerando aquello, ¿cuál
CH> me recomiendas aprender? algunos de mis compañeros me comentaron
CH> que podría usar SQL Server y Access para hacer mi proyecto, pero
CH> mi objetivo inicial era irme por el lado del software libre.
CH>
Hola:
Llevo un buen rato trabajando en este tema . Primero consiguiendo la
versión de MySQL.
Una vez he localizado el fichero DLL (libmysql.dll), y los ficheros de
cabecera, he conseguido generar un fichero libmysql.a, que permite
usar la dll desde MinGW, al menos en teoría.
El problema que estoy teniendo ahora es que la dll es para 64 bits, y
el compilador que viene con Code::Blocks es de 32 bits, por lo que,
aunque el programa compila correctamente, da un error de ejecución.
Ahora estoy descargando una versión del compilador de 64 bits, a ver
si con eso se soluciona el problema.
Mientras, he probado con una versión de la dll de 32 bits, y el
programa funciona sin problemas, por lo que imagino que compilando
para 64 bits también funcionará usando la dll de 64 bits.
En cuanto tenga todo verificado te envío los ficheros que
necesitas.
En cuanto a qué te recomiendo aprender, no hay muchas diferencias
entre unos motores de bases de datos y otros, siempre que sean SQL, el
lenguaje es similar, y sólo te afectará a la hora de usarlo desde tus
propios programas. En principio, con todos tendrás problemas
similares.
Por cierto, que estoy usando una dll de MySQL con un motor de MariaDB,
y funciona bien. Hasta ese punto son compatibles. De hecho, son
prácticamente intercambiables.
Otra opción es usar SQLite, que también es libre, hasta donde yo sé.
Todo depende del proyecto que tengas entre manos. SQLite es mejor para
aplicaciones de escritorio, ya que no necesitas un servidor de bases
de datos. Si necesitas acceso a bases de datos remotas, puedes usar
MariaDB o MySQL indistintamente.
CH> Desde ya te agradezco por tu paciencia y por tu gran ayuda!!!
No hay de qué. Necesito desoxidarme un poco con la programación,
últimamente estoy bastante desconectado. Me viene bien un poco de
tarea.
Hasta pronto.
--
Saludos,
Salvador mailto:salvador@conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Salvador Pozo) 2017-02-23 10:16:02
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)
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
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
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@8",
ya que esta función tiene dos parámetros.
Otro ejemplo, "mysql_change_user" se convierte en
mysql_change_user@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
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@conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Carolina Herrera) 2017-02-24 04:09:30
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@listas.conclase.net> en nombre de Salvador Pozo Coronado <salvador@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@8",
ya que esta función tiene dos parámetros.
Otro ejemplo, "mysql_change_user" se convierte en
mysql_change_user@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@conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Salvador Pozo) 2017-02-24 10:42:34
Estimada Carolina,
Con fecha viernes, 24 de febrero de 2017, 5:15:04, escribió:
CH> Te debo la vida Salvador!!! es un proyecto más bien simple, pero
CH> llevo varios años practicando con el C y por eso el interés en trabajar con ambos =)
CH>
CH> De todos modos instalaré el SQLite a ver que tal funciona ;) la
CH> última duda... con el SQLite podría ingresar datos mediante el teclado a mi base de datos?
Hola:
SQLite, al igual que MySQL, es un lenguaje para acceso y mantenimiento
de bases de datos, por lo tanto, carece de sentencias de entrada y
salida en el sentido habitual. Este trabajo debe hacerse externamente,
ya sea de forma manual, desde la consola, o desde otros lenguajes, a
través de librerías o APIs.
Puedes consultar el modo de hacerlo desde C/C++ en nuestra página:
http://c.conclase.net/sqlite/index.php
SQLite es más adecuado para aplicaciones pequeñas, ya que no es
necesario instalar un servidor de bases de datos. Toda esta tarea se
realiza desde una DLL y los programas que generemos serán autónomos y
no será necesario instalar otras aplicaciones.
Se usa habitualmente para guardar variables de las aplicaciones, como
las opciones de usuario, valores iniciales de listas de selección o
valores de configuración, pero se puede usar para mucho más, ya que
permite muchas de las sentencias SQL y es posible manejar gran
cantidad de registros.
Firefox, por ejemplo, lo usa para almacenar los enlaces a favoritos.
De nuevo, si necesitas ayuda para poner en marcha una aplicación con
SQLite, no dudes en preguntar.
Hasta pronto.
--
Saludos,
Salvador mailto:salvador@conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Aprendiendo MySQL + API C (Carolina Herrera) 2017-02-25 01:41:19
Muchísimas gracias Salvador!!!
Probando con las indicaciones que me diste para trabajar con C y MySQL :D. No dudes que si tengo algún problema serás el primero en saberlo =P
Un gran beso para ti
Karo
________________________________
De: Cconclase <cconclase-bounces@listas.conclase.net> en nombre de Salvador Pozo Coronado <salvador@conclase.net>
Enviado: viernes, 24 de febrero de 2017 06:48 a.m.
Para: Lista de correo sobre C y C++
Asunto: Re: [C con Clase] Aprendiendo MySQL + API C
Estimada Carolina,
Con fecha viernes, 24 de febrero de 2017, 5:15:04, escribió:
CH> Te debo la vida Salvador!!! es un proyecto más bien simple, pero
CH> llevo varios años practicando con el C y por eso el interés en trabajar con ambos =)
CH>
CH> De todos modos instalaré el SQLite a ver que tal funciona ;) la
CH> última duda... con el SQLite podría ingresar datos mediante el teclado a mi base de datos?
Hola:
SQLite, al igual que MySQL, es un lenguaje para acceso y mantenimiento
de bases de datos, por lo tanto, carece de sentencias de entrada y
salida en el sentido habitual. Este trabajo debe hacerse externamente,
ya sea de forma manual, desde la consola, o desde otros lenguajes, a
través de librerías o APIs.
Puedes consultar el modo de hacerlo desde C/C++ en nuestra página:
http://c.conclase.net/sqlite/index.php
API C SQLite - Prólogo<http://c.conclase.net/sqlite/index.php>
c.conclase.net
Volveremos a explicar el método que usaremos para obtener el fichero que nos falta para poder acceder a la DLL de SQLite desde nuestro programas C/C++.
SQLite es más adecuado para aplicaciones pequeñas, ya que no es
necesario instalar un servidor de bases de datos. Toda esta tarea se
realiza desde una DLL y los programas que generemos serán autónomos y
no será necesario instalar otras aplicaciones.
Se usa habitualmente para guardar variables de las aplicaciones, como
las opciones de usuario, valores iniciales de listas de selección o
valores de configuración, pero se puede usar para mucho más, ya que
permite muchas de las sentencias SQL y es posible manejar gran
cantidad de registros.
Firefox, por ejemplo, lo usa para almacenar los enlaces a favoritos.
De nuevo, si necesitas ayuda para poner en marcha una aplicación con
SQLite, no dudes en preguntar.
Hasta pronto.
--
Saludos,
Salvador mailto:salvador@conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Lo logré!!! y todo gracias a ti!!! muchisisisisisisimas gracias Salvador!!! [😃]
Un gran beso
Karo
________________________________
De: Cconclase <cconclase-bounces@listas.conclase.net> en nombre de Salvador Pozo Coronado <salvador@conclase.net>
Enviado: viernes, 24 de febrero de 2017 06:48 a.m.
Para: Lista de correo sobre C y C++
Asunto: Re: [C con Clase] Aprendiendo MySQL + API C
Estimada Carolina,
Con fecha viernes, 24 de febrero de 2017, 5:15:04, escribió:
CH> Te debo la vida Salvador!!! es un proyecto más bien simple, pero
CH> llevo varios años practicando con el C y por eso el interés en trabajar con ambos =)
CH>
CH> De todos modos instalaré el SQLite a ver que tal funciona ;) la
CH> última duda... con el SQLite podría ingresar datos mediante el teclado a mi base de datos?
Hola:
SQLite, al igual que MySQL, es un lenguaje para acceso y mantenimiento
de bases de datos, por lo tanto, carece de sentencias de entrada y
salida en el sentido habitual. Este trabajo debe hacerse externamente,
ya sea de forma manual, desde la consola, o desde otros lenguajes, a
través de librerías o APIs.
Puedes consultar el modo de hacerlo desde C/C++ en nuestra página:
http://c.conclase.net/sqlite/index.php
API C SQLite - Prólogo<http://c.conclase.net/sqlite/index.php>
c.conclase.net
Volveremos a explicar el método que usaremos para obtener el fichero que nos falta para poder acceder a la DLL de SQLite desde nuestro programas C/C++.
SQLite es más adecuado para aplicaciones pequeñas, ya que no es
necesario instalar un servidor de bases de datos. Toda esta tarea se
realiza desde una DLL y los programas que generemos serán autónomos y
no será necesario instalar otras aplicaciones.
Se usa habitualmente para guardar variables de las aplicaciones, como
las opciones de usuario, valores iniciales de listas de selección o
valores de configuración, pero se puede usar para mucho más, ya que
permite muchas de las sentencias SQL y es posible manejar gran
cantidad de registros.
Firefox, por ejemplo, lo usa para almacenar los enlaces a favoritos.
De nuevo, si necesitas ayuda para poner en marcha una aplicación con
SQLite, no dudes en preguntar.
Hasta pronto.
--
Saludos,
Salvador mailto:salvador@conclase.net
Con Clase: http://www.conclase.net
Blog con Clase: http://blogconclase.wordpress.com
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ