|
|
|
|
- Uso de la constante hQueryWithoutCorrection
- Pasar parámetros a la consulta
HExecuteQueryAsynchronous (Función) 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.
HExecuteQueryAsynchronous(QRY_WDR3, 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> = HExecuteQueryAsynchronous(<Query name> [, <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>: Cadena de caracteres Nombre de la consulta a ejecutar: - Nombre y ruta completa de la consulta (archivo ".WDR") a iniciar.
No disponible. - 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 | | hQueryWithoutHFCorrection | |
<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 opcional de Procedure 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: | | heqaCanceled | El procedimiento ejecutado para cada Record devolvió False. La consulta y los diferentes procedimientos fueron cancelados. | heqaError | La consulta y/o el procedimiento llamado para cada Record encontró un error. Puede get más detalles sobre el error con HErrorInfo. | heqaOK | La 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> = HExecuteQueryAsynchronous(<Query name> [, <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>: Cadena de caracteres Nombre de la consulta a ejecutar: - Nombre y ruta completa de la consulta (archivo ".WDR") a iniciar.
No disponible. - 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.
<Mode>: Constante opcional de tipo Integer Opción para iniciar la consulta: | | hQueryDefault (valor predeterminado) | Inicie la consulta. | hQueryWithoutCorrection | | hQueryWithoutHFCorrection | |
<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 opcional de Procedure 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: | | heqaCanceled | El procedimiento ejecutado para cada Record devolvió False. La consulta y los diferentes procedimientos fueron cancelados. | heqaError | La consulta y/o el procedimiento llamado para cada Record encontró un error. Puede get más detalles sobre el error con HErrorInfo. | heqaOK | La 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. 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 HExecuteQueryAsynchronous(<Query name>, <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
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|