- Lectura de datos durante la inicialización de la consulta
- Agregar registros y utilizar la constante hModifyFile
- Uso de la constante hQueryWithoutCorrection
- Pasar parámetros a la consulta
- Liberar recursos de la consulta
- Optimizar consultas en archivos de datos HFSQL
- Ejecución de una consulta y control Tabla basado en esta consulta
- Ejecución de una consulta y de una reporte basada en esta consulta
- Consultas SQL (
No disponible con este tipo de conexión
Declara una consulta al motor HFSQL y ejecuta la consulta. Esta consulta puede corresponder a: - una consulta creada en el editor de consultas.
- una variable de tipo SQL Query.
Se podrá navegar por el resultado de la consulta. Si ya existe una consulta con el mismo nombre, se reemplaza la consulta. El resultado se vuelve a calcular. Atención: Para fijar la posición en la primera Record del resultado de la consulta, utilice <Fuente>.ReadFirst, por ejemplo. Para liberar los recursos de una consulta creada en el editor de consultas, utilice: Observación: No se podrá iniciar una consulta si: // Initialize the "QRY_Customer_84" query QRY_Customer_84.ExecuteQuery()
// Query on Oracle file: Customer uses the "MyConnection" connection // QRY_MyQuery = "Select * from customers where CustomerID =?" QRY_MyQuery.ExecuteQuery(hQueryDefault, 5)
Sintaxis
Ejecución de una consulta (sin conexión) Ocultar los detalles
<Result> = <Source>.ExecuteQuery([<Mode> [, <Parameter 1> [, <Parameter N>]]])
<Result>: karaoke - True si se inició la consulta,
- False en caso contrario. La función HErrorInfo permite obtener más detalles sobre el problema.
<Source>: Tipo de fuente Nombre de la consulta a ejecutar: - Nombre lógico de la consulta que se va a inicializar.
Si ya se ha declarado una consulta con el mismo nombre, se reemplaza por la nueva consulta. - Nombre de una variable de tipo consulta SQL.
Este tipo de variable no está disponible.
<Mode>: Constante opcional de tipo Integer Opción para iniciar la consulta: | | hCheckDuplicates | Activa la gestión de duplicados durante la ejecución de la consulta. Si se detecta un error de duplicados, no se ejecuta la consulta. Esta constante fuerza la constante hWithTransaction . Se inicia una transacción, los registros se bloquean durante la ejecución de la consulta y se desbloquean al final de su ejecución, independientemente del resultado de la consulta. Si la aplicación se detiene durante la ejecución de la consulta (corte de energía, por ejemplo), la transacción se cancelará la próxima vez que se utilicen los archivos de datos de la consulta. Observación: La ejecución de la consulta puede ralentizarse.
| hCheckIntegrity | Activa la gestión de integridad durante la ejecución de la consulta. Si se detecta un error de integridad, no se ejecuta la consulta. Esta constante fuerza la constante hWithTransaction . Se inicia una transacción, los registros se bloquean durante la ejecución de la consulta y se desbloquean al final de su ejecución, independientemente del resultado de la consulta. Si la aplicación se detiene durante la ejecución de la consulta (corte de energía, por ejemplo), la transacción se cancelará la próxima vez que se utilicen los archivos de datos de la consulta. Observación: La ejecución de la consulta puede ralentizarse.
| hModifyFile (se puede combinar con otras constantes) | En archivos de datos HFSQL: Cuando se modifica el resultado de la consulta (<Fuente>.Add, <Fuente>.Write, <Fuente>.Modify, <Fuente>.Cross y <Fuente>.Delete), estos cambios se propagan a los archivos de datos utilizados en la consulta. Si no se especifica esta opción, solo se modifica el resultado de la consulta. Para más detalles sobre la modificación del resultado de una consulta, véase Modificar el contenido de una consulta. En archivos de datos con un formato distinto a HFSQL, no es necesario utilizar la función hModifyFile: los archivos de datos utilizados en la consulta se modifican automáticamente al modificar el resultado de la consulta.
| hNoHourglass | Al leer el resultado de la consulta, esta operación de lectura puede bloquearse y aparece un reloj de arena de Default. Esta constante se utiliza para que no se muestre el reloj de arena.
| hQueryBreakable | El inicio de la consulta se puede interrumpir con la tecla ESC.
| hQueryDefault (valor predeterminado) | La consulta se inicia sin interrupción. | hQueryWithoutCorrection | | hQueryWithoutHFCorrection | | hWithFilter (se puede combinar con otras constantes) | Si se especifica este parámetro:- el resultado de la consulta corresponde a una selección de registros de tipo filtro si el motor HFSQL lo permite. De lo contrario, el resultado de la consulta corresponde a una vista HFSQL
- las siguientes operaciones no están disponibles: buscar en el resultado de la consulta, consulta a partir de una consulta, vista a partir de una consulta, consulta a partir de una vista.
- los elementos de navegación especificados al recorrer el resultado se ignoran.
- la lupa no está disponible en las tablas relacionadas con una consulta.
- no se puede utilizar la función <Fuente>.NbRec en las consultas.
Atención: si se especifica esta opción, la constante hModifyFile se utiliza automáticamente. Si no se especifica este parámetro (predeterminado):- el resultado de la consulta corresponde a una vista HFSQL
- se pueden realizar las siguientes operaciones en las consultas: buscar en el resultado de la consulta, consulta a partir de una consulta, vista a partir de una consulta, consulta a partir de una vista.
- se tienen en cuenta los elementos de navegación especificados al recorrer el resultado.
- la lupa está disponible en las mesas relacionado para una consulta.
- se puede utilizar la función <Fuente>.NbRec en las consultas.
| hWithTransaction | La consulta se ejecuta en una transacción. Se inicia una transacción, los registros se bloquean durante la ejecución de la consulta y se desbloquean al final de su ejecución, independientemente del resultado de la consulta. Si la consulta no puede terminar correctamente (registros bloqueados, fallo de alimentación, etc.), la transacción se cancela y los archivos de datos se restauran a su estado anterior (antes de la ejecución de la consulta). Observación: La ejecución de la consulta puede ralentizarse.
| hYield | En las consultas UPDATE y DELETE, que se utilizan en un gran número de registros y suelen tomar mucho tiempo, esta constante devuelve el control a las demás aplicaciones que utilizan los archivos de datos. En este caso:- la consulta se ejecuta un poco más lento,
- el servidor de archivos no se satura,
- los demás usuarios de los archivos de datos pueden continuar accediendo a ellos sin ningún tipo de bloqueo.
|
<Parameter 1>: Tipo de parámetro Valores de los parámetros de la consulta en el orden que se definió al crear la consulta (visible en el editor de consultas). Cada parámetro debe corresponder al tipo esperado. Los parámetros están separados por una coma. Observaciones:- El paso de parámetros en la función
- Para especificar los parámetros de la consulta, se debe especificar el parámetro <Modo>.
- El valor de cada parámetro se puede especificar o no.
- Puede especificar una lista de valores o una lista de parámetros.
Para obtener más información, consulte Pasar parámetros.
Este parámetro no está disponible si <Nombre de consulta> corresponde a una variable de tipo SQL Query. <Parameter N>: Tipo de parámetro Valores de los parámetros de la consulta en el orden que se definió al crear la consulta (visible en el editor de consultas). Cada parámetro debe corresponder al tipo esperado. Los parámetros están separados por una coma. Observaciones:- El paso de parámetros en la función
- Para especificar los parámetros de la consulta, se debe especificar el parámetro <Modo>.
- El valor de cada parámetro se puede especificar o no.
- Puede especificar una lista de valores o una lista de parámetros.
Para obtener más información, consulte Pasar parámetros.
Este parámetro no está disponible si <Nombre de consulta> corresponde a una variable de tipo SQL Query. Observaciones Lectura de datos durante la inicialización de la consulta Dependiendo de la consulta (orden, grupos, etc.), los datos se pueden leer o no al iniciar la consulta. Observación: La propiedad ExecutionCompleted permite saber si se ha completado la consulta (y, por lo tanto, si se pueden realizar lecturas sin bloqueos).. Pasar parámetros a la consulta Se pueden utilizar varios métodos para pasar parámetros a una consulta: - Pasando los parámetros con la siguiente notación: <Nombre de la consulta>.<Nombre del parámetro> = <Valor> (recomendado)
- Pasar parámetros directamente a la función HExecuteQuery (se conserva por motivos de compatibilidad, compatible con PHP).
Veamos los dos siguientes métodos: - Pasar los parámetros con la siguiente notación: <Nombre de la consulta>.<Nombre del parámetro> = <Valor> (recomendado)
Para pasar parámetros a una consulta con parámetros antes de ejecutarla, también puede utilizar la siguiente sintaxis:
<Query name>.<Name of parameter 1> = xxx <Query name>.<Name of parameter 2> = xxx <Query name>.<Name of parameter 3> = xxx <QueryName>.ExecuteQuery() IF ErrorOccurred = True THEN ... Observaciones:- Esta sintaxis hace que sea más fácil pasar parámetros. Si los parámetros se pasan directamente a la función , se debe respetar el orden de los parámetros.
- La estructura de los parámetros de consulta se restablece cada vez que se ejecuta la consulta.
- Este método no está disponible.
- Pasar parámetros directamente en la función HExecuteQuery (se conserva por motivos de compatibilidad)
En este caso, se deben especificar los valores de los parámetros de la consulta en el orden que se definió al crear la consulta (visible en el editor de consultas). Cada parámetro debe corresponder al tipo esperado. Los parámetros están separados por una coma. El valor de cada parámetro se puede especificar o no. Se puede ignorar un parámetro utilizando el valor Null. En este caso, se ignorarán las condiciones de selección que utilizan este parámetro.
Puede especificar una lista de valores o una lista de parámetros. Si la condición de selección para uno de los parámetros de la consulta es "está en la lista" o "no está en la lista", se debe especificar una lista de valores o parámetros. Para especificar una lista de valores o una lista de parámetros, los diferentes valores o parámetros deben estar separados por un punto y coma (';'), un retorno de carro ('CR') o una tabulación ('TAB'). Por ejemplo:
QueryName.ExecuteQuery(hQueryDefault, "34000;34200;34400")
oQueryName.ExecuteQuery(hQueryDefault, "34000 "+ CR + "34200" + CR + "34400")
oQueryName.ExecuteQuery(hQueryDefault, "34000" + TAB + "34200" + TAB + "34400")
Observación: Si uno de los valores o parámetros contiene un punto y coma, un retorno de carro o una tabulación, este valor o parámetro debe ir entre comillas. Por ejemplo:
QueryName.ExecuteQuery(hQueryDefault, "'A;A';'A;B';'A;C'")
Observación: No es necesario especificar todos los parámetros de consulta. Las condiciones de la consulta que utilizan parámetros no especificados se ignorarán.. Ejemplo: Consideremos la consulta "Cliente_Apellido_Nombre" cuyo código SQL es el siguiente:
SELECT * FROM CUSTOMER WHERE LASTNAME = {Param1} AND FIRSTNAME = {Param2} - Si se especifican los 2 parámetros:
QRY_Customers_LastName_FirstName.ExecuteQuery(hQueryDefault, "Smith", "John")
ejecutará la consultaSELECT * FROM CUSTOMER WHERE LASTNAME = 'Smith' AND FIRSTNAME = 'John' - Si solo se especifica el apellido:
QRY_Customers_LastName_FirstName.ExecuteQuery(hQueryDefault, "Smith")
ejecutará la consultaSELECT * FROM CUSTOMER WHERE LASTNAME= 'Smith' - Si solo se especifica el nombre:
sLastName is Variant = Null // Use the mandatory variant for the Null variable (not filled) QRY_Customers_LastName_FirstName.ExecuteQuery(hQueryDefault, sName, "John") OR QRY_Customers_LastName_FirstName.ExecuteQuery(hQueryDefault, Null, "John")
ejecutará la consultaSELECT * FROM CUSTOMER WHERE FIRSTNAME= 'John'
Liberar recursos de la consulta Para liberar recursos de una consulta, utilice: Si no se realiza esta operación, la consulta siempre se encuentra en el contexto HFSQL actual y se puede acceder a ella desde cualquier proceso. Observaciones: - Los recursos de la consulta no se liberan automáticamente cuando se cierra la ventana que ejecutó la consulta (mediante ).
- La consulta SQL Variable se libera automáticamente al final del alcance de Variable. Para obtener más información, consulte Consultas SQL en WLanguage.
Esta página también está disponible para…
|
|
|