Archivo de la categoría: SQL

Mejoras en los Data Controls de Xailer 7

Os sigo comentando las mejoras importantes que incluirá el futuro Xailer 7. Como muchos sabéis, cuando se utilizan DataControls, Xailer es capaz de acceder a los distintas campos de una tabla o cursor como si se trataran de miembros de la propia clase TDataset. Un ejemplo:

WITH OBJECT oDataset
  :Edit()
  :Codigo := 1 // campo
  :Nombre := "Ignacio" // campo
  :Update()
END WITH

Cuando el nombre del campo coincide con un miembro real del propio dataset, el acceso al campo no es posible, ya que tiene preferencia el miembro de la clase TDataset. Para resolver este problema, hasta ahora se podía utilizar el método TDataset:FieldPut() directamente o bien recuperar el objeto TDataField con el método oFieldByName() y luego asignarle el valor.

A partir de Xailer 7 tenemos una solución más elegante para acceder a cualquier campo del TDataset aunque coincida su nombre con algún miembro de la clase y consiste en utilizar la siguiente instrucción: TDataset:!Campo

Observe como la única diferencia existente es la admiración después de ‘:’. Además, de esta forma, usted mismo como programador, sabrá si está accediendo a un campo o a un miembro de la clase, lo que hará que su código sea mucho más legible.

Otra mejora importante: En Xailer 7 hemos hecho un pequeño guiño a las bases de datos NoSQL. En las bases de datos NOSQL los esquemas de datos son dinámicos, es decir, no existe una estructura fija de tabla y la consistencia de los datos es menos importante. En Xailer 7 hemos querido incluir alguna de sus cualidades y ahora cualquier dataset, incluso una tabla DBF puede tener la habilidad de guardar en su tabla cualquier campo, aunque éste no exista ni siquiera en la tabla. Sólo es necesario la existencia de un campo en la base de datos de nombre MoreData, que lógicamente deberá de ser tipo BLOB o MEMO.

Para acceder o establecer el valor de éste campo virtual tan sólo que hay que usar la sintaxis: oDataset:!Campo. Es decir, hay que incluir el carácter ‘!’ del que hemos hablado anteriormente. ¡Eso es todo! Internamente toda la información se guarda con formato JSON dentro de ese campo y por lo tanto se pueden realizar búsquedas en el campo ‘MoreData’ e incluso editarlo desde su editor de bases de datos preferido. Nuestro editor de tablas SQLite ya soporte el tipo de campo JSON, por lo que en dicho caso, lo preferible es definir el campo con ese tipo.

Las posibilidades de este nuevo sistema son múltiples. A modo de ejemplo:

  • Guardar en una tabla de clientes las direcciones completas de todas sus delegaciones (no es necesario crear una tabla clientes-delegaciones)
  • Guardar en una tabla de artículos una relación completa de todas las ofertas que tiene por periodo o cantidad
  • Evitar tener que modificar una tabla por la necesidad de incluir un nuevo campo

Una de las grandes ventajas de este nuevo sistema, es que puede guardar en la tabla cualquier tipo de dato, incluso matrices y objetos Hash.

No obstante, existen limitaciones, que son insalvables, como son:

  • Los campos virtuales no pueden ser asignados a la propiedad ‘oField‘ de un datacontrol
  • No se pueden realizar búsquedas directas sobre campos virtuales. Deberá buscar internamente en el campo ‘MoreData’

Cancún Junio 2015

Estimados usuarios de Xailer,

Más o menos cada dos años , tengo el placer de poder reunirme en la ciudad de Cancún con una importante comunidad de usuarios de Xailer, que mayoritariamente provienen del propio Mexico, pero también acuden normalmente colegas de Brasil, República Dominicana y Venezuela, entre otros.  Espero que está vez podamos contar con más colegas de distintos países. A los españoles es difícil de mover ya que hay que cruzar el charco, pero es que además tiene más fácil acceder al equipo de Xailer ya que de forma periódica se organizan reuniones como lo que acaba de producirse en Madrid hace muy poco tiempo.

En cada reunión intento presentar algo especial de Xailer que entiendo puede interesar a los programadores de Xailer que ya tienen cierta experiencia. Esta vez quiero centrarme básicamente en la migración a sistemas SQL, desarrollo de aplicaciones en la nube e integración con herramientas CRM. No obstante, aprovecharemos la ocasión para ver todas las mejoras que incluye Xailer 4. Intentaremos evitar profundizar demasiado en las características del lenguaje SQL ya que entendemos que es algo que posiblemente muchos usuarios ya conocerán, pero si mostraremos la potente herramienta que incluye Xailer 4 para diseñar visualmente las consultas SQL.

Voy a intentar exponer a continuación las directrices del temario que seguiremos en el curso:

  • Novedades de Xailer 4
  • Introducción a Sqlite, MariaDB y MySQL
  • Instalación de servidores locales XAMP (Apache, MySQL, PHP)
  • Uso de servidores externos proporcionados por ISPs. Ventajas e inconvenientes
  • Migración a SQL desde DBF: diferencias entre ambos sistemas, haciendo hincapié en bloqueos, transacciones, índices, grandes tablas, campos BLOB, tipos de datos y uso de claves primarias
  • Conversión de tablas DBF a SQL: Consideraciones, herramientas de Xailer 4
  • Cuando usar SQLite y cuando usar MariaDB/MySql
  • Datasets en memoria: Ventajas e inconvenientes
  • TWebdatasource: ventajas e inconvenientes. Cuando usarlo
  • Uso de modelo vista-controlador
  • Base de datos en la nube: ventajas e inconvenientes
  • Bases de datos locales: sincronización y  propagación hacia servidores en la nube
  • Introducción a CRM Prestashop
  • Protocolo REST: introducción y uso básico
  • Datasource para Prestashop
  • Acceso directo al protocolo REST de Prestashop
  • Recepción de eventos de Prestashop con programación multi-hilo

A todos los asistentes se les entregará una licencia del nuevo datasource para Prestashop que se pondrá en venta inmediatamente después del evento a un precio de 150 euros.

Y eso es todo. Espero que el curso sea de vuestro interés. Si tenéis alguna sugerencia me encantará leerla. Os ruego utilicéis los comentarios para ello.

¡Hasta pronto!

 

¡Migrar a SQL ya!

Estimados usuarios de Xailer,

Espero que con el título de este artículo haya conseguido llamaros la atención 😉 El motivo del mismo es debido a que a pesar del gran esfuerzo que hemos realizado para dar soporte a otros motores de bases de datos mucho más potentes que nuestros obsoletos DBF, seguimos observando que la mayoría de vosotros seguís anclados en los DBFs.  A pesar de que alguno le parezca una burrada lo que voy a decir, yo personalmente comparo el sistema de archivos DBF con la máquina escribir. Funcionar, funcionan, pero donde esté el más simple tratamiento de textos que se quite cualquier máquina de escribir. Las máquinas de escribir son máquinas del pasado y están bien en una almoneda, pero poco más.  Me temo que los DBFs ni siquiera tienen sitio en alguna parte.  Soy un enamorado del lenguaje xBase, pero me temo que su sistema nativo de archivos está muy superado. Sigue leyendo