DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Gestion des triggers / Fonctions WLangage
  • Triggers de même type
  • Trigger sur les fonctions de manipulation des champs Table
  • Variables permettant de gérer les triggers
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
HDécritTriggerServeur (Fonction)
En anglais : HDescribeServerTrigger
HFSQL Client/ServeurDisponible uniquement avec ce type de connexion
Ajoute ou modifie un trigger serveur. Un trigger serveur est une procédure stockée appelée automatiquement par le moteur HFSQL à chaque exécution d'une fonction HFSQL.
Remarque : Les fonctions de manipulation des triggers serveur sont des fonctions avancées. Les triggers serveur peuvent être créés directement dans l'éditeur d'analyses. Pour plus de détails, consultez Triggers serveur.
Exemple
// Création d'un fichier de données
SI HCréation(Cedex) = Faux ALORS
	Erreur(HErreurInfo())
SINON
	Info("Fichier créé")
FIN
// Changement de répertoire du fichier de données
SI HChangeRep(Cedex, ".\FRANCE\") = Faux ALORS Erreur(HErreurInfo())

// Création d'un trigger sur un fichier de données HFSQL Client/Serveur
SI HDécritTriggerServeur("CNX_TEST", "TriggerTEST", "ProcedureTEST", hTriggerAprès, ...
	"Cedex", "HAjoute, HModifie") = Faux ALORS Erreur(HErreurInfo())
// Ajout d'enregistrements
Cedex.CodePostal = "30000"
Cedex.Ville = "NIMES"
HAjoute(Cedex)
Cedex.CodePostal = "34000"
Cedex.Ville = "MONTPELLIER"
HAjoute(Cedex)
Syntaxe

Décrire un trigger serveur (fichiers logiques) Masquer les détails

<Résultat> = HDécritTriggerServeur(<Trigger> , <Procédure stockée> , <Type du trigger> , <Fichiers logiques HFSQL Client/Serveur> [, <Liste de fonctions HFSQL>])
<Résultat> : Booléen
  • Vrai si l'opération a été réalisée,
  • Faux en cas de problème. La fonction HErreurInfo permet d'identifier l'erreur.
<Trigger> : Chaîne de caractères
Nom du trigger à créer. Ce nom sera utilisé pour manipuler le trigger dans les différentes fonctions de gestion des triggers serveur.
<Procédure stockée> : Nom de procédure
Nom de la procédure stockée WLangage qui sera exécutée lors du déclenchement du trigger. Cette procédure ne prend aucun paramètre.
<Type du trigger> : Constante de type Entier
Indique le type du trigger.
hTriggerAprèsLa procédure stockée est exécutée après la fonction HFSQL.
hTriggerAvantLa procédure stockée est exécutée avant la fonction HFSQL.
<Fichiers logiques HFSQL Client/Serveur> : Chaîne de caractères
Nom logique de un ou plusieurs fichiers de données HFSQL Client/Serveur. Pour indiquer plusieurs noms, séparez les noms des fichiers de données par une virgule (",").
<Liste de fonctions HFSQL> : Chaîne de caractères optionnelle
Nom d'une ou de plusieurs fonctions HFSQL ou TableXXX sur lesquelles le trigger doit être mis en place. Pour indiquer plusieurs noms de fonctions, séparez les noms des fonctions par une virgule (","). Il est possible de définir des triggers sur les fonctions suivantes :Les triggers sont également exécutés sur les requêtes INSERT (trigger de la fonction HAjoute), UPDATE (trigger de la fonction HModifie), DELETE (trigger de la fonction HSupprime).

Décrire un trigger serveur sur des fichiers physiques associés à une connexion Masquer les détails

<Résultat> = HDécritTriggerServeur(<Connexion> , <Trigger> , <Procédure stockée> , <Type du trigger> [, <Fichiers physiques HFSQL Client/Serveur> [, <Liste de fonctions HFSQL>]])
<Résultat> : Booléen
  • Vrai si l'opération a été réalisée,
  • Faux en cas de problème. La fonction HErreur permet d'identifier l'erreur.
<Connexion> : Chaîne de caractères ou variable de type Connexion
Connexion à manipuler. Cette connexion correspond :
<Trigger> : Chaîne de caractères
Nom du trigger à créer. Ce nom sera utilisé pour manipuler le trigger dans les différentes fonctions de gestion des triggers serveur.
<Procédure stockée> : Nom de procédure
Nom de la procédure stockée WLangage qui sera exécutée lors du déclenchement du trigger. Cette procédure ne prend aucun paramètre.
<Type du trigger> : Constante de type Entier
Type du trigger à créer :
hTriggerAprèsLa procédure stockée est exécutée après la fonction HFSQL
hTriggerAvantLa procédure stockée est exécutée avant la fonction HFSQL
<Fichiers physiques HFSQL Client/Serveur> : Chaîne de caractères optionnelle
Nom physique de un ou plusieurs fichiers de données HFSQL Client/Serveur associés à la connexion (par exemple "CLIENT.FIC"). Pour indiquer plusieurs noms, séparez les noms de fichiers de données par une virgule (","). Si ce paramètre n'est pas précisé ou est égal à une chaîne vide (""), le trigger sera activé sur tous les fichiers de données de la base.
<Liste de fonctions HFSQL> : Chaîne de caractères optionnelle
Nom d'une ou de plusieurs fonctions HFSQL ou TableXXX sur lesquelles le trigger doit être mis en place. Pour indiquer plusieurs noms de fonctions, séparez les noms des fonctions par une virgule (","). Il est possible de définir des triggers sur les fonctions suivantes : Les triggers sont également exécutés sur les requêtes INSERT (trigger de la fonction HAjoute), UPDATE (trigger de la fonction HModifie), DELETE (trigger de la fonction HSupprime).

Créer un trigger à partir de la description faite dans l'analyse Masquer les détails

<Résultat> = HDécritTriggerServeur(<Connexion> , <Trigger>)
<Résultat> : Booléen
  • Vrai si l'opération a été réalisée,
  • Faux en cas de problème. La fonction HErreur permet d'identifier l'erreur.
<Connexion> : Chaîne de caractères ou variable de type Connexion
Connexion à manipuler. Cette connexion correspond :
<Trigger> : Chaîne de caractères
Nom du trigger décrit dans l'analyse.
Remarques

Triggers de même type

Si plusieurs triggers de même type sont définis sur le même fichier de données pour une même opération, ces triggers seront exécutés dans l'ordre alphabétique de leur nom.

Trigger sur les fonctions de manipulation des champs Table

Les fonctions de manipulation des champs Table (TableAjoute, TableAjouteLigne, TableSupprime, TableModifie, etc. ) utilisent implicitement les fonctions HFSQL suivantes HAJoute, HSupprime et HModifie.
Lors de l'utilisation d'une de ces fonctions de manipulation des champs Table, si un trigger est défini pour la fonction HFSQL correspondante, le trigger est automatiquement déclenché.

Variables permettant de gérer les triggers

Une procédure (ou une procédure stockée) de type trigger ne reçoit aucun paramètre. Toutefois, un certain nombre de variables d'état HFSQL sont positionnées avant chaque appel :
H.NomFichierChaîne de caractères : Nom logique du fichier de données dont le trigger est activé
H.ActionCaractère initialisé à "A" pour un trigger Avant, "P" pour un trigger après.
H.FonctionTriggerChaîne de caractères : Nom de la fonction HFSQL qui a déclenché le trigger.
Avertissement
La variable H.FonctionTrigger est dépréciée au profit de la variable H.NuméroFonctionTrigger. L'information donnée par la variable est indépendante de la langue utilisée pour l'exécution de l'application.
Nouveauté SaaS
H.NuméroFonctionTrigger
Constante permettant de connaître la fonction qui a déclenché le trigger :
  • htrgHAjoute : La fonction qui a déclenché le trigger est HAjoute.
  • htrgHEcrit : La fonction qui a déclenché le trigger est HEcrit.
  • htrgHModifie : La fonction qui a déclenché le trigger est HModifie.
  • htrgHRaye : La fonction qui a déclenché le trigger est HRaye.
  • htrgHSupprime : La fonction qui a déclenché le trigger est HSupprime.
H.AFairePendant l'exécution d'un trigger avant :
  • annulation de l'exécution de la fonction HFSQL en cours en affectant "A" à la variable d'état HFSQL : H.AFaire = "A". Dans ce cas, l'action n'est pas effectuée et la fonction (HAjoute, HModifie, etc.) renvoie Vrai (pas d'erreur).
  • annulation de l'exécution de la fonction HFSQL en cours en affectant "E" à la variable d'état HFSQL : H.AFaire = "E". Dans ce cas, l'action n'est pas effectuée et la fonction (HAjoute, HModifie, etc.) renvoie Faux. Le message d'erreur est le suivant : "L'action sur le fichier XXX a été interrompue par le trigger".

Remarque : Dans le cas où un trigger "AVANT" et un trigger "APRÈS" sont associés à une fonction HFSQL, si le trigger "AVANT" annule l'exécution de la fonction HFSQL (en positionnant H.AFaire à "A") le trigger "APRÈS" n'est pas déclenché.
Classification Métier / UI : Code métier
Composante : wd300hf.dll
Version minimum requise
  • Version 12
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 22/08/2024

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