AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • 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
  • .ExecuteQuery y acceso mediante JDBC
  • 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 (.ExecuteQuery o ejecución de consultas SQL creadas en el editor de consultas)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
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:
PHP
  • El uso de consultas en el acceso PHP/MySQL requiere un servidor MySQL en versión 4.1 o posterior.
  • Las variables de consulta SQL no están disponibles.
AndroidWidget Android Java No se pueden ejecutar consultas con código SQL que contengan funciones de WLanguage.
Ejemplo
// 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.
    PHP Este tipo de variable no está disponible.
<Mode>: Constante opcional de tipo Integer
Opción para iniciar la consulta:
hCheckDuplicatesActiva 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.
HFSQL Client/Server
  • Si no se especifica la constante hCheckDuplicates, se desactiva la gestión de duplicados.
  • Se produce un error si se debe realizar una operación de gestión de duplicados, pero el usuario no tiene derechos para activar/desactivar la gestión de duplicados (<Variable Connection>.ModifyDatabaseRights).
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hCheckIntegrityActiva 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.
HFSQL Client/Server
  • Si no se especifica la constante hCheckIntegrity, se desactiva la gestión de la integridad.
  • Se produce un error si se debe realizar una operación de gestión de la integridad, pero el usuario no tiene derechos para activar/desactivar la gestión de la integridad (<Variable Connection>.ModifyDatabaseRights).
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
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.
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hNoHourglassAl 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.
AndroidWidget Android PHP Esta constante no está disponible.
hQueryBreakableEl inicio de la consulta se puede interrumpir con la tecla ESC.
Universal Windows 10 AppAndroidWidget Android PHP Esta constante no está disponible.
WEBDEV - Código ServidorProcedimientos almacenados Esta constante no se tiene en cuenta.
Java Acceso con JDBC: Esta constante no está disponible.
HFSQL Client/Server La tecla Esc debe pulsarse en el equipo cliente.
hQueryDefault
(valor predeterminado)
La consulta se inicia sin interrupción.
hQueryWithoutCorrection
AndroidWidget Android JavaOLE DBConectores Nativos El motor HFSQL no verifica la consulta. Esta opción debe utilizarse si la consulta contiene comandos específicos de un tipo de conexión (Oracle, SQL Server, etc.).
Atención: si se utiliza esta constante:
hQueryWithoutHFCorrection
HFSQL Classic El motor HFSQL no verifica el formato del archivo de datos (con o sin espacios).
Se debe utilizar si la consulta manipula archivos de datos HFSQL con un formato que se completa con espacios y con un formato que no se completa con espacios.
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.
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hWithTransactionLa 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.
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
JavaPHP Esta constante no está disponible.
hYieldEn 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.
HFSQL Client/ServerOLE DBConectores Nativos Esta constante no se tiene en cuenta.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
PHP Este parámetro solo puede corresponder a la constante hQueryDefault . Si se utiliza otra constante, se genera un error.
AndroidWidget Android Java Android y Java (acceso con JDBC): Este parámetro solo puede corresponder a las constantes hQueryDefault o hQueryWithoutCorrection. Si se utiliza otra constante, se ignorará.
<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 .ExecuteQuery se conserva por motivos de compatibilidad. Se recomienda pasar los parámetros usando la siguiente notación: <Nombre de la consulta>.<Nombre del parámetro> = <Valor>.
  • 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 .ExecuteQuery se conserva por motivos de compatibilidad. Se recomienda pasar los parámetros usando la siguiente notación: <Nombre de la consulta>.<Nombre del parámetro> = <Valor>.
  • 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.
Procedimientos almacenados Esta sintaxis no está disponible en los procedimientos almacenados

Ejecución de una consulta a través de una conexión Ocultar los detalles

<Result> = <Source>.ExecuteQuery([<Connection> [, <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.
    PHP Este tipo de variable no está disponible.
<Connection>: Cadena de caracteres opcional
Nombre de la conexión, definida en el editor de análisis o dinámicamente con HDescribeConnection. La consulta se ejecutará a través de esta conexión.
OLE DBConectores Nativos Si no se especifica este parámetro y si la consulta afecta a ficheros de datos a los que se accede por OLE DB o por un acceso nativo, la consulta se ejecuta a través de la conexión utilizada por el primer fichero de datos encontrado en la consulta. Si se modifica la conexión utilizada por un archivo de datos antes de llamar a la función .ExecuteQuery, se utiliza la nueva conexión.
<Mode>: Constante opcional de tipo Integer
Opción para iniciar la consulta:
hCheckDuplicatesActiva 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.
HFSQL Client/Server
  • Si no se especifica la constante hCheckDuplicates, se desactiva la gestión de duplicados.
  • Se produce un error si se debe realizar una operación de gestión de duplicados, pero el usuario no tiene derechos para activar/desactivar la gestión de duplicados (<Variable Connection>.ModifyDatabaseRights).
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hCheckIntegrityActiva 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.
HFSQL Client/Server
  • Si no se especifica la constante hCheckIntegrity, se desactiva la gestión de la integridad.
  • Se produce un error si se debe realizar una operación de gestión de la integridad, pero el usuario no tiene derechos para activar/desactivar la gestión de la integridad (<Variable Connection>.ModifyDatabaseRights).
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
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.
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hNoHourglassAl 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.
AndroidWidget Android PHP Esta constante no está disponible.
hQueryBreakableEl inicio de la consulta se puede interrumpir con la tecla ESC.
Universal Windows 10 AppAndroidWidget Android PHP Esta constante no está disponible.
WEBDEV - Código ServidorProcedimientos almacenados Esta constante no se tiene en cuenta.
Java Acceso con JDBC: Esta constante no está disponible.
HFSQL Client/Server La tecla Esc debe pulsarse en el equipo cliente.
hQueryDefault
(valor predeterminado)
La consulta se inicia sin interrupción.
hQueryWithoutCorrection
AndroidWidget Android JavaOLE DBConectores Nativos El motor HFSQL no verifica la consulta. Esta opción debe utilizarse si la consulta contiene comandos específicos de un tipo de conexión (Oracle, SQL Server, etc.).
Atención: si se utiliza esta constante:
hQueryWithoutHFCorrection
HFSQL Classic El motor HFSQL no verifica el formato del archivo de datos (con o sin espacios).
Se debe utilizar si la consulta manipula archivos de datos HFSQL con un formato que se completa con espacios y con un formato que no se completa con espacios.
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.
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hWithTransactionLa 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.
AndroidWidget Android Esta constante sólo está disponible para las bases de datos HFSQL. Esta constante no está disponible para las bases de datos SQLite.
JavaPHP Esta constante no está disponible.
hYieldEn 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.
HFSQL Client/ServerOLE DBConectores Nativos Esta constante no se tiene en cuenta.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
PHP Este parámetro solo puede corresponder a la constante hQueryDefault . Si se utiliza otra constante, se genera un error.
AndroidWidget Android Java Android y Java (acceso con JDBC): Este parámetro solo puede corresponder a las constantes hQueryDefault o hQueryWithoutCorrection. Si se utiliza otra constante, se ignorará.
<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 .ExecuteQuery se conserva por motivos de compatibilidad. Se recomienda pasar los parámetros usando la siguiente notación: <Nombre de la consulta>.<Nombre del parámetro> = <Valor>.
  • 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 .ExecuteQuery se conserva por motivos de compatibilidad. Se recomienda pasar los parámetros usando la siguiente notación: <Nombre de la consulta>.<Nombre del parámetro> = <Valor>.
  • 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)..
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadIOS WidgetJavaCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Agregar registros y utilizar la constante hModifyFile

HFSQL Classic Al agregar registros a un archivo de datos mediante una consulta, se tienen en cuenta los registros agregados al archivo de datos independientemente de la condición definida en la consulta. El número de registros de la consulta se modifica sistemáticamente.
Conectores Nativos Al agregar registros a un archivo de datos mediante una consulta, se tiene en cuenta la condición definida en la consulta. El número de registros de la consulta se modifica solo si los registros agregados al archivo de datos corresponden a esta condición.
WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)AjaxOLE DBConectores Nativos

Uso de la constante hQueryWithoutCorrection

Por defecto, WINDEV y WEBDEV interpretan las consultas SQL en OLE DB y ODBC a través del proveedor OLE DB. Para no interpretar la consulta, utilice la constante hQueryWithoutCorrection.
La constante hQueryWithoutCorrection puede utilizarse si se introduce directamente el código SQL de la consulta en el editor de consultas.
Si no se especifica hQueryWithoutCorrection Si se especifica hQueryWithoutCorrection
La conexión associated con los archivos de datos de la consulta se define automáticamente.La conexión a utilizar debe especificarse en la función HExecuteSQLQuery.
Todos los letreros de propiedad de PC SOFT son reemplazados (por ejemplo.: ']=' comienza con) con su equivalente en SQL estándar.No se realiza ningún reemplazo. Se deben utilizar los símbolos de SQL estándar.
Las fechas y horas adoptan el formato utilizado por la base de datos.
Por ejemplo, las fechas están en formato 'AAAAMMDD' en WINDEV y WEBDEV mientras que en Access, las fechas están en formato #AAAADDMM# o #AAAAMMDD# dependiendo del idioma del sistema.
No se define ningún formato. Se debe utilizar el formato reconocido por las bases de datos.
Los flotadores están formateados (el separador decimal puede ser '.' o ',')No se define ningún formato para las comas flotantes.
Dependiendo de la base de datos utilizada, los alias se reemplazan por los nombres completos de los elementos en las cláusulas Where, Order by y Group by
Por ejemplo, el motor JET (Access, dBase, etc.) no acepta ningún alias en la cláusula Where de una consulta
No se realiza ningún reemplazo. Se deben utilizar los nombres completos de los elementos directamente en el código de la consulta, en las cláusulas Where, Order by y Group by.

Pasar parámetros a la consulta

Se pueden utilizar varios métodos para pasar parámetros a una consulta:
  1. Pasando los parámetros con la siguiente notación: <Nombre de la consulta>.<Nombre del parámetro> = <Valor> (recomendado)
  2. Pasar parámetros directamente a la función HExecuteQuery (se conserva por motivos de compatibilidad, compatible con PHP).
Para más detalles sobre las diferentes formas de pasar parámetros a una consulta, sus ventajas y desventajas, véase Métodos a utilizar para pasar parámetros a una consulta.
Veamos los dos siguientes métodos:
  1. 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 .ExecuteQuery, 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.
    • PHP Este método no está disponible.
  2. 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")
    o
    QueryName.ExecuteQuery(hQueryDefault, "34000 "+ CR + "34200" + CR + "34400")
    o
    QueryName.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 consulta
      SELECT * FROM CUSTOMER WHERE LASTNAME = 'Smith' AND FIRSTNAME = 'John'
    • Si solo se especifica el apellido:
      QRY_Customers_LastName_FirstName.ExecuteQuery(hQueryDefault, "Smith")
      ejecutará la consulta
      SELECT * 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 consulta
      SELECT * FROM CUSTOMER WHERE FIRSTNAME= 'John'
Java

.ExecuteQuery y acceso mediante JDBC

Si el nombre físico de un archivo de datos utilizado en la consulta difiere de su nombre lógico en el código SQL, el nombre de los elementos debe ir precedido del nombre físico del archivo de datos y no del nombre lógico. También es posible no ponerle el prefijo a los nombres de los artículos.

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 .ExecuteQuery).
  • 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.
WINDEVWEBDEV - Código ServidorReportes y ConsultasiPhone/iPadIOS WidgetCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5

Optimizar consultas en archivos de datos HFSQL

WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Ejecución de una consulta y control Tabla basado en esta consulta

Para obtener más información, consulte Control Tabla archivo de datos y gestión de consultas.
WINDEVWEBDEV - Código ServidorReportes y ConsultasiPhone/iPadIOS WidgetCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Ejecución de una consulta y de una reporte basada en esta consulta

Al imprimir una reporte basada en una consulta, si la consulta ya se ha ejecutado, no se vuelve a ejecutar. Para volver a ejecutar la consulta (para añadir registros, por ejemplo), basta con utilizar .ExecuteQuery o .InitQuery.
WINDEVWEBDEV - Código ServidorReportes y ConsultasUniversal Windows 10 AppiPhone/iPadIOS WidgetCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBConectores Nativos

Consultas SQL (.ExecuteQuery o ejecución de consultas SQL creadas en el editor de consultas)

  • Al utilizar las instrucciones DELETE, INSERT o UPDATE en las consultas SQL, por defecto, no se realiza ningún control de integridad ni de duplicados en una base de datos HFSQL.
    • To realizar un chequeo de integridad automático, simplemente especifica la constante hCheckIntegrity. Esta constante permite activar la gestión de la integridad al ejecutar la consulta. Si se detecta un error de integridad, no se ejecuta la consulta. Se inicia una transacción, los registros se bloquean en escritura 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.
      HFSQL Client/Server Si no se especifica la constante hCheckIntegrity, se desactiva la gestión de la integridad. Sin embargo, se produce un error si se debe realizar una operación de gestión de la integridad, pero el usuario no tiene derechos para desactivar la gestión de la integridad (<Variable Connection>.ModifyDatabaseRights).
    • To realizar una comprobación automática de los duplicados, simplemente especifique la constante hCheckDuplicates. Esta constante permite activar la gestión de duplicados al ejecutar la consulta. Si se detecta un error de duplicados, no se ejecuta la consulta. Se inicia una transacción, los registros se bloquean en escritura 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.
      Nota: Si se detecta un error de duplicados durante la ejecución de una consulta UPDATE, la función .ExecuteQuery devuelve False y el proceso continúa. El error correspondiente puede conocerse con la función HErrorInfo.
      Observación: La asistencia automática predeterminada no se llama para los errores de duplicados. Se genera un error simple de duplicados. Si se definió una asistencia con la función <Fuente>.OnError, se llama a esta asistencia personalizada.
      HFSQL Client/Server Si no se especifica la constante hCheckDuplicates, se desactiva la gestión de duplicados. Se produce un error si se debe realizar una operación de gestión de duplicados, pero el usuario no tiene derechos para desactivar la gestión de duplicados (<Variable Connection>.ModifyDatabaseRights).
  • Las consultas UPDATE, DELETE e INSERT solo existen durante su ejecución. No se puede utilizar una función WLanguage en este tipo de consulta después de que ha sido ejecutada.
  • Las consultas de tipo DELETE no admiten la eliminación en cascada.
  • Al ejecutar una consulta INSERT/UPDATE/DELETE en archivos de datos HFSQL, el número de registros añadidos, modificados o eliminados es devuelto por el H.NbRecModificationQuery Variable.
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 25
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 22/06/2023

Señalar un error o enviar una sugerencia | Ayuda local