|
|
|
|
|
- Triggers de même type
- Trigger sur les fonctions de manipulation des champs Table
- Variables permettant de gérer les triggers
HDécritTriggerServeur (Fonction) En anglais : HDescribeServerTrigger
Disponible 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.
SI HCréation(Cedex) = Faux ALORS
Erreur(HErreurInfo())
SINON
Info("Fichier créé")
FIN
SI HChangeRep(Cedex, ".\FRANCE\") = Faux ALORS Erreur(HErreurInfo())
SI HDécritTriggerServeur("CNX_TEST", "TriggerTEST", "ProcedureTEST", hTriggerAprès, ...
"Cedex", "HAjoute, HModifie") = Faux ALORS Erreur(HErreurInfo())
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ès | La procédure stockée est exécutée après la fonction HFSQL. | hTriggerAvant | La 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ès | La procédure stockée est exécutée après la fonction HFSQL | hTriggerAvant | La 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.NomFichier | Chaîne de caractères : Nom logique du fichier de données dont le trigger est activé | H.Action | Caractère initialisé à "A" pour un trigger Avant, "P" pour un trigger après. | H.FonctionTrigger | Chaî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é SaaSH.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.AFaire | Pendant 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
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|