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 :

[Interbase] [Trigger] Codage


Sujet :

InterBase

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 38
    Points : 18
    Points
    18
    Par défaut [Interbase] [Trigger] Codage
    Voici une partie de mon modèle physique de données :
    [img]C:\Documents and Settings\Florian\Bureau\mcp.jpg\[/img]
    Pour la table "Fournisseurs" j'ai fait ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TRIGGER "TRI_INSERT_FOURNISSEURS" FOR "FOURNISSEURS"
    ACTIVE BEFORE INSERT POSITION 0
    AS
    BEGIN
      IF (new.FOU_NUM IS NULL) THEN
      new.FOU_NUM = GEN_ID(GEN_FOURNISSEURS,1);
    END
     ^
    Pour la table "Representants" j'ai fait ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TRIGGER "TRI_INSERT_REPRESENTANTS" FOR "REPRESENTANTS"
    ACTIVE BEFORE INSERT POSITION 0
    AS
    BEGIN
      IF (new.REP_NUM IS NULL) THEN
      new.REP_NUM = GEN_ID(GEN_REPRESENTANTS,1);
    END
     ^
    Mais que dois-je faire comme code pour ma table "Representer"?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 38
    Points : 18
    Points
    18
    Par défaut Oppss mon image n'est pas venue...
    J'ai fait une erreur de frappe (mais je ne sais pas laquelle), mon image n'apparait pas sur mon message... Je vais voir pour arranger ça.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 38
    Points : 18
    Points
    18
    Par défaut Ok j'ai compris mon erreur
    Je croyais qu'il était possible d'envoyer une image depuis mon disque dur. Ok je le problème c'est que je n'ai pas de site ou je peux heberger mon image, j'ai chercher mais ca prends du temps de s'enregistrer et poster une image quand aucun compte n'est créé...

    En attendant, pourrais-je l'envoyer a quelqu'un qui me la posterais?

    Si vous connaissez des hebergeurs (sans mot de passe) gratuit et simple d'utilisation ca me serait très utile...

    Merci!

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    J'imagine que "representer" est une table issu de la liaison entre Fournisseur et representant ?

    Et donc dans "representer" il doit y avoir les colonnes suivantes :
    FOU_NUM et FOU_NUM qui sont toutes deux des clé étrangères (foreign key).
    Le plus simple c'est de prendre comme clé primaire ces deux colonnes FOU_NUM et FOU_NUM ainsi tu n'as pas besoin de trigger ni de clé primaire séparée.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 38
    Points : 18
    Points
    18
    Par défaut Voila enfin ma photo de mon MCD
    Désolé du retard, je me suis enfin fait un site pour pouvoir passer des photo sur ce forum.

    Desolé de mon retard...

    Voici mon modèle physique de données:


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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Il me semblait avoir répondu ?
    "pas besoin de trigger".

    mais peut etre qu'il y a une autre question ??

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 38
    Points : 18
    Points
    18
    Par défaut Alors en résumé
    Alors en résumé, on peut dire qu'une table créée par une relation plusieurs à plusieurs (dans Interbase) n'a jamais de trigger?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Ce n'est pas spécifique à interbase...

    que mettrais tu comme traitement dans ce trigger ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 38
    Points : 18
    Points
    18
    Par défaut
    Justement, je ne voyais pas quoi mettre comme traitement. Donc si c'est pas spécifique à Interbase, cela veut dire que c'est général et que chaque fois que tu as une table générée par une relation plusieurs à plusieurs il n'y a pas de trigger à coder pour cette table?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Dans ta structure non.
    Car tu as mi en clé primaire REP_NUM, FOU_NUM. Ce qui veux dire que tu ne peux pas avoir un representant qui represente deux fois le même fournisseur.


    Mais imagine que tu fasses évoluer ta structure et que tu veuilles typer la relation. Par exemple Commercial / SAV.
    Donc ta table "representer" devient :
    REP_NUM,
    FOU_NUM,
    TYPE_RELATION

    Et tu peux imaginer qu'une même personne (representant) puisse être a la fois le correspondant commercial et le correspondant SAV. et donc dans ce cas tu ne peux pas mettre (REP_NUM, FOU_NUM) en clé primaire.

    Donc soit on met REP_NUM, FOU_NUM, TYPE_RELATION en clé primaire mais on peut également (pour avoir un identifiant plus petit réutilisable ailleur) créer un identifiant REPRESENTER_NUM (qui serait la clé primaire).
    Dans ce cas on creera bien un trigger pour le gérer cette identifiant.

    Donc on ne peux généraliser.... La règle de création de trigger n'est pas liée à la relation entre les tables mais plutot à la question suivante : ai-je besoin de manipuler des données de manière automatique sur modification / insertion / effacement d'une table ?

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/07/2007, 16h14
  2. [Interbase] [Triggers] jointure externe
    Par AnestheziE dans le forum InterBase
    Réponses: 9
    Dernier message: 17/11/2003, 17h17
  3. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 17h15
  4. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 17h49
  5. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 12h29

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