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
  • Uso de la constante hQueryWithoutCorrection
  • Pasar parámetros a la consulta
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
Ejecuta una consulta SELECT asincrónica. Esta consulta puede corresponder a:
  • una consulta creada en el editor de consultas.
  • una variable de tipo SQL Query.
Condiciones de uso:
  • Este modo está destinado a las consultas cuya ejecución dura algunos segundos. Para consultas inmediatas o casi inmediatas, este modo es demasiado lento.
  • La consulta debe ser del tipo "SELECCIONAR": debe devolver los registros.
  • Una consulta sólo puede ser ejecutada asincrónicamente desde el contexto principal. En otros casos, es necesario utilizar hilos.
  • Esta función no permite pasar parámetros a una consulta que ya tiene un parámetro. Los parámetros deben ser pasados antes de que la consulta sea ejecutada.
Ejemplo
QRY_WDR3.ExecuteQueryAsynchronous(MyCS2Connection,
hQueryDefault, MyProcedureForEachRecord, MyFinalProcedure)
 
INTERNAL PROCEDURE MyProcedureForEachRecord(rec is Record)
Trace("Procedure for processing each Record" + rec.ItemName)
END
 
INTERNAL PROCEDURE MyFinalProcedure(MyRes is int)
Trace("Procedure for processing the final result")
SWITCH MyRes
CASE heqaOK:
Trace("The query and the record processing were correctly executed.")
CASE heqaCanceled:
Trace ("One process returned False. The query and the procedures have been canceled.")
OTHER CASE:
Trace("There was a problem with the procedure or with the execution of the query.")
END
END
Sintaxis

Ejecución de una consulta (sin conexión) Ocultar los detalles

<Result> = <Query name>.ExécuteRequêteAsynchronous([<Mode>, ] <WLanguage procedure for each record> [, <End WLanguage procedure>])
<Result>: karaoke
  • True si la consulta fue inicializada (el código SQL de la consulta es válido),
  • False en caso contrario. La función HError permite obtener más detalles sobre el problema.
<Query name>: Fuente de datos
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 sustituye por la nueva consulta.
  • Nombre de una variable de tipo consulta SQL.
<Mode>: Constante opcional de tipo Integer
Opción para iniciar la consulta:
hQueryDefault
(valor predeterminado)
Inicie la consulta.
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:
  • se debe especificar el nombre de la conexión (parámetro <Conexión>).
  • no se puede cancelar una condición asignándola a NULL.
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.

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á.
<WLanguage procedure for each record>: Nombre de Procedure
Procedimiento WLanguage ("callback") ejecutado para cada Record encontrada correspondiente a la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(ARec is Record)
donde <ARec> es una variable Record que corresponde al Record actual (para la consulta ejecutada).
Por defecto, el procedimiento devuelve True y pasa al siguiente Record.
Si esta Procedure devuelve False, la consulta se cancela y el <End WLanguage Procedure> se ejecuta.
<End WLanguage procedure>: Nombre de procedimiento opcional
WLanguage Procedure ("callback") ejecutado al final de la ejecución de la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(nResult is int)
donde <nResultado> es una constante entera que puede corresponder a los siguientes valores:
heqaCanceledEl procedimiento ejecutado para cada Record devolvió False. La consulta y los diferentes procedimientos fueron cancelados.
heqaErrorLa consulta y/o el procedimiento llamado para cada Record encontró un error. Puede get más detalles sobre el error con HErrorInfo.
heqaOKLa consulta y el procedimiento se ejecutaron correctamente para cada Record.
Observación: La consulta se destruye una vez que se han leído todos los registros. El <Lenguaje de finalización Procedure> sólo se puede utilizar para saber cómo terminó la iteración.

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

<Result> = <Query name>.ExécuteRequêteAsynchronous([<Connection> [, <Mode>, ]] <WLanguage procedure for each record> [, <End WLanguage procedure>])
<Result>: karaoke
  • True si la consulta fue inicializada (el código SQL de la consulta es válido),
  • False en caso contrario. La función HError permite obtener más detalles sobre el problema.
<Query name>: Fuente de datos
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 sustituye por la nueva consulta.
  • Nombre de una variable de tipo consulta SQL.
<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 la consulta afecta a ficheros de datos a los que se accede a través de OLE DB o Conectores Nativos, 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 .ExecuteQueryAsynchronous, se utiliza la nueva conexión.
<Mode>: Constante opcional de tipo Integer
Opción para iniciar la consulta:
hQueryDefault
(valor predeterminado)
Inicie la consulta.
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:
  • se debe especificar el nombre de la conexión (parámetro <Conexión>).
  • no se puede cancelar una condición asignándola a NULL.
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.

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á.
<WLanguage procedure for each record>: Nombre de Procedure
Procedimiento WLanguage ("callback") ejecutado para cada Record encontrada correspondiente a la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(ARec is Record)
donde <ARec> es una variable Record que corresponde al Record actual (para la consulta ejecutada).
Por defecto, el procedimiento devuelve True y pasa al siguiente Record.
Si esta Procedure devuelve False, la consulta se cancela y el <End WLanguage Procedure> se ejecuta.
<End WLanguage procedure>: Nombre de procedimiento opcional
WLanguage Procedure ("callback") ejecutado al final de la ejecución de la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(nResult is int)
donde <nResultado> es una constante entera que puede corresponder a los siguientes valores:
heqaCanceledEl procedimiento ejecutado para cada Record devolvió False. La consulta y los diferentes procedimientos fueron cancelados.
heqaErrorLa consulta y/o el procedimiento llamado para cada Record encontró un error. Puede get más detalles sobre el error con HErrorInfo.
heqaOKLa consulta y el procedimiento se ejecutaron correctamente para cada Record.
Observación: La consulta se destruye una vez que se han leído todos los registros. El <Lenguaje de finalización Procedure> sólo se puede utilizar para saber cómo terminó la iteración.
Observaciones
WINDEVReportes y ConsultasCódigo de Usuario (UMC)OLE 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

Para pasar los parámetros a una consulta antes de ejecutarla, también se debe 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
<Query name>.ExecuteQueryAsynchronous(<Procedure>)
IF ErrorOccurred = True THEN ...

Observación: La estructura de los parámetros de consulta se restablece cada vez que se ejecuta la consulta.
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 26
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