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 :

[BCB5][IBX5.4]FOREIGN KEY ??!!


Sujet :

InterBase

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 109
    Points
    109
    Par défaut [BCB5][IBX5.4]FOREIGN KEY ??!!
    Bonjour,

    Je me retrouve avec le message d'erreur suivant "unsuccessful metadata updata object TEST_M is in use".
    Voici les differentes operations que j'effectue:

    Creation de ma table Maitre d'une clé primaire, et d'un champ unique.
    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
    22
    23
     
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("CREATE TABLE TEST_M");
    IBSQL->SQL->Add(" (NOM_M VARCHAR(50) NOT NULL,");
    IBSQL->SQL->Add(" CODE_TEST_M INTEGER NOT NULL,");
    IBSQL->SQL->Add(" VALEUR_M INTEGER)");
    IBSQL->ExecQuery();
    IBSQL->Transaction->CommitRetaining
     
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("ALTER TABLE TEST_M ADD");
    IBSQL->SQL->Add(" CONSTRAINT PK_TEST_M");
    IBSQL->SQL->Add(" PRIMARY KEY (NOM_M)");
    IBSQL->ExecQuery();
    IBSQL->Transaction->CommitRetaining();
     
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("ALTER TABLE TEST_M");
    IBSQL->SQL->Add(" ADD CONSTRAINT U_TEST_M");
    IBSQL->SQL->Add(" UNIQUE (CODE_TEST_M)");
    IBSQL->ExecQuery();
    IBSQL->Transaction->CommitRetaining();
    IBSQL->Close();

    Creation de ma table esclave d'une clé primaire, et d'un champ unique.
    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
    22
    23
     
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("CREATE TABLE TEST_E (");
    IBSQL->SQL->Add("CODE_TEST_M INTEGER NOT NULL, ");
    IBSQL->SQL->Add("NOM_E VARCHAR(50) NOT NULL, ");
    IBSQL->SQL->Add("CODE_TEST_E INTEGER NOT NULL, ");
    IBSQL->SQL->Add("VALEUR_E INTEGER)");
    IBSQL->ExecQuery();
    IBSQL->Transaction->CommitRetaining();
     
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("ALTER TABLE TEST_E");
    IBSQL->SQL->Add(" ADD CONSTRAINT PK_TEST_E");
    IBSQL->SQL->Add(" PRIMARY KEY (CODE_TEST_M, NOM_E)");
    IBSQL->ExecQuery();
    IBSQL->Transaction->CommitRetaining();
     
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("ALTER TABLE TEST_E");
    IBSQL->SQL->Add(" ADD CONSTRAINT U_TEST_E");
    IBSQL->SQL->Add(" UNIQUE (CODE_TEST_E)");
    IBSQL->ExecQuery();
    IBSQL->Transaction->CommitRetaining();
    et maintenat au moment de créer ma FOREIGN KEY...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("ALTER TABLE TEST_E");
    IBSQL->SQL->Add(" ADD CONSTRAINT FK_TEST_E");
    IBSQL->SQL->Add(" FOREIGN KEY (CODE_TEST_M)");
    IBSQL->SQL->Add(" REFERENCES TEST_M (CODE_TEST_M)");
    IBSQL->ExecQuery();
    IBSQL->Transaction->CommitRetaining();
    Je me retrouve avec l'erreur de ci dessus. Je n'y comprend rien.
    Avez vous une idée ???

    Merci d'avance.
    Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore"

  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 celà peux arriver avec IB6, et ca parrait alléatoir car celà marche en général...

    Il me semble que c'est un BUGG et qu'il a été corrigé dans Firebird1.5

    Celà eux également le faire en executant un script, votre code parait correcte.

    Vous avez essayé d'inverser les créations ?

    Par exemple d'abord la table bien entendu

    puis Cle uniques
    puis Primary
    puis foreign key ?

    Et de faire un commit à la place d'un commitRetaining ? (Normalement ca doit rien changer mais bon.. vu qu'il n est pas contant parqu'il y a une personne qui semble utiliser la table en fermant la transaction, il n'y a plus personne ni en lecture ni en ecriture.......)

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    Apres réinstallation de notre serveur, et redemarrer le poste client cela fonctionne correctement, a ne rien ni comprendre ???

    J'espere que cela n'arrivera pas trop souvent chez nos clients ??!!

    Merci et bonne journée.
    Les deux mots les plus brefs et les plus anciens, oui et non, sont ceux qui exigent le plus de réflexion. "Pythagore"

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

Discussions similaires

  1. [FOREIGN KEY] petite question bete ...
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 16h35
  2. Probleme 'ALTER TABLE' et 'FOREIGN KEY'
    Par maahta dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/09/2003, 14h25
  3. [IB71] Je ne peux plus supprimer mes foreign key...
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 3
    Dernier message: 19/09/2003, 14h39
  4. [postgresql][foreign key]
    Par elea1206 dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/08/2003, 12h07
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

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