Blogia

La Colina del Loco...

Cómo hacer programas con el sistema empotrado de Eagle1 y MySQL y no morir en el intento


Cómo usar MySQL empotrado desde Eagle1 v5.02 (y no morir en el intento)
-------------------------------------------------------------------------

Hay dos aspectos que hay que tener en cuenta:

- El entorno de ejecución del programa
- El desarrollo del programa

Tanto uno como el otro es muy fácil de entender y llevar a la practica.
Con este documento voy a intentar que no tengáis problemas con ninguno de
los dos y también a hacer programas que puedan funcionar en los dos sistemas,
o sea, cliente/servidor (C/S) y empotrado.

Paso ya a explicar el primer aspecto.

- El entorno de ejecución del programa

La diferencia entre los sistemas C/S y Empotrado reside en que el primero se
supone que hay un servidor que gestiona el mantenimiento de las bases de datos
y un cliente que hace peticiones al servidor. Estas peticiones o sentencias son
procesadas en el servidor y este devuelve un resultado, que puede ser, por
ejemplo, un conjunto de datos en el caso de un SELECT o un SHOW o simplemente una
verificación de que se ejecutó como es el caso de un INSERT o un DELETE.

Normalmente el servidor suele estar en una máquina y el cliente en otra.
Incluso en sistemas operativos diferentes, LINUX-Windows o Windows-LINUX por ejemplo.
Aunque puede ocurrir que tengamos instalado el cliente y el servidor en la misma
computadora... es este último caso en el que deberíamos plantearnos usar la tecnología
que nos presta Eagle1 y MySQL, el sistema EMPOTRADO.
Esto consiste en que el cliente y el servidor no sólo van a estar en la misma máquina,
sino será el propio programa ejecutable el que haga las funciones de cliente y de servidor.
Esto implica quitar al menos una capa importante que es la del protocolo de transferencia
de datos o comunicaciones, en MySQL, normalmente TCP/IP. Esto por tanto implica teóricamente
una mayor velocidad en el tratamiento de los datos.

Para crear el entorno de ejecución de nuestro programa podemos hacer muchas cosas, pero yo
voy a proponer la que me parece más adecuada:

1) Crearemos una carpeta en la que vamos a instalar nuestro programa, la base de datos y los
archivos necesarios para que funcione.

Por ejemplo:

c:TPV-+
|
+-- Sistema
|
+-- Datos

En "C:TPV" pondremos el ejecutable y el fichero INI de la configuración, por ejemplo
E1TPV.EXE y E1TPV.INI
También podríamos poner el archivo de MySQL LIBMYSQLD.DLL, aunque no es necesario, ya
que podría estar en cualquier carpeta de búsqueda de ejecutables que apunte nuestro
sistema operativo, en Windows sería la variable del sistema PATH la que nos lo indicaría.
Con esto conseguiríamos que varios programas pudieran acceder a LIBMYSQLD.DLL fácilmente y
a la vez.
Así el contenido de la carpeta tendría los archivos:
E1TPV.EXE (Nuestro ejecutable)
E1TPV.INI (archivo INI de configuración)
LIBMYSQLD.DLL (Opcional de poner aquí, es la librería de enlace dinámico que proporciona
MySQL para usar con el sistema empotrado)


En "C:TPVSistema" meteríamos los ficheros de MySQL para el control del idioma, los
"charsets" o juego de caracteres y "languaje" o idioma.
Yo propongo incluso crear dos subcarpetas para alojarlos por separado quedando el árbol
de directorios así:

c:TPV-+
|
+-- Sistema-+
| |
| +-- (Idioma)
| |
| +-- charsets
|
+-- Datos

En la carpeta "Sistema" copiaríamos los diferentes idiomas o lenguajes en los que queramos
que se expresen los mensajes de MySQL como errores, excepciones etc.
Lo copiaríamos por ejemplo desde la instalación de MySQLshared ahí veremos que hay unas
carpetas que se corresponden con dichos idiomas, por ejemplo copiaríamos "spanish" y también
copiariamos de shared la carpeta charsets completa.
Ahora que daría el árbol de esta manera:

c:TPV-+
|
+-- Sistema-+
| |
| +-- spanish
| |
| +-- charsets
|
+-- Datos

Lógicamente en "Datos" se alojaría nuestra base de datos, que podríamos crear desde nuestro
programa o copiándola desde MySQLdata"mi base de datos"

Ahora tendríamos que crear el fichero INI que use nuestro programa para su configuración,
por ejemplo este:

#--------------------------------------------------
# Ejemplo de INI de configuracion
# E1TPV.INI

#--- Opciones generales para el servidor ----------
[servidor]
basedir=./Sistema/
datadir=./Datos/
language=./Sistema/spanish/
character-sets-dir=./Sistema/charsets/

#--- Opciones para la parte cliente ---------------
[cliente]
language=./SysDir/spanish

#--- EOF INI --------------------------------------

Paso a explicar el contenido de E1TPV.INI:
Se usan el carácter # para meter comentarios.
El funcionamiento es idéntico a los INIs normales, por lo que hay etiquetas cuyo nombre
pondremos entre los caracteres []

Yo he dividido nuestro INI en dos:

[servidor] en la que es primordial y obligatorio indicar la ubicación del la base de datos usando
la entrada: "datadir=" El resto de entradas de la etiqueta son opcionales aunque recomendables y
muy aclaratorias por su nombre.

[cliente] aunque parezca redundante es necesario especificar la entrada "language", podemos poner
más entradas para afinar nuestra instalación.

Podríamos crear más etiquetas, por ejemplo una para cada uno de nuestros programas y crear un
único fichero de configuración. Desde el ejecutable le podremos indicar que etiqueta tiene que
leer por defecto.

Bueno con esto concluyo la primeara parte...

Ya llegó Eagle1 v5.02

Ya se puede descargar la nueva versión de Eagle1 en los grupos Yahoo.

Pronto voy ha hacer una serie de artículos sobre cómo hacer programas usando el sistema empotrado de Eagle1 con MySQL embbed

 

Manu

Y con Setiembre llega la V de Eagle1 v5.00

Espero poder sacar una Beta libre de Eagle1 v5.00 la semana del 4 de Septiembre...

Atentos a las pantallas...

Un atardecer de Mayo...

Miro por mi ventana...

Fuera poco a poco el manto de la noche empieza a cubrirlo todo.

Sin querer, mis recuerdo me devuelven al pasado...

Con toda nitidez puedo ver el rostro de toda la gente que pasó por mi vida, incluso los que sólo lo hicieron fugazmente, también los que nunca vi y conocí por Internet ;-) tal vez como tú...

Escucho viejos temas que pusieron banda sonora a mi vida. Aún puedo silbarlos.

Sí, una vez más me he regresado al pasado, cada vez hay más.

Quizás tenga que reconocer que me voy haciendo viejo...

Fuera, tras la ventana, mis hijos juegan en el césped del jardín...

Pienso en el amor grande, en el amor libre y en el Guardián del Faro...

Atardece en mi vida, un día de Mayo...

 

Que me quiten lo bailaoooooooooooooooooooo!!!

Ja ja.. bienvenido, ya, noche...

Y con la primavera... la inigualable Feria de Sevilla... la Feria de Abril...

En Sevilla, señores ahora se vive la Feria... la fiesta para divertirse, para pasarlo bien, sin más...

Aquí, en éste momento el mundo se concentra en el Real de la Feria y de ahí sale una ciudad con el pensamiento puesto sólo en hacer que todo el mundo se sienta agusto sin importar absolutamente ninguna condición... ni nada...

Queridos amigos ya sabeis que en estos días, si cabe, sereis mejor acogidos que nunca... es la fiesta grande de Sevilla... y de Andalucía.

 

Saludos desde el Sur

Andalucía es una tierra grande, vieja y sabia... me siento orgulloso de ser Andaluz

De que quereis que hablemos hoy?

Espero poder tener cada semana algún artículo para escribir por aquí.

Pero me gustaría que fuerais vosotros los que decidierais con cual empiezo.

Contadme qué quereis oir?

Saludos

Ya tengo IBSN

Ya tengo IBSN

Pues después de leer el articulo de Jose Alfonso en su blog, sobre éste tema, he decidido tener también mi propio IBSN.
Para tener más información sobre los IBSN podeis ir a http://ibsn.org/index.php

Aqui estamos porque hemos llegado

Tenia ganas de escribir en mi propio blog y hoy me he decidido.

Espero que este sea un foro donde podamos expresarnos con libertad y hablemos de las cosas que importan.

Ya ire rellenado todo esto de contenido.

Saludos a todos ;-)