ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / Managing databases / HFSQL / Managing triggers
  • Definition
  • Using triggers
  • Relevant databases
  • HFSQL Classic and HFSQL Client/Server
  • Benefits
  • Available types of triggers
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Definition
A trigger is a WLanguage procedure automatically called by the HFSQL engine whenever a modification is performed (addition, deletion, modification, ...) on a record of a data file.
A trigger is used to associate a WLanguage process with one or more HFSQL functions without having to worry about the location of these functions in the code. The triggers associated with the HFSQL functions used are run even for the windows or for the code created by a wizard.
Using triggers

Relevant databases

The triggers can be applied to all types of data files:
  • HFSQL Classic,
  • HFSQL Client/Server,
  • Native Connectors (Oracle, AS/400, etc.),
  • ODBC,
  • OLE DB, ...

HFSQL Classic and HFSQL Client/Server

HFSQL Classic and HFSQL Client/Server allow you to define the triggers.
In HFSQL Classic mode, the triggers are handled through programming via the WLanguage functions. These triggers can be used on all the databases. For more details, see The triggers.
In Server mode, two types of triggers are available:
  • The triggers run on the client. These triggers are equivalent to the Classic mode and they are handled by programming.
  • The Server triggers run on the server. These triggers are associated with the stored procedures found on the server. These triggers are directly defined in the analysis (for an advanced use, they can also be defined and handled through programming). For more details, see The server triggers.
Remark: Triggers and threads: If the functions release triggers in different threads, the procedure run in the trigger uses the HFSQL context corresponding to the one of the current function (one HFSQL context per thread).

Benefits

Using a trigger allows you to:
  • Reduce the code size. For example, using a trigger allows you to group the processes associated with one or more HFSQL functions (check for duplicates, consistency of data, ...).
  • Make the code easier to read.
  • Simplify the future evolutions of the application.
Caution: A file modification performed via a query does not activate the client triggers (hModifyFile constant used in HExecuteQuery).
Available types of triggers
Two types of triggers are available:
  • The "BEFORE" triggers:
    A "BEFORE" trigger is called before the execution of a FSQL function (HAdd, HModify, HDelete, ...) or before the execution of a function for managing the Table controls based on a data file.
    A "BEFORE" trigger can be used for example to check the consistency of data for the items of a record. With this type of trigger, an HFSQL variable can be initialized in order to cancel the execution of the associated HFSQL function.
  • The "AFTER" triggers:
    An "AFTER" trigger is called after the execution of an HFSQL function (except if the program was interrupted during the execution of this function) or after the execution of a function for managing the Table controls based on a data file.
    An "AFTER" trigger can be used to manage the process of errors for example.
Related Examples:
WD Trigger Training (WINDEV): WD Trigger
[ + ] This example explains how to use the triggers with WINDEV.
A trigger is a WLanguage procedure automatically called by the HFSQL engine whenever a HFSQL function is run.

The following topics are presented in this example:
1/ how to branch a trigger on a HFSQL function
2/ the code that must be used in the function called by trigger.

Summary of the example supplied with WINDEV:
This application is used to enter the expenses for the contributors of a company.
Two modes can be used:
- the mode with read/write rights
- the mode with read-only rights.
The triggers will be used to control the access to the files according to the current mode.
In this example, the triggers are also used to write the different events into a log file.
This log file can be directly consulted in the application.
Minimum version required
  • Version 12
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 07/03/2023

Send a report | Local help