DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Gestion des triggers
  • Définition
  • Utilisation des triggers
  • Bases de données concernées
  • HFSQL Classic et HFSQL Client/Serveur
  • Avantages
  • Types de triggers disponibles
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Définition
Un trigger est une procédure WLangage appelée automatiquement par le moteur HFSQL à chaque modification (ajout, suppression, modification, ...) d'un enregistrement d'un fichier de données.
Un trigger permet d'associer un traitement WLangage à une ou plusieurs fonctions HFSQL sans se préoccuper de l'emplacement de ces fonctions dans le code. Même s'il s'agit de fenêtres ou de code créés par un assistant, les triggers associés aux fonctions HFSQL utilisées sont exécutés.
Utilisation des triggers

Bases de données concernées

Les triggers s'appliquent sur tous les types de fichiers de données :
  • HFSQL Classic,
  • HFSQL Client/Serveur,
  • Connecteurs Natifs (Oracle, AS/400, ...),
  • ODBC,
  • OLE DB, ...

HFSQL Classic et HFSQL Client/Serveur

HFSQL Classic et HFSQL Client/Serveur permettent de définir des triggers.
En mode HFSQL Classic, les triggers sont manipulés par programmation, à l'aide de fonctions WLangage. Ces triggers sont utilisables sur toutes les bases de données. Pour plus de détails, consultez Les triggers.
En mode Serveur, deux types de triggers sont disponibles :
  • Les triggers exécutés sur le client. Ces triggers sont équivalent au mode Classic et sont manipulés par programmation.
  • Les triggers Serveur exécutés sur le serveur. Ces triggers sont associés à des procédures stockées présentes sur le serveur. Ces triggers sont définis directement dans l'analyse (pour une utilisation avancée, ils peuvent être également définis et manipulés par programmation). Pour plus de détails, consultez Les triggers serveur.
Remarque : Triggers et threads : Si des fonctions déclenchent des triggers dans des threads différents, la procédure exécutée dans le trigger utilise le contexte HFSQL correspondant à celui de la fonction en cours (un contexte HFSQL par thread).

Avantages

L'utilisation d'un trigger permet de :
  • Diminuer la taille du code. Par exemple, les traitements associés à une ou plusieurs fonctions HFSQL (vérification de doublon, test de cohérence des données, ...) peuvent être regroupés grâce à l'utilisation d'un trigger.
  • Simplifier la lecture du code .
  • Simplifier les évolutions futures de l'application.
Attention : Une modification de fichier qui passe par une requête ne déclenche pas les triggers client (constante hModifieFichier utilisée dans HExécuteRequête).
Types de triggers disponibles
Deux types de trigger sont disponibles :
  • Les triggers "AVANT" :
    Un trigger "AVANT" est appelé avant l'exécution d'une fonction HFSQL (HAjoute, HModifie, HSupprime, ...) ou une fonction de gestion des champs Table fichier.
    Un trigger "AVANT" permet par exemple de vérifier la cohérence des données des rubriques d'un enregistrement. Avec ce type de trigger, il est possible d'initialiser une variable HFSQL pour annuler l'exécution de la fonction HFSQL associée.
  • Les triggers "APRÈS" :
    Un trigger "APRÈS" est appelé après l'exécution d'une fonction HFSQL (sauf si le programme a été interrompu pendant l'exécution de cette fonction) ou une fonction de gestion des champs Table fichier.
    Un trigger "APRÈS" permet par exemple de gérer le traitement des erreurs.
Liste des exemples associés :
WD Trigger Exemples didactiques (WINDEV) : WD Trigger
[ + ] Cet exemple montre comment utiliser les triggers avec WINDEV.
Un trigger est une procédure en WLangage appelée automatiquement par le moteur HFSQL à chaque exécution d'une fonction HFSQL.

Dans cet exemple, nous abordons deux thèmes principaux :
1/ comment brancher un trigger sur une fonction HFSQL
2/ quel code utiliser dans la fonction appelée par le trigger.

Résumé de l'exemple livré avec WINDEV :
Cette application permet de saisir les notes de frais des collaborateurs d'une société.
Deux modes sont utilisables :
- le mode avec les droits en lecture/écriture
- le mode avec les droits en lecture seulement.
Ce sont les triggers qui permettront de contrôler l'accès aux fichiers en fonction du mode en cours.
Dans l'exemple, les triggers permettent également d'écrire dans un fichier journal les différents événements.
Ce fichier journal est directement consultable dans l'application.
Version minimum requise
  • Version 12
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale