|
|
|
|
- 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.
// 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è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). Nouveauté 28
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, ... ) 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 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.Action | Caractère initialisé à "A" pour un trigger Avant, "P" pour un trigger Après. | 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" | H.FonctionTrigger | Chaîne de caractères : Nom de la fonction HFSQL qui a déclenché le trigger. | H.NomFichier | Chaîne de caractères : Nom logique du fichier de données dont le trigger est activé. | Remarque : Si une fonction HFSQL a un trigger AVANT et un trigger APRES, alors si le trigger AVANT annule la fonction (en positionnant H.AFaire à "A") le trigger APRES n'est pas déclenché. Classification Métier / UI : Code métier
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|