|
|
|
|
- Activación de las funciones de gestión de tabla
- Variables utilizadas para gestionar los desencadenantes
No disponible con estos tipos de conexión
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).
// In the initialization code of the project LOCAL TriggerResult is boolean // Create the trigger for the Customer file TriggerResult = Customer.DescribeTrigger("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> = <HFSQL data file>.DescribeTrigger(<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.
<HFSQL data file>: Nombre del archivo Nombre lógico de un archivo de datos HFSQL. <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. | | hTriggerAfter | El Procedure se ejecuta después de la función HFSQL. | hTriggerBefore | El 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 ( <Table>.Add, <Tabla>.AddLine, .Delete, <Tabla>.Modify, ... ) utilizan implícitamente las siguientes funciones HFSQL: <Fuente>.Add, <Fuente>.Delete y <Fuente>.Modify. 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.Action | Carácter inicializado a "A" para un Antes del disparo y a "P" para un Después del disparo. | H.FileName | Cadena de caracteres: Nombre lógico del archivo de datos cuyo disparador está activado | H.ToDo | Durante 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.TriggerFunction | Cadena 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.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|