Diagrama de la función Sql()

Quiero compartirles el Diagrama del Diseño de la Función .SQL(), donde podrán entender el porque no solo es usar SQLEXEC y enviar, existen pequeños detalles muy significativos que la mayoría desconoce, porque venimos de usar tablas DBF y nos estamos iniciando en servidores de bases de datos.

Por citar unos ejemplos:

Para mejorar FoxyDb revise foros, documentaciones, comentarios, referente al uso de las transacciones de diferentes servidores de datos, como iniciarlas, como finalizarlas, luego como hacer que fuera fácil de implementar y que fuera lo mas practico posible, diseñar el diagrama que anexo al final no fue sencillo, me tomo horas de análisis y luego horas de desarrollo, que valieron la pena.

FoxyDb permite manejar dos tipos de transacciones bien coordinadas:

  1. Transacciones de solo lectura para comandos SQL SELECT, es decir por cada comando SELECT que se envié al servidor se iniciara una transacción de solo lectura y se finalizara con un Commit, como debe ser y se puede solicitar desconectar del servidor, este tipo de transacción mejora el rendimiento del servidor.
  2. Transacción de lectura y Escritura para comandos SQL INSERT, UPDATE, DELETE y una vez activada esta transacción todos los SQL SELECT que se hagan irán dentro de ella y no se finalizara hasta que se envíen a guardar o cancelar los cambios, es decir FoxyDb cuanta con una propiedad para indicarle a sus funciones que se ha activado una transacción de Lectura y Escritura y que solo las funciones .Save() o .Undo() podrán finalizar la transacción, a demás de que no se podrá desconectar del servidor hasta que se finalice este tipo de transacción.

Otro punto importante que desarrolle en FoxyDB es el minimizar el tiempo en que una transacción de Lectura y Escritura tardara, si toman en cuenta las recomendaciones que posteriormente verán en las funciones: .Update(), Code(), Id(), Save() y Undo() podrán mejorar este punto notablemente. Un tip es que se deben enviar a guardar ya cuando el usuario no deba intervenir en cambiar algún dato y otro tip si hubo un error primero finalizar la transacción y luego notificar al usuario, porque me paso que el mensaje estaba en pantalla notificando el error y la transacción colgada en el servidor esperando que el usuario diera aceptar para finalizarla y si se fue a comer ya sabrán.

En lo personal ya supere algunos malos hábitos (no todos porque se aprende todos los dias) de usar un servidor de base de datos, pero luego veo en los foros la mala aplicación o mala interpretación de algunos compañeros respecto a los beneficios que nos brinda el servidor y por querer imitar la mala costumbre que traemos de los DBF desaprovechamos muchas funciones del servidor de base de datos.

En conclusión hay mucho que estudiar para mejorar y gracias a las contribuciones de muchas personas, en lo personal me fue posible diseñar FoxyDB que tiene madera de donde cortar para mejorarla aun mas, incluso escribiendo la documentación eh detectado algunos pequeños desajustes que ya estoy corrigiendo y sacar una versión con estas mejoras, a demás de los errores que me reporto Herman y le agradezco mucho.

Diagrama de la función .Sql()

saludos
Antonio Meza