|
|
|
|
|
- Uso de la constante hQueryWithoutCorrection
- Pasar parámetros a la consulta
HExecuteQueryAsynchronous (Función) Ejecuta una consulta SELECT de forma asíncrona. 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 consultas con un tiempo de ejecución de varios segundos. Para la ejecución inmediata de consultas, este modo es demasiado lento.
- La consulta debe ser de tipo "SELECT", ya que debe devolver registros.
- Una consulta sólo puede ejecutarse de forma asíncrona desde el contexto principal. En otros casos, es necesario utilizar subprocesos.
- Esta función no permite pasar parámetros a una consulta que ya tiene un parámetro. Los parámetros deben pasarse antes de ejecutar la consulta.
HExecuteQueryAsynchronous(REQ_MaRequete, hQueryDefault,
MaProcedurePourChaqueEnregistrement, MaProcedureFinale)
INTERNAL PROCEDURE MaProcedurePourChaqueEnregistrement(enreg is Record of REQ_MaRequete)
Trace("Procédure de traitement de chaque enregistrement " + enreg.NomRubrique)
END
INTERNAL PROCEDURE MaProcedureFinale(MonRes is int)
Trace("Procédure de traitement du résultat final")
SWITCH MonRes
CASE heqaOK :
Trace("La requête et le traitement des enregistrements se sont bien exécutés.")
CASE heqaCanceled :
Trace("Un traitement a renvoyé Faux. La requête et les procédures ont été annulées.")
OTHER CASE :
Trace("Une procédure ou l'exécution de la requête a rencontré une erreur.")
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 - Verdadero 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 información 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 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.
<Mode>: Constante opcional de tipo Integer Opción para iniciar la consulta: | | hQueryDefault (valor predeterminado) | Inicializar la consulta. | hQueryWithoutCorrection | | hQueryWithoutHFCorrection | |
<WLanguage procedure for each record>: Nombre del procedimiento Procedimiento WLanguage ("callback") ejecutado para cada registro encontrado correspondiente a la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(ARec is Record) donde <ARec> es una variable Registro que corresponde al registro actual (para la consulta ejecutada). Por defecto, el procedimiento devuelve Verdadero y pasa al siguiente registro. Si este procedimiento devuelve Falso, la consulta se cancela y se ejecuta el <Fin del procedimiento WLanguage>. <End WLanguage procedure>: Nombre de procedimiento opcional Procedimiento WLanguage ("callback") ejecutado al final de la ejecución de la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(nResult is int) donde <nResult> es una constante Entera que puede corresponder a los siguientes valores: | | heqaCancelado | El procedimiento ejecutado para cada registro devuelto Falso. La consulta y los distintos procedimientos se anularon. | heqaError | La consulta y/o el procedimiento llamado para cada registro ha encontrado un error. Puede obtener más detalles sobre el error con HErrorInfo. | heqaOK | La consulta y el procedimiento se ejecutaron correctamente para cada registro. | Nota: La consulta se destruye una vez que se han leído todos los registros. El <End WLanguage procedure> sólo se puede utilizar para saber cómo terminó la iteración.
Ejecutar 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 - Verdadero 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 información 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 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.
<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) | Inicializar la consulta. | hQueryWithoutCorrection | | hQueryWithoutHFCorrection | |
<WLanguage procedure for each record>: Nombre del procedimiento Procedimiento WLanguage ("callback") ejecutado para cada registro encontrado correspondiente a la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(ARec is Record) donde <ARec> es una variable Registro que corresponde al registro actual (para la consulta ejecutada). Por defecto, el procedimiento devuelve Verdadero y pasa al siguiente registro. Si este procedimiento devuelve Falso, la consulta se cancela y se ejecuta el <Fin del procedimiento WLanguage>. <End WLanguage procedure>: Nombre de procedimiento opcional Procedimiento WLanguage ("callback") ejecutado al final de la ejecución de la consulta. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure name>(nResult is int) donde <nResult> es una constante Entera que puede corresponder a los siguientes valores: | | heqaCancelado | El procedimiento ejecutado para cada registro devuelto Falso. La consulta y los distintos procedimientos se anularon. | heqaError | La consulta y/o el procedimiento llamado para cada registro ha encontrado un error. Puede obtener más detalles sobre el error con HErrorInfo. | heqaOK | La consulta y el procedimiento se ejecutaron correctamente para cada registro. | Nota: La consulta se destruye una vez que se han leído todos los registros. El <End WLanguage procedure> sólo se puede utilizar para saber cómo terminó la iteración. Pasar parámetros a la consulta Para pasar parámetros a una consulta antes de ejecutarla, también debe utilizarse 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 ... Nota: Cada vez que se ejecuta una consulta parametrizada, se reinicializa la estructura de parámetros de la consulta. Clasificación Lógica de negocio / UI: Lógica de negocio
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|