|
|
|
|
|
- Triggers of the same type
- Trigger on the functions for manipulating Table controls
- Variables used to manage the triggers
HDescribeServerTrigger (Function) In french: HDécritTriggerServeur
Available only with this kind of connection
Adds or modifies a server trigger. A server trigger is a stored procedure automatically called by the HFSQL engine whenever an HFSQL function is run. Remark: The functions for handling server triggers are advanced functions. The server triggers can be created directly in the data model editor. For more details, see Server triggers.
IF HCreation(Cedex) = False THEN
Error(HErrorInfo())
ELSE
Info("File created")
END
IF HChangeDir(Cedex, ".\FRANCE\") = False THEN Error(HErrorInfo())
IF HDescribeServerTrigger("CNT_TEST", "TriggerTEST", ...
"ProcedureTEST", hTriggerAfter, ...
"Cedex", "HAdd, HModify") = False THEN Error(HErrorInfo())
Cedex.ZipCode = "30000"
Cedex.City = "NIMES"
HAdd(Cedex)
Cedex.ZipCode = "34000"
Cedex.City = "MONTPELLIER"
HAdd(Cedex)
Syntax
Describing a server trigger (logical files) Hide the details
<Result> = HDescribeServerTrigger(<Trigger> , <Stored procedure> , <Type of trigger> , <Logical HFSQL Client/Server files> [, <List of HFSQL functions>])
<Result>: Boolean - True if the operation was performed,
- False if a problem occurs. HErrorInfo is used to identify the error.
<Trigger>: Character string Name of the trigger to create. This name will be used to handle the trigger in the functions for managing the server triggers. <Stored procedure>: Procedure name Name of the WLanguage stored procedure that will be run when activating the trigger. This procedure accepts no parameter. <Type of trigger>: Integer constant Indicates the type of trigger. | | hTriggerAfter | The stored procedure is run after the HFSQL function. | hTriggerBefore | The stored procedure is run before the HFSQL function. |
<Logical HFSQL Client/Server files>: Character string Logical name of one or more HFSQL Client/Server data files. To specify several names, the names of the data files must be separated by a comma (", "). <List of HFSQL functions>: Optional 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:Triggers are also run on INSERT queries (trigger of HAdd), UPDATE queries (trigger of HModify) and DELETE queries (trigger of HDelete).
Describing a server trigger on the physical files associated with a connection Hide the details
<Result> = HDescribeServerTrigger(<Connection> , <Trigger> , <Stored procedure> , <Type of trigger> [, <Physical HFSQL Client/Server files> [, <List of HFSQL functions>]])
<Result>: Boolean - True if the operation was performed,
- False if a problem occurs. HError is used to identify the error.
<Connection>: Character string or Connection variable Connection to use. This connection corresponds to: <Trigger>: Character string Name of the trigger to create. This name will be used to handle the trigger in the functions for managing the server triggers. <Stored procedure>: Procedure name Name of the WLanguage stored procedure that will be run when activating the trigger. This procedure accepts no parameter. <Type of trigger>: Integer constant Type of trigger to create: | | hTriggerAfter | The stored procedure is run after the HFSQL function | hTriggerBefore | The stored procedure is run before the HFSQL function |
<Physical HFSQL Client/Server files>: Optional character string Physical name of one or more HFSQL Client/Server data files associated with the connection ("CUSTOMER.FIC" for example). To specify several names, the names of the data files must be separated by a comma (","). If this parameter is not specified or if it corresponds to an empty string (""), the trigger will be enabled on all the data files of the database. <List of HFSQL functions>: Optional 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 (","). Triggers can be defined on the following functions: Triggers are also run on INSERT queries (trigger of HAdd), UPDATE queries (trigger of HModify) and DELETE queries (trigger of HDelete).
Creating a trigger from the description in the analysis Hide the details
<Result> = HDescribeServerTrigger(<Connection> , <Trigger>)
<Result>: Boolean - True if the operation was performed,
- False if a problem occurs. HError is used to identify the error.
<Connection>: Character string or Connection variable Connection to use. This connection corresponds to: <Trigger>: Character string Name of the trigger described in the analysis. Remarks Triggers of the same type If several triggers of the same type are defined on the same data file for the same operation, these triggers will be run according to the alphabetical order of their names. Trigger on the functions for manipulating Table controls When using one of these functions for handling the Table controls, if a trigger is defined for the corresponding HFSQL function, the trigger is automatically activated. Variables used to manage the triggers A trigger procedure accepts no parameter. However, some HFSQL state variables are positioned before each call:
| | H.Action | Character initialized to "A" for a Before trigger and to "P" for an After trigger. | H.FileName | Character string: Logical name of the data file whose trigger is activated. | H.ToDo | During the execution of the Before trigger, the execution of the current HFSQL function can be canceled by assigning "A" to the HFSQL state variable: H.ToDo = "A" | H.TriggerFunction | Character string: Name of HFSQL function that activated the trigger. | Remark: If a BEFORE trigger and an AFTER trigger are defined for an HFSQL function and if the BEFORE trigger cancels the function (H.ToDo is set to "A"), the AFTER trigger is not activated. Business / UI classification: Business Logic
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|