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
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
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.
    AndroidWidget Android Java 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
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.).
Advertencia: 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 (a través de JDBC): Este parámetro sólo puede corresponder al hDefaultQuery o hQueryWithoutCorrection constantes. Si se utiliza otra constante, se ignorará.
<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:
heqaCanceladoEl procedimiento ejecutado para cada registro devuelto Falso. La consulta y los distintos procedimientos se anularon.
heqaErrorLa consulta y/o el procedimiento llamado para cada registro ha encontrado un error. Puede obtener más detalles sobre el error con HErrorInfo.
heqaOKLa 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.
    AndroidWidget Android Java 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.
OLE DBConectores Nativos Si no se especifica este parámetro y la consulta afecta a archivos de datos a los que se accede a través de conectores OLE DB o Native, la consulta se ejecuta a través de la conexión utilizada por el primer archivo de datos encontrado en la consulta. Si la conexión utilizada por un archivo de datos se modifica antes de la llamada a HExecuteQueryAsynchronousse utilizará la nueva conexión.
<Mode>: Constante opcional de tipo Integer
Opción para iniciar la consulta:
hQueryDefault
(valor predeterminado)
Inicializar 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.).
Advertencia: 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 (a través de JDBC): Este parámetro sólo puede corresponder al hDefaultQuery o hQueryWithoutCorrection constantes. Si se utiliza otra constante, se ignorará.
<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:
heqaCanceladoEl procedimiento ejecutado para cada registro devuelto Falso. La consulta y los distintos procedimientos se anularon.
heqaErrorLa consulta y/o el procedimiento llamado para cada registro ha encontrado un error. Puede obtener más detalles sobre el error con HErrorInfo.
heqaOKLa 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.
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 asociada a 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 signos propietarios de PC SOFT se sustituyen (por ejemplo, ']=' empieza por) por su equivalente 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.
Se formatean los flotantes (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 nombre de 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 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
Componente: wd300hf.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: 12/06/2025

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