4D v16Implementaciones del motor SQL de 4D |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16
Implementaciones del motor SQL de 4D
Implementaciones del motor SQL de 4D
Básicamente, el motor SQL de 4D es compatible con SQL-92. Esto significa que para una descripción detallada de los comandos, funciones, operadores y sintaxis a utilizar, puede referirse a la documentación del SQL-92. Múltiples recursos sobre este tema están disponibles en Internet. Puesto que el motor SQL de 4D se ha integrado en el corazón de la base de datos de 4D, todas las limitaciones relativas al número máximo de tablas, columnas (campos) y registros por base, así como las reglas para dar nombres a las tablas y columnas, son las mismas a las del motor estándar de 4D. Se enumeran a continuación.
La siguiente tabla indica los tipos de datos soportados en el SQL de 4D así como su tipo correspondiente en 4D:
La conversión entre los tipos de datos numéricos es automática.
Los valores NULL se implementan en el lenguaje SQL de 4D, así como en el motor de base de datos de 4D. Sin embargo, no son soportados en el lenguaje 4D. Sin embargo, es posible leer y escribir valores NULL en un campo 4D utilizando los comandos Is field value Null y SET FIELD VALUE NULL. Por razones de compatibilidad en 4D, los valores NULL almacenados en las tablas de la base de datos 4D se convierten automáticamente en valores por defecto cuando se manipulan vía el lenguaje 4D. Por ejemplo, en el caso de la siguiente instrucción: mivarAlf:=[mitabla]MiCampoAlfa ... si el campo MiCampoAlfa contiene un valor NULL, la variable mivarAlfa contendrá "" (cadena vacía).
Por otra parte, este mecanismo, en principio, no se aplica a los tratamientos efectuados a nivel del motor de la base de datos 4D, tales como las consultas. De hecho, la búsqueda de un valor "vacío" (por ejemplo mivalor = 0) no encuentra registros que almacenen el valor NULL y viceversa. Cuando los dos tipos de valores (valores por defecto y NULL) están presentes en los registros para un mismo campo, algunos procesos pueden alterarse o necesitar código adicional. Para evitar estos inconvenientes, una opción permite estandarizar todos los procedimientos el lenguaje 4D: Mapear valores NULOS a valores vacíos. Esta opción, que se encuentra en la ventana Inspector de campos del editor de estructura, permite extender el principio de utilizar los valores por defecto en todos los tratamientos. Los campos que contengan valores NULL se consideran sistemáticamente que contienen valores por defecto. Esta opción está seleccionada por defecto. La propiedad Mapear valores NULOS a valores vacíos se tiene en cuenta a un nivel muy bajo del motor de la base de datos. Actúa más en particular en el comando Is field value Null. La propiedad de campo Rechazar valor NULO de entrada permite evitar el almacenamiento de valores NULL:
Nota: en 4D, los campos también puede tener el atributo "Obligatorio". Los dos conceptos son similares, pero su alcance es distinto: el atributo "obligatorio" es un control de entrada, mientras que el atributo "Rechazar valor NULO de entrada" trabaja a nivel del motor de la base de datos. El servidor SQL integrado de 4D soporta las constantes fecha y hora de acuerdo al API ODBC. Esta es la sintaxis para las secuencias de constantes fecha y hora ODBC: {constant_type 'value'}
Note: fff indica milisegundos. Por ejemplo, puede utilizar las siguientes constantes: { d '2013-10-02' } El analizador SQL de fecha rechaza toda expresión fecha que especifique "0" como el día o el mes. Las expresiones como {d'0000-00-00'} o CAST('0000-00-00' AS TIMESTAMP) generan un error. Para realizar en SQL búsquedas en fechas vacías (no confundir con fechas nulas), debe usar una expresión 4D intermedia. Por ejemplo: C_LONGINT($count) Una propiedad de seguridad se ha añadido para los métodos proyecto 4D: Disponible vía SQL: Cuando está seleccionada, esta opción permite la ejecución del método de proyecto por el motor SQL de 4D. No está seleccionada por defecto, lo que significa que los métodos proyecto 4D están protegidos y no pueden ser llamados por el motor SQL de 4D a menos que haya sido expresamente autorizado al seleccionar esta opción.Esta propiedad se aplica a todas las consultas SQL internas y externas, si se ejecuta vía el driver ODBC, el código SQL insertado entre las etiquetas Begin SQL/End SQL o el comando QUERY BY SQL. Notas:
4D implementa el concepto de esquemas. Un esquema es un objeto virtual que contiene las tablas de la base. En el SQL, el propósito de los esquemas es asignar derechos de acceso específicos a los diferentes conjuntos de objetos de la base. Los esquemas dividen la base en entidades independientes que en conjunto forman toda la base. En otras palabras, una tabla siempre pertenece a un sólo esquema.
Nota: el control de acceso vía los esquemas sólo se aplica a las conexiones desde el exterior. El código SQL ejecutado en 4D vía las etiquetas Begin SQL/End SQL, SQL EXECUTE, QUERY BY SQL, siempre tiene acceso total. La arquitectura multi-bases se implementa a nivel del servidor SQL de 4D. Desde 4D es posible:
En el lenguaje SQL, una llave primaria permite identificar en una tabla la(s) columna(s) (campos) responsables de designar de manera única los registros (líneas). La definición de una llave primaria es particularmente necesaria para la función de replicación de los registros de una tabla de 4D (vér la sección Replicación vía SQL) y para la historialización de las tablas 4D a partir de la v14. 4D le permite administrar la llave primaria de una tabla de varias maneras:
Notas:
Puede definir una llave primaria durante la creación de una tabla (vía el comando CREATE TABLE) o al agregar o modificar una columna (vía el comando ALTER TABLE). La llave primaria se define utilizando la cláusula PRIMARY KEY seguida por el nombre de la columna o de una lista de columnas. Para obtener más información, consulte la sección definición_llave_primaria. 4D le permite crear y eliminar directamente llaves primarias vía el menú contextual del editor de la estructura. Para mayor información, consulte, Definir o eliminar una llave primaria en el manual de Diseño 4D. El motor SQL integrado de 4D soporta vistas SQL estándar. Una vista es una tabla virtual con datos que pueden provenir de varias tablas de la bases de datos. Una vez que se define una vista, se puede utilizar en un instrucción SELECT como una tabla real.
Ver también
|
PROPIEDADES
Producto: 4D
HISTORIA
ARTICLE USAGE
Manual de SQL ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||