|
|
|
|
|
- Trigger on the table functions
- Variables used to manage the triggers
HDescribeTrigger (Function) In french: HDécritTrigger
Not available with these kinds of connection
Adds or modifies a trigger on an HFSQL data file. A trigger is a WLanguage procedure automatically called by the HFSQL engine whenever an HFSQL function is run. UPDATE, INSERT and DELETE queries also trigger execution of the trigger (note: the trigger is not triggered on tables accessed via a Native Connector).
LOCAL
TriggerResult is boolean
TriggerResult = HDescribeTrigger("*", "HADD,HMODIFY,HDELETE,HCROSS,HWRITE", ...
"CheckUserRights", hTriggerBefore)
IF TriggerResult = False THEN
Error("Trigger error: " + HErrorInfo)
RETURN
END
Syntax
<Result> = HDescribeTrigger(<List of HFSQL data files> , <List of HFSQL functions> , <WLanguage procedure> , <Type of trigger>)
<Result>: Boolean - True if the operation was performed,
- False if a problem occurs. HErrorInfo is used to identify the error.
<List of HFSQL data files>: Character string Logical name of one or more HFSQL data files. To specify several names of data files, the names of the data files must be separated by a comma (","). To use all the data files found in the analysis, this parameter must be equal to "*". <List of HFSQL functions>: Character string Name of one or more HFSQL or TableXXX functions on which the trigger must be implemented. To specify several names of functions, the names of functions must be separated by a comma (","). You have the ability to define triggers on the following functions: <WLanguage procedure>: Procedure name Name of the WLanguage procedure that will be run when a trigger is activated on the specified HFSQL functions. <Type of trigger>: Integer constant Indicates the type of trigger. | | hTriggerAfter | The procedure is run after the HFSQL function. | hTriggerBefore | The procedure is run before the HFSQL function. |
Remarks Trigger on the table functions When using one of these functions for handling tables, if a trigger is defined for the corresponding HFSQL function, the trigger is automatically activated. Variables used to manage the triggers A trigger procedure (or stored procedure) receives no parameters. However, some HFSQL state variables are positioned before each call: | | H.FileName | Character string: Logical name of the data file for which the trigger is activated. Warning Depending on the logical name used by the application, the value of the variable H.FileName variable may be different (using aliases, for example). It is recommended to use: - MyFile.DescribedName for the logical name of the file being handled (without taking aliases into account).
- MyFile.PhysicalName to find out the physical name of the file being handled.
| H.Action | Character initialized to "A" for a Before trigger and to "P" for an After trigger. | H.TriggerFunction | String: Name of the HFSQL function that triggered the trigger.
Warning
The variable H.FunctionTrigger variable is deprecated in favour of the H.FunctionTriggerNumber. The information given by the variable is independent of the language used to run the application.
| New in version 2025H.TriggerFunctionNumber | Constant used to identify the function that triggered the trigger: - htrgHAjoute The function that triggered the trigger is HAdd.
- htrgHEcrit The function that triggered the trigger is HWrite.
- htrgHModifies: The function that triggered the trigger is HModify.
- htrgHRaye: The function that triggered the trigger is HCross.
- htrgHSupprime The function that triggered the trigger is HDelete.
| H.ToDo | During the execution of a before trigger:- cancelling the execution of the current HFSQL function by assigning "A" to the HFSQL state variable: H.ToDo = "A". In this case, the action is not performed and the function (HAdd, HModify, etc.) returns True (no error).
- cancelling the execution of the ongoing HFSQL function by assigning "E" to the HFSQL state variable: H.AFaire = "E". In this case, the action is not performed and the function (HAdd, HModify, etc.) returns False. The error message reads: "The action on file XXX has been interrupted by the trigger".
| Note In the case where a "BEFORE" and an "AFTER" trigger are associated with an HFSQL function, if the "BEFORE" trigger cancels the execution of the HFSQL function (by setting H.AFaire to "A"), the "AFTER" trigger is not triggered.
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|