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 / Gestión de desencadenadores / Funciones WLanguage
  • Activación de las funciones de gestión de tabla
  • Variables utilizadas para gestionar los desencadenantes
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
Añade o modifica un activador en un archivo de datos HFSQL. Un disparador es un WLanguage Procedure llamado automáticamente por el motor HFSQL cada vez que se ejecuta una función HFSQL. Las consultas UPDATE, INSERT o DELETE también ejecutan el disparador (Atención: el trigger se ejecuta en las tablas a las que se accede a través de una Conector Nativo).
Para obtener más información, consulte Gestión de los factores desencadenantes.
HFSQL ClassicHFSQL Client/Server Esta función sólo está disponible en el lado del cliente. Utilice HDescribeServerTrigger para definir un trigger de servidor para una base de datos HFSQL Client/Server.
Ejemplo
// In the initialization code of the project
LOCAL
TriggerResult is boolean
 
// Create a trigger for all the analysis files
TriggerResult = HDescribeTrigger("*", "HADD,HMODIFY," + ...
 "HDELETE, HCROSS,HWRITE", "CheckUserRights", hTriggerBefore)
// "CheckUserRights" is a global procedure of the project
IF TriggerResult = False THEN
 Error("Error on a trigger: " + HErrorInfo)
 RETURN
END
Sintaxis
<Result> = HDescribeTrigger(<List of HFSQL data files> , <List of HFSQL functions> , <WLanguage procedure> , <Type of trigger>)
<Result>: booleano
  • True si se realizó la operación,
  • False si se produce un problema. La función HErrorInfo permite identificar el error.
<List of HFSQL data files>: Cadena de caracteres
Nombre lógico de uno o más archivos de datos HFSQL.
Para especificar varios nombres de archivos de datos, los nombres de los archivos de datos deben estar separados por una coma (",").
Para utilizar todos los archivos de datos encontrados en el análisis, este parámetro debe ser igual a "*" ".
<List of HFSQL functions>: Cadena de caracteres
Nombre de una o más funciones HFSQL o TableXXX en las que se debe implementar el trigger. Para especificar varios nombres de funciones, los nombres de las funciones deben estar separados por una coma (","). Tiene la capacidad de definir desencadenantes en las siguientes funciones:
<WLanguage procedure>: Nombre de Procedure
Nombre del WLanguage Procedure que se ejecutará cuando se active un disparador en las funciones HFSQL especificadas.
<Type of trigger>: Constante de tipo Integer
Indica el tipo de disparo.
hTriggerAfterEl Procedure se ejecuta después de la función HFSQL.
hTriggerBeforeEl Procedure se ejecuta antes de la función HFSQL.
Observaciones

Activación de las funciones de gestión de tabla

Las funciones de gestión de tabla (TableAdd, TableAddLine, TableDelete, TableModify, ... ) utilizan implícitamente las siguientes funciones HFSQL: HAdd, HDelete y HModify.
Cuando se utiliza una de estas funciones para manejar las tablas, si se define un trigger para la función HFSQL correspondiente, el trigger se activa automáticamente.

Variables utilizadas para gestionar los desencadenantes

Un disparador Procedure no acepta ningún parámetro. Sin embargo, algunas variables de estado HFSQL se colocan antes de cada llamada:
H.ActionCarácter inicializado a "A" para un Antes del disparo y a "P" para un Después del disparo.
H.FileNameCadena de caracteres: Nombre lógico del archivo de datos cuyo disparador está activado
H.ToDoDurante la ejecución de un trigger anterior:
  • cancelar la ejecución de la función HFSQL asignando "A" al estado HFSQL Variable: H.ToDo = "A". En este caso, la acción no se realiza y la función (HAdd, HModify, etc.) devuelve True (sin error).
  • Cancelar la ejecución de la función HFSQL actual asignando "E" al estado HFSQL Variable: H.ToDo = "E". En este caso, la acción no se realiza y la función (HAdd, HModify, etc.) devuelve False. El mensaje de error es el siguiente: "La acción en el archivo XXX fue interrumpida por el gatillo".
H.TriggerFunctionCadena de caracteres: Nombre de la función HFSQL que activó el trigger

Observación: Cuando un trigger "BEFORE" y un trigger "AFTER" son associated con una función HFSQL, si "BEFORE" cancela la ejecución de la función HFSQL (poniendo H.ToDo en "A"), "AFTER" no se ejecuta.
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Not only on HFCS databases
According to the online help: HdescribeTrigger "Adds or modifies a trigger on a HFSQL data file"

I have used HdesdcribeTrigger on Postgresql databases also.
Diego Sanchez
04 02 2015

Última modificación: 27/05/2022

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