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...
0 comentarios