IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Chasse aux triggers


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Chasse aux triggers
    Bonjour à tous

    J'ai un soucis avec des triggers qui prennent des libertés !

    Sur un site 4 postes + serveur sous Firebird 2, sans que je ne sache pourquoi, certains triggers (toujours les 5 mêmes, je précise et attachés à la même table) se retrouvent inactifs, ce qui a pour effet assez gênant de provoquer des plantages en série. Il suffit de réactiver les triggers et tout refonctionne. Certes ! Mais ce n'est pas la bonne solution.

    J'ai passé tous les sources au peigne fin : aucune instruction de modifie ces 5 triggers (ensemble ou séparément). Une seule désactive tous les triggers de la base et les réactive tous, mais cette fonction n'est appelée qu'une fois en fin de mois. Or les plantages se produisent bien plus souvent.

    J'ai fait de même avec toutes les procédures : aucune ne modifie directement ou indirectement ces triggers

    J'ai fait encore de même avec les triggers : même résultat.

    Ce que j'aimerais savoir est s'il est possible de mettre en place un mouchard qui contrôlerait l'état actif ou non actif d'un (ou de plusieurs, mais un seul serait déjà génial) trigger et enverrait un message à l'écran de manière à, au moins, avoir une première idée de l'endroit où ce trigger est rendu inactif !

    Merci pour toute suggestion !

    Et petite question subsidiaire : qu'est ce qui, à part un "update", peut désactiver un trigger ?
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Comment garder une trace des Triggers Actifs/Désactifs ?
    En créant un Trigger voici une suggestion
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE TABLE ETAT_TRIGGERS
    ( NOM VARCHAR(31),
      ETAT SMALLINT,
      DH TIMESTAMP 
    );
    SET TERM ^ ;
     
    CREATE TRIGGER MODIF_TRIGGERS FOR RDB$TRIGGERS 
     ACTIVE 
     BEFORE UPDATE 
     POSITION 0 
    AS 
    BEGIN 
       INSERT INTO ETAT_TRIGGERS (NOM,ETAT,DH) VALUES (OLD.RDB$TRIGGER_NAME,NEW.RDB$TRIGGER_INACTIVE,CURRENT_TIMESTAMP); 
    END^
     
    SET TERM ; ^

    dans le programme : passer par un EVENT en plus ?
    Code SQL a ajouter dans le trigger : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    POST_EVENT ’Modification Trigger’; // ou POST_EVENT OLD.RDB$TRIGGER_NAME ?

    et bien sur il va falloir y coller (dans le programme) un gestionnaire d'évènements (xxibEventAlertxx)


    bon , bien sur , si tous les triggers sont désactivés , on aura pas trace de la 'réactivation' (sauf peut être a mettre une condition mais je crains la boucle)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/02/2010, 10h23
  2. Chasse aux Warnings générés par Utilcls.h
    Par JeanNoel53 dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2009, 19h41
  3. La chasse aux bugs (jeu d'Echecs)
    Par Sub0 dans le forum Développement 2D, 3D et Jeux
    Réponses: 117
    Dernier message: 06/11/2008, 09h46
  4. [Upload] la chasse aux dossiers vides
    Par tremeur53 dans le forum Langage
    Réponses: 4
    Dernier message: 16/11/2007, 17h54
  5. La chasse aux fuites de mémoire
    Par TocTocKiéLà? dans le forum Choisir un environnement de développement
    Réponses: 4
    Dernier message: 02/09/2007, 20h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo