Uso del lenguaje de consulta estructurado en Delphi

SQL (Structured Query Language) es un lenguaje estandarizado para definir y manipular datos en una base de datos relacional. De acuerdo con el modelo relacional de datos, la base de datos se percibe como un conjunto de tablas, las relaciones son representado por valores en tablas, y los datos se recuperan especificando una tabla de resultados que se puede derivar de una o más mesas base. Las consultas toman la forma de un lenguaje de comando que le permite seleccionar, insertar, actualizar, buscar fuera de la ubicación de los datos, y así sucesivamente.

En Delphi: TQuery

Si va a utilizar SQL en sus aplicaciones, se familiarizará con el TQuery componente. Delphi permite que sus aplicaciones usen la sintaxis SQL directamente a través del componente TQuery para acceder a los datos de las tablas Paradox y dBase (usando SQL local - subconjunto de ANSI SQL estándar), bases de datos en el servidor local InterBase y bases de datos en bases de datos remotas servidores
Delphi también admite consultas heterogéneas contra más de un servidor o tipo de tabla (por ejemplo, datos de una tabla Oracle y una tabla Paradox) .TQuery tiene una propiedad llamada

instagram viewer
SQL, que se usa para almacenar la instrucción SQL.

TQuery encapsula una o más instrucciones SQL, las ejecuta y proporciona métodos por los cuales podemos manipular los resultados. Las consultas se pueden dividir en dos categorías: aquellas que producen conjuntos de resultados (como un SELECCIONE declaración), y aquellos que no lo hacen (como un ACTUALIZARo INSERTAR declaración). Usa TQuery. Abrir para ejecutar una consulta que produce un conjunto de resultados; usa TQuery. ExecSQL para ejecutar consultas que no producen conjuntos de resultados.

Las declaraciones SQL pueden ser estático o dinámica, es decir, se pueden configurar en tiempo de diseño o incluir parámetros (TQuery. Params) que varían en el tiempo de ejecución. El uso de consultas parametrizadas es muy flexible porque puede cambiar la vista y el acceso de un usuario a los datos sobre la marcha en tiempo de ejecución.

Todas las instrucciones SQL ejecutables deben estar preparadas antes de que puedan ejecutarse. El resultado de la preparación es la forma ejecutable u operativa de la declaración. El método de preparación de una declaración SQL y la persistencia de su forma operativa distingue el SQL estático del SQL dinámico. En tiempo de diseño, una consulta se prepara y ejecuta automáticamente cuando configura el consulta propiedad activa del componente a True. En tiempo de ejecución, una consulta se prepara con una llamada a Preparar y se ejecuta cuando la aplicación llama a los métodos Open o ExecSQL del componente.

Un TQuery puede devolver dos tipos de conjuntos de resultados: "En Vivo"Al igual que con el componente TTable (los usuarios pueden editar datos con controles de datos, y cuando se produce una llamada para publicar los cambios se envían a la base de datos)".solo lectura"solo para fines de visualización. Para solicitar un conjunto de resultados en vivo, establezca la propiedad RequestLive de un componente de consulta en True y tenga en cuenta que la instrucción SQL debe cumplir algunos requisitos específicos (sin ORDER BY, SUM, AVG, etc.)

Una consulta se comporta de muchas maneras como un filtro de tabla, y de alguna manera, una consulta es aún más poderosa que un filtro porque le permite acceder a:

  • más de una tabla a la vez ("unirse" en SQL)
  • un subconjunto especificado de filas y columnas de sus tablas subyacentes, en lugar de devolverlas todas siempre

Ejemplo simple

Ahora veamos algo de SQL en acción. Aunque podríamos usar el Asistente para formularios de base de datos para crear algunos ejemplos de SQL para este ejemplo, lo haremos manualmente, paso a paso:

1. Coloque un TQuery, TDataSource, TDBGrid, TEdit y un componente TButton en el formulario principal.
2. Establezca la propiedad DataSet del componente TDataSource en Query1.
3. Establezca la propiedad DataSource del componente TDBGrid en DataSource1.
4. Establezca la propiedad DatabaseName del componente TQuery en DBDEMOS.
5. Haga doble clic en la propiedad SQL de un TQuery para asignarle la instrucción SQL.
6. Para hacer que la cuadrícula muestre datos en tiempo de diseño, cambie la propiedad Activa del componente TQuery a Verdadero.
La cuadrícula muestra datos de la tabla Employee.db en tres columnas (Nombre, Apellido, Salario) incluso si Employee.db tiene 7 campos, y el conjunto de resultados está restringido a aquellos registros donde comienza el Nombre con R'.

7. Ahora asigne el siguiente código al evento OnClick del Button1.

procedimiento TForm1.Button1Click (Remitente: TObject); empezar
Consulta1.Close;{cerrar la consulta}// asignar nueva expresión SQL
Query1.SQL.Clear; Query1.SQL.Add ('Seleccione EmpNo, FirstName, LastName'); Query1.SQL.Add ('FROM Employee.db'); Query1.SQL.Add ('WHERE Salario' '+ Editar1.Texto); Query1.RequestLive: = verdadero; Query1.Open; {consulta abierta + datos de visualización}final;

8. Ejecute su aplicación Cuando hace clic en el Botón (siempre que Editar 1 tenga un valor de moneda válido), la cuadrícula mostrará el EmpNo, FirstName y LastName para todos los registros donde Salario es mayor que la moneda especificada valor.

En este ejemplo, creamos una simple instrucción SQL estática con un conjunto de resultados en vivo (no hemos cambiado ninguno de los registros mostrados) solo para mostrar.

instagram story viewer