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

PowerAMC Discussion :

PowerAMC MCD -> MPD : Erreur = Nom des liens tronqués en double !


Sujet :

PowerAMC

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 5
    Points : 4
    Points
    4
    Par défaut PowerAMC MCD -> MPD : Erreur = Nom des liens tronqués en double !
    Bonjour à tous,

    Je génère un MPD à partir de mon MCD jusque là tout va bien. Le MPD est généré pour SQL Server 2000. Je génère ensuite le script de création de la base (.sql).

    Lors de l'exécution du script SQL, des erreurs apparaissent. après recherche il apparait que PowerAMC a généré des liens (relations) portant le même nom dans le MPD (plusieurs liens ont le même nom dans le MPD). Par conséquent, dans le fichier SQL on retrouve des contraintes ayant un nom identique (alors que ce n'est pas le cas). J'ai l'impression que PowerAMC limite la taille pour le nom des relations et fait des raccourcis dans le nommage sans contrôle...

    Dans le fichier SQL on retrouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    alter table LIEN_DIACRE_CL
       add constraint FK_LIEN_DIA_LIEN_DIAC_T_DIACRE foreign key (ID_DIACRE)
          references T_DIACRE (ID_DIACRE)
    go
    
    alter table LIEN_DIACRE_DIOCESE
       add constraint FK_LIEN_DIA_LIEN_DIAC_T_DIACRE foreign key (ID_DIACRE)
          references T_DIACRE (ID_DIACRE)
    go
    on voit ici deux contraintes "FK_LIEN_DIA_LIEN_DIAC_T_DIACRE" ayant le même nom !!!

    Dans mon MCD, ces liens sont les qui se situent entre une association et une entité (0,n) et je n'ai, après recherche, aucun moyen de contrôler le nommage de ces liens lors du passage du MCD vers MPD....

    si qqun pouvait me venir en aide......

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour Georgemel,

    Manifestement PowerAMC prend l’initiative de tronquer quand le nom de la contrainte dépasse 30 caractères.
    Soit vous demander à l’éditeur de l’AGL de lever cette limite (qui n'est ni légale ni légitime...)
    Soit vous raccourcissez le nom des liens d’association au niveau du MCD, ce qui dans tous les cas de figures est quand même souhaitable.

    Bon courage,

    Fsmrel
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonsoir,

    Il me semblait pourtant que la limite des noms était 254 car. par défaut.

    1 solution pour contourner le pb serait de changer le nom de la contrainte avant de générer le script de création de la base.
    Il est possible de modifier le nom de la contrainte en double cliquant sur le lien ds le MPD. Puis ds l'onglet intégrité, éditer le champ nom de contrainte.

    A +

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 5
    Points : 4
    Points
    4
    Par défaut suite...
    Merci pour les réponses. Oui, par défaut la limite est 254 caractères... d'où mon incompréhension. Je veux en effet faire les modif sur le MCD et uniquement sur le MCD (car en cas de changement du MCD, je rechange pas tt les liens en défaut dans le MPD) mais quand on fait une association entre deux tables dans le MCD, il n'existe pas de nom pour les liens...ils n'éxistent que dans le MPD !

    il y a bien une option "seuil FK" dans les paramètres de passage du MCD au MPD mais cela ne change rien... d'où mes demandes sur le forum...

  5. #5
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    re,

    Je pense que c'est ds les options du SGBD cible qu'il faut changer les longueurs limites des contraintes.
    -Propriétés du SGBD/script/objet/...
    attribut ''maxlen''
    (ou direct ds le fichier .xdb si tu es joueur)
    Je n'ai jamais dépassé 30 caractères de long, comme je n'aime pas les noms de contrainte auto-générés. Je renseigne des noms selon mes règles de nommage, et ensuite je génère des modifs de MPD plutôt que des créations, ce qui me dispense de tt renmmer à chaque génération.

    Citation Envoyé par georgemel
    il y a bien une option "seuil FK" dans les paramètres de passage du MCD au MPD mais cela ne change rien...
    Oui...Mais non () Ca c'est utilisé avec la volumétrie, pour déterminer si oui ou non la FK doit être indexée.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je me permet de "upper" ce topic, car je n'ai pas trouvé comment augmenter la taille max troncage...

    meme avec le dernier post de TheLeadingEdge


  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour
    nous avons le même problème.
    Par ailleurs, comment définir ses propres règles : quelle variable pour le nom de la table parent/enfant ?
    Je renseigne des noms selon mes règles de nommage

    J'ai vu %TABLE% pour un nom d'index, mais comment distinguer les deux tables concernées par la contrainte ? Peut-on éviter de récupérer aussi d'office le nom de l'association du MCD, pour ne pas arriver rapidement à 30 caractères ?

    Merci
    msomso

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour
    en chechant bien, j'ai trouvé la réponse dans le post:
    "Power AMC definir le nom des contraintes par defaut"

    msomso

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Je fournis le lien, ça peut servir pour tout le monde...

    http://www.developpez.net/forums/sho...d.php?t=349863
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 254
    Points : 80
    Points
    80
    Par défaut
    Bonjour
    Nous avons résolu notre problème de nommage des contraintes.
    Par contre comment paramétrer le nommage des multiples colonnes des clés étrangères migrées dans les tables enfants:

    Ex. mes deux tables sont PARENT et CHILD.
    J'ai déclaré 3 contraintes d'intégrité entre elles.
    Le script généré est:
    Code : 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
    19
    20
    21
    create table PARENT  (
       AA                   NUMBER  not null,
       AB                   NUMBER,
       constraint PK_PARENT primary key (AA)
    )
    /
    
    create table CHILD  (
       BA                   NUMBER  not null,
       AA                   NUMBER,
       PAR_AA               NUMBER,
       PAR_AA2              NUMBER,
       constraint PK_CHILD primary key (BA),
       constraint FK_CHILD_XXX_PARENT foreign key (AA)
             references PARENT (AA),
       constraint FK_CHILD_YYY_PARENT foreign key (PAR_AA)
             references PARENT (AA),
       constraint FK_CHILD_ZZZ_PARENT foreign key (PAR_AA2)
             references PARENT (AA)
    )
    Dans l'ex ci-dessus on a les 3 colonnes héritées:
    • CHILD.AA
    • CHILD.PAR_AA
    • CHILD.PAR_AA2

    Sauriez-vous comment le paramétrer ?
    L'idéal serait pour nous de récuperer le nom de la relation, donc:
    • CHILD.AA_XXX
    • CHILD.AA_YYY
    • CHILD.AA_ZZZ


    Je n'arrive vraiment pas à le trouver ...

    Merci
    msomso
    P.S.
    Comment intégrer les images/copies écran dans les posts ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/01/2015, 09h59
  2. erreur editeur des liens
    Par elmouvic dans le forum C++
    Réponses: 6
    Dernier message: 04/03/2013, 12h54
  3. [Lazarus] Erreur édition des liens (linking) dans programme d'essais mysql
    Par over_score dans le forum Lazarus
    Réponses: 1
    Dernier message: 13/07/2009, 10h51
  4. Erreur édition des liens
    Par vinzzzz dans le forum Fortran
    Réponses: 7
    Dernier message: 18/04/2007, 16h10
  5. passage nom des contraintes de MPD au script de création BD
    Par marièmdiaw dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 14/01/2005, 13h18

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