4D v16

Triggers

Accueil

 
4D v16
Triggers

Triggers    


 

 

En complément des manipulations expliquées dans la vidéo, il faut noter que :  

Cette appellation d’événement MOTEUR apporte une précision importante : les triggers sont exécutés sur le moteur de la base de données :

  • En monoposte, il s’agit bien du programme 4D qui contient à la fois le moteur de base de données, le moteur de rendu (affichages, etc.).
  • En mode client/serveur (Serveur SQL ou serveur Web), les données sont stockées sur le serveur et envoyées aux postes clients par le moteur de 4DServer. Dans ce cas, les triggers sont exécutés sur le serveur et non plus en local sur les postes clients.

D’une manière générale, prenez l’habitude de créer des méthodes projet qui réalisent vos traitements, calculs, etc. et appelez ces méthodes “génériques” depuis les méthodes spécifiques telles que les triggers.

Nous avons vu comment passer des paramètres, c’est beaucoup plus facile à maintenir et vous gagnerez un temps considérable tant en développement qu’en correction de bogues. Votre code sera également plus concis, fiable et lisible.

On peut exécuter des triggers en cascade. Dans ce cas, 4D dispose de commandes permettant de connaître les propriétés du trigger et le niveau dans la cascade.

Un trigger peut également servir à “accepter” ou “rejeter” la tentative d’opération sur l’enregistrement.

C’est un moyen qui vous permet de garantir l’intégrité de votre base de données quelle que soit la manière dont les informations sont traitées :

  • SQL
  • plug-in
  • saisie
  • import
  • Web

Sachant qu’un trigger bloque le reste des traitements durant son exécution, les principes généraux à respecter dans une méthode trigger sont :

  • rapidité d’exécution
  • pas d’interface (alertes, messages, ...)

Bonjour,

dans cette vidéo nous allons apprendre à paramétrer les événements moteur et les prendre en compte dans la programmation.
Un trigger est en fait une méthode table qui sert à contrôler les actions effectuées par le moteur de la base sur les données :

  • création
  • modification
  • suppression

À ce titre, un trigger est une méthode comme une autre, c’est juste son contexte d’exécution qui change.

A l’instar des événements formulaires, les événements moteurs doivent être cochés pour que 4D passe la main au trigger à exécuter.

C’est dans l’Inspecteur de tables que nous pouvons activer tel ou tel événement moteur.

En bas à droite se trouve le bouton "Editer" qui permet de créer la méthode à exécuter lors de la survenue des événements cochés.

La méthode est généralement structurée de la manière suivante :

 $evt:=Trigger event `quel est le numéro de l'événement en cours d'exécution par le moteur de la BDD
 Case of
    :($evt=On Saving New Record Event`on sauvegarde un nouvel enregistrement
 
    :($evt=On Saving Existing Record Event`on sauvegarde un enregistrement déjà existant
 
    :($evt=On Deleting Record Event`on supprime un enregistrement
 
 End case

Contrairement à une méthode formulaire qui n’est exécutée que lorsqu’on est dans le cadre d’un affichage (ou une impression), un trigger est exécuté quelle que soit la manière dont on accède aux enregistrements :

  • programmation
  • import/export
  • SQL
  • Web
  • ...

Le trigger a l’avantage d’être un point de passage obligé.

  • Ajoutons un champ Date_Derniere_Modif dans la table Intervention
  • rendons-le visible sur le formulaire
  • et valorisons-le lors de l'enregistrement d'une fiche :

 [Interventions]Date_derniere_modif:=Current date

Bien évidemment cette dernière modification sera valable également lors de la création de l'enregistrement.

Testons-le en effectuant une modification :

  • si nous changeons la date d'intervention
  • en enregistrant et que nous revenons ici, la date de modif a bien été valorisée
  • le trigger a donc bien fonctionné.

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Triggers

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

Autoformation ( 4D v16)