“Directivas FireDAC” o “Pre-Procesamiento de comandos”
Una sola consulta SQL, muchos motores… sabemos que FireDAC soporta múltiples motores, sin embargo y a pesar de que SQL sea un estándar, cada uno de los ya mencionados posee sendas particularidades… incluso en sus consultas, ¿Cómo afrontar esto?
¿Cómo ejecutarías una sentencia SQL en varios motores usando un mismo TFDQuery, cuando además esa sentencia tiene particularidades de utilización en cada motor… precisamente en lo que necesitamos hacer para obtener el resultado esperado?
Por ejemplo: La clausula Limit funciona muy bien en SQLite, MySQL y PostGreSQL… sin embargo en Interbase y FireBird se llama First o Row (Aunque row no se comporta igual), en SQLServer se llama TOP y en Oracle hay que jugar con una especie de “campo oculto” llamado rownum… la siguiente tabla ilustra lo dicho en este párrafo, para que se vea la magnitud de la diferencia en el ejemplo expuesto:
Motor de Base de datos | Sentencia para Limitar el Número de Filas | ||
SQLite, MySQL, PostGreSQL… |
|
||
Interbase, Firebird |
|
||
SQL Server |
|
||
Oracle |
|
Y eso que este es sólo uno de tantos ejemplos que nos podemos encontrar.
¿Con tantas particularidades en los distintos motores de bases de datos, por más que FireDAC pueda conectarse a cuanto motor hay en el mercado cómo tendrías todo esto en cuenta en un solo TFDQuery?… seguramente (como a mí en algún momento) se te ocurra crear distintos TFDQuery en tiempo de ejecución con la sentencia correcta para cada motor y sí, es algo valido, incluso hasta organizado… aunque si necesitas mostrar esto en una grid o cualquier otro control, entonces ya la cosa se nos va alargando un poco y se va volviendo un poco compleja de mantener… que no es imposible y si eres organizado pues hasta te quedará super genial… pero las Directivas FireDAC, Sustitución condicional o pre-procesamiento de comandos (como decidas llamarle) son una alternativa que te invito a tenerla en cuenta, analiza sus pro, sus contra y cómo podrías mejorar su mantenimiento adecuándolo a tu necesidad y paradigma… quizá sea lo que necesitas, seguro que te ayudará a organizarte aún mejor.
El siguiente es el vídeo que muestra su funcionamiento, espero les sea de utilidad.


Comments
-
Please login first in order for you to submit comments