martes, 7 de agosto de 2018

Base de datos autores en Lenguaje C y con SQLite, terminal linux


Página principal


Lenguaje C
Base de datos autores
SQLite


En el anterior artículo había realizado una base de datos de libros librosx.html . La había programado en Gambas(Visual Basic para linux) con una extensión que tiene gambas para manejar SQLite.
La programación en Basic es muy fácil, los que tenemos algunos años hemos crecido con el Basic que venía integrado en la mayoría de los ordenadores.
Algunos el lenguaje Basic miran como lenguaje de segunda, pero para la mayoría de las aplicaciones es suficiente.
Como otro de los lenguajes que mas me gustan es el C, he intentado realizar un pequeño programa de consultas que funcione en terminal Linux y en lenguaje C.
Lo que en principio pensé fácil se convirtió en complicado, no había muchos ejemplos, y los que había mezclaban C++  con la utilización de librerías.
Todo es romperse la cabeza, mirar de un lado a otro buscando y buscando, prueba error hasta encontrar la solución.
El programa es simple, búsqueda de autores, búsqueda por IdAutor (único para cada autor), y listado desde un   registro.





  VIDEO DE FUNCIONAMIENTO



PROGRAMA

Saludos.
Juan Galaz

Bibliografía:

https://poesiabinaria.net/2015/03/usando-sqlite-en-nuestros-programas-en-cc/
http://apuntes-para-no-olvidar.blogspot.com/2012/01/conectar-con-una-bd-de-sqlite-en-c.html

miércoles, 1 de agosto de 2018

Gambas - Base de datos de libros con SQLite

Página principal

Gambas
Base de datos de libros
SQLite


Hace unos años realicé una base de datos sobre películas que tenía grabadas. Estaba realizado en Gambas (visual Basic para Linux), y utilizaba SQLite para manejar los datos.
Buscando por internet encontré una base de datos de libros, estaba realizada para access microsoft. Era del programa abies 2 que se utilizaba para una gestión de  bibliotecas escolares.
La página del proyecto es http://www.abies.es/web/ , ahora el proyecto se basa en web, por lo que faltan en mi base de datos muchos libros desde hace 10 años hasta ahora.
Me puse manos a la obra y la base de datos en formato mdb la pase a formato sqlite.
La base de datos consta de 388.000 libros, 200.000 autores, y 50.000 editoriales.
Por lo que podéis ver es bastante grande, era una experiencia nueva trabajar con tanta cantidad de libros, por lo que lo tome como un reto.
En primer lugar hice pruebas con los autores, y me dí cuenta que era un problema las mayúsculas y  los acentos, en las búsquedas.
Había autores que los habían escrito de diferentes formas, Garcia, García, GARCIA, GARCÍA.
En MySQL había una solución, pero en SQLite no funcionaba.
Esto era un problema en las búsquedas, por lo que tome la solución mas drástica, poner todo en mayúsculas y quitar acentos.
También me pasó con las editoriales, por lo que también pasé todo a mayúsculas y quitar acentos.
El programa lo he realizado solo para consultas, por lo que no se puede añadir nada a la base de datos.


En la versión 2 existe una casilla donde se puede escanear con un lector de código de barras.

La base de datos consta de 3 tablas o bases de datos, Fondos,Autores,Editoriales.
La base de datos principal es Fondos, en esta se encuentran los los libros con su  IdAutor y IDEDITORIAL, que son numeros enteros.
Los  campos IdAutor y IDEDITORIAL enlazan a las bases de datos o tablas, de Autores y Editoriales, donde se encuentran los nombres de cada autor y editorial.
En resumen son 3 bases de datos con datos enlazados o datos vinculados.
El programa me ha quedado digno, aunque con una espina en la velocidad al inicio. Cuando se emplea la orden TablaFondos = Conexion.Exec("Select * from Fondos") tarda unos 5 segundos en actualizar la base de datos. Ya sé que es grande pero he visto en otros programas que lo hacen mas rápido. Existe un truco, pero no lo he querido emplear de momento.


Los dos diferentes diálogos para seleccionar autor y editorial.

El que quiere ver como funciona el programa antes de bajarlo, he realizado un video de funcionamiento.
VIDEO

PROGRAMA BINARIO CON BASE DE DATOS DE LIBROS V2

PROGRAMA FUENTE V2

Saludos.
Juan Galaz




Como curiosidad existe una página web donde se encuentra una base de datos de libros inmensa.
REBECA: registros bibliográficos para bibliotecas públicas españolas


Bibliografía:

Para aprender utilizar SQLite con gambas he utilizado los siguientes enlaces:
http://gambas.sourceforge.net/es/main.html  Página oficial de gambas
http://www.gambas-es.org/index.php  Foro de gambas
http://help-gambas.blogspot.com/  Página con algún tutorial de gambas
https://jsbsan.blogspot.com/  Blog Mis Proyectos en Gambas
http://gambeando.wordpress.com/  Página donde existen buenos tutoriales explicados de gambas.
http://www.fidojones.com/category/gambas/  Página sobre programas en gambas y algún otro programa relacionado con facturación. Me mando un programa hecho en gambas que me ayudo mucho en la realización del mio, gracias.
http://gambaswiki.org/wiki/howto/databasesqlite