HFSQL
SQL HFSQL soporta el estándar ANSI SQL 92. El SQL soportado por HFSQL también acepta un amplio número de sintaxis espe- cífica y adicional para SQL Server y Oracle, entre otros. HFSQL soporta sub-consultas y consultas anidadas. HFSQL soporta operadores de unión (unión, cartesiano, join, join externo), ope- radores de agregación (cuenta, suma, pro- medio, mínimo, máximo, desviación estándar, varianza), operadores de grupo y ordenación: (agrupar por, poseer, ordenar por). La velocidad del motor SQL se optimizó: Ahora utiliza el índice más discriminante en las consultas. La administración avanzada de memoria caché también mejora el rendimiento. El motor realiza automáticamente la com- pensación por carga. Si un cliente ejecuta un gran número de consultas que requie- ren muchos recursos (CPU, ...), el servidor automáticamente compensa la carga con el fin de no perjudicar a los otros clientes. Simultáneamente con el código SQL, usted se puede beneficiar de la riqueza funcional del WLanguage 5GL. En sus aplicaciones es posible el uso di- recto de funciones WLanguage y llamar a procedimientos almacenados (desarrolla- dos en WLanguage). Al final de este documento encontrará la lista de funciones SQL soportadas por HFSQL, así como otra información para pro- gramación (ayudante de programación). FUNCIONA- LIDADES HFSQL ofrece un amplio número de carac- terísticas. Encontrará la descripción de las principales características en este documento. La ayuda completa en linea de HFSQL está disponible en Internet en doc.windev.com VARIAS BASES DE DATOS SOBRE EL MISMO SERVIDOR HFSQL Classic soporta la presencia de va- rias bases de datos en el mismo servidor. Las bases de datos están aisladas. Para cada base de datos se pueden definir derechos específicos. Esto evita tener que utilizar varios servidores. MODIFICACIÓN AUTOMÁTICA DE DATOS (DSS) ¿Qué desarrollador no se ha quejado de tener que escribir algún truco rápido y sucio para añadir una columna, incremen- tar su tamaño, añadir un índice a una tabla existente o cambiar el tipo de datos en una columna? Escribir estos scripts siempre es complicado porque estos alteran los datos. ¡Con HFSQL todo esto será cosa del pa- sado! HFSQL maneja la evolución del esquema de datos transparentemente gracias a la tecnología DSS (Data Schema Synchronization). ¡Nunca más “trabajos duros”! ¡No más scripts! ¡No más comandos ries- gosos para “Alterar la tabla”! DSS realiza automática- mente: • La comparación y sin- cronización de la estruc- tura de la base de datos y los datos con el es- quema que se obtendrá • La adición, eliminación, o renombrar las colum- nas. • El cambio de tipo, ta- maño. • La adición/eliminación de la llave/índice, adición/eliminación de las restricciones. • La adición/eliminación de los disparado- res y de los procedimientos almacena- dos. DSS puede también iniciarse por línea de comandos o por programación. Esta característica DSS se puede ejecutar en “caliente”, sin desconectar los usuarios, transparentemente, sin interferir con las aplicaciones que se ejecutan. DSS: Actualización automática del esquema de datos (también lla- mada Auto-modificación) INTEGRIDAD: RESTRICCIONES, ELIMINACIONES, ACTUALIZACIÓN EN CASCADA Es fácil definir las restricciones de integri- dad. Las cardinalidades pueden ser configura- das: (0,n); (0,1); (1,n); (3,n); etc... Los enlaces reflexivos están soportados. Ejemplos de restricciones: • Integridad referencial: La integridad referencial previene que un autor sea eliminado, siempre que la base de datos contenga al menos un libro refi- riéndose a ese autor. No puede eliminar una fila en una tabla si esta fila esta unida a otras filas en la tabla. Por ejemplo: no puede eliminar un cliente si existen órdenes unidas a ese cliente. La integridad referencial puede definirse para cada enlace, desde el editor de mo- delo de datos. • Eliminación en cascada: Si se elimina una fila en una tabla, las filas correspondientes en las tablas enlazadas también se eliminarán (estas restricciones pueden ser habilitadas o deshabilitadas para cada relación). HFSQL • www.windev.com 7 SELECT Producto . Nombre AS Nombre , SUM( LíneaOrden . Cantidad ) AS Cantidad_Sum , Cliente . CódigoPostal AS CódigoPostal FROM Producto LEFT OUTER JOIN ( ( Cliente INNER JOIN Pedido ON Cliente . IDCliente = Órdenes . IDCliente ) INNER JOIN LíneaOrden ON Órdenes . IDÓrdenes = LíneaOrden . IDÓrdenes ) ON Producto . Referencia = LíneaOrden . Referencia WHERE Cliente . CódigoPostal LIKE ‘34%’ GROUP BY Producto . Nombre , Cliente . CódigoPostal
Made with FlippingBook
RkJQdWJsaXNoZXIy NDQ0OA==