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

InterBase Discussion :

Trigger : Message d'erreur


Sujet :

InterBase

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut Trigger : Message d'erreur
    Bonjour,

    Je crée des trigger dymamiquement depuis une application delphi. La plupart du temps tout fonctionne bienmais de temps en temps interbase semble ne pas apprécier. En effet, impossible de valider les modifications, les suppression ne sont plus possibles, les créations non plus.

    Le message d'erreur en question est lui aussi surprenant (en tout cas pour moi) : too many versions.

    J'utilise IBAdmin4.

    Quelqu'un a déja rencontré ce problème ? Quelqu'un peu t il m'éclairer ?

    D'avance merci.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Oui arrivée à plus de 256 modifications sur un objet Interbase ne sais plus gérer.
    Ce versionning est à mon avis utilisé pour bien gérer les transactions.
    Une modification n'est pas applicables aux transactions déjà ouvertes et qui sont en mode snapshot.

    Des triggers dynamiques c'est un peu osée... Qu'est ce qui justifie un tel arcenal ?

    Pour résoudre votre probleme il suffit de faire un backup suivi d'un restaure et les compteurs sont remis à zero.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Bonjour et merci pour toutes ces informations.

    En fait je ne supprime qu'un triger (After insert) pour le recréer avec d'autres critères de déclenchements, choisis par l'utilisateur de mon application.

    J'éffectue un stage en ce momment et je developpe un utilitaire récupérent les informations (demandées par l'utilisateur à l'aide du trigger) d'une table qui elle meme récupère l'ensemble des données relatives au fonctionnement de machines industrielles.

    Mon appli cert de moyen de contrôle. Elle peut donc récupérer les informations relatives à une machines en particulier, puis plus tard récupérer les informations d'une autre machine pour vérrifier si tout fonctionne bien. D'ou l'interet d'un trigger que l'on puis "parametrer".

    Mais si mon appli fait planter la base ca m'arrange pas des masses !
    Pourrais- je avoir plus de précisions sur le sujet , du style est -ce que je peut "remettre à zéro" le compte des modifications effectuées ?

    en tout cas déja un grand merci .

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Je ne vois pas bien l'utilité d'utiliser un trigger ...

    Pourquoi ne pouvez vous pas utiliser un simple select pour récupérer vos données au moment ou vous voulez faire le controle ?

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    j'utilise le trigger pour récupérer dans une table un "petit" nombred'informations à partir d'une table qui elle en receuille un grand nombre (ca peu aller jusqu'à 7000 ou 8000 par jours).

    J'utilise ensuite des select pour filtrer ma table (la pus petite) pour ensuite repérer un disfonctionnement d'une machine en regardant en profondeurles données que j'ai selectionnées à partir de mon trigger.

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    j'effectue ce stage dans le millieu industriel. Les données sont relatives aux machines de fabrication dans les usines.

  7. #7
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Je ne comprend toujours pas l'utilitée du trigger... A la vue de ce que vous me dites un simple select permet d'extraire rapidement les données à analyser suivant le critère donné par l'utilisateur...

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    L'utilisation d'un trigger permettrais de "configurer" les critères de selection de l'utilisateur et éviterais ainsi d'avoir trop de travail à faire avant de pouvoir visualiser les données qu'il recherche.

    Au démarage de l'appli, avec un trigger, il aura sous les yeux toutes les données qu'il aura ultérieurement décidé.

    Sans le trigger, il devra saisir ses critères à chaque fois qu'il lancera l'application, d'ou mon envie de pouvoir contourner mon petit désagrément provoqué par interbase.

  9. #9
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Créer ou modifier dynamiquement des objets n'est pas tres normalisé et peu recommandé, car chaque modification et utilisation du langage de manipulation de la structure peut mettre en danger la base et donc ses données. Ce n'est pas fait pour ca.

    Créez une table qui contiendra les critères à appliquer. Au lancement de l'écran de surveillance, les derniers critères sont lus à partir de cette table et la requete est contruite en conséquence. Cette requete est lancée et le tour est joué. Mieux, il peux modifier ses critères à postériori (s'il s'apperçoit qu'il s'était trompé la veille en les initilisants... Alors qu avec le trigger ce n'est pas possible, il faudrait remonter le temps refaire le trigger et revenir dans le futur.. Or a ma connaissance ce n'est pas encore possible (sauf pour superman mais bon ça c'est une autre histoire...)
    Pas de réplication inutile des données et pas de manipulation de triggers...

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    effectivement, j'avais résolut ce problème "temporel" à partir du code de mon application.

    Je vais appliquer votre solution.

    Merci pour les conseils et les explications.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Message d'erreur lors de l'utilisation d'un trigger
    Par jybo71 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 24/06/2014, 09h23
  2. [SQLK][Trigger DDL]Ne pas montrer de message d'erreur
    Par elsuket dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 10/08/2007, 07h53
  3. Réponses: 4
    Dernier message: 04/03/2003, 01h05
  4. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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