SQL Server 2008
Descripción General
mvSQL es App Builder el dialecto propio de SQL de SQL. Permite a los usuarios aprender y utilizar un único conjunto de sintaxis y funciones, mientras App Builder traduce esa sintaxis a expresiones apropiadas del proveedor. mvSQL se puede utilizar para consultar bases de datos relacionales, almacenamiento, REST, sistemas de archivos o cualquier otro tipo de proveedor de datos. App Builder apoya.
Versiones de Mvsql
Versiones de mvSQL compatibles con App Builder se enumeran de manera que la versión compatible más antigua aparece primero (versión 1).
Versión 1
La versión heredada más antigua App Builder admite, la versión 1 de mvSQL es incluso más estricta de lo que permitimos antes de refactorizar la gramática y el analizador. La mayoría de los legados App Builder las aplicaciones deberían ejecutarse con esta versión.
Versión 2
La versión 2 de mvSQL mejora la sintaxis de transferencia directa, admite la posibilidad de cerrarla y reanudar expresiones mvSQL regulares, y admite caracteres de escape.
Ejemplo
La versión 1 vería esto (en MS SQL Server) ${
[sintaxis del proveedor] } || 'my example'
como ${
[sintaxis del proveedor] || 'my example' }
Representación [vendor syntax] || 'my example'
.
La versión 2 se analizaría como se suponía que debía ser y se representaría como [vendor syntax] + 'my example'
Tenga en cuenta que la concat es apropiada para el proveedor).
Versión 3
La versión 3 de mvSQL requiere que los prefijos de tabla sean correctos. Hasta esta versión, si el prefijo de tabla era incorrecto, App Builder podríamos inferirlo comprobando las otras columnas, lo que permitiría prefijos de tabla incorrectos.
Ejemplo
En versiones anteriores de mvSQL, el uso de un alias de tabla que no existe, o incluso uno que sí existe pero que no tiene la columna a la que se hace referencia, funcionaba siempre que el nombre de esa columna solo apareciera en una de las fuentes. Este escenario presenta un problema cuando ese mismo nombre de columna se agrega a otra fuente y la regla de negocios deja de funcionar.
Versión 4
En la versión 4 de mvSQL, las funciones de tiempo de ejecución generan un tipo adecuado, en lugar de ser siempre una cadena, y los valores nulos no se fusionan en una cadena vacía.
Ejemplo
Shared(ColumnName, numeric)
- Antes de la versión 4, App Builder¿saldría cualquiera de las dos?
'0'
Si no se proporcionó la columna, o'1'
si lo fuera (tenga en cuenta que se representa como una cadena, asumiendo que el valor compartido aquí es1
por supuesto) - A partir de la versión 4, App Builder ahora produce
null
si no se proporcionó, y1
(sin las comillas), también parametrizamos si el proveedor lo admite (@p0
), ya que esto puede aprovechar un mejor rendimiento del proveedor. - Esto también significa que es más fácil fusionar el valor; antes, si quería cambiar el valor si no se proporcionaba, necesitaba algo como
IIF(Shared(ColumnName) = '', -1, Shared(ColumnName, numeric))
, ahora puedes usarISNULL(Shared(ColumnName, numeric), -1)
- Las nuevas reglas se crean utilizando la versión más alta disponible (versión 4), pero para evitar romper las reglas antiguas, las dejamos como estaban. Si se realizan cambios en una regla, esta no se verá afectada (principalmente las reglas sin funciones de tiempo de ejecución). App Builder actualizará automáticamente la versión de mvSQL.
Versión 5
En la versión 5, mvSQL trata cualquier transferencia directa como susceptible de GRUPO cuando es parte de una consultar agregada.
Para indicar que una expresión es un agregado, llámela con el Expression()
función.
Ejemplo
Expression(${Count(1)})