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

C++Builder Discussion :

Création multiple table paradox dans le code


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut [RESOLU] Création multiple table paradox dans le code
    salut,

    Voila mon probleme : je construit ma base de donnee paradox suivant le code ci dessous (ca marche tres bien)
    Puis je veux en faire une deuxieme et ....

    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
     
      // on peut créer la base
      FormPrincipale->TableBase->Active = false; // Le composant Table ne doit pas être actif
      FormPrincipale->TableBase->DatabaseName = ""; // laisser vide cherche la base dans le repertoire actuel
      FormPrincipale->TableBase->TableType = ttParadox;
      FormPrincipale->TableBase->TableName = NomBase;
     
      if (!FormPrincipale->TableBase->Exists) // Ne remplace pas une table existante
      {
        FormPrincipale->TableBase->FieldDefs->Add("Numero",ftAutoInc,0,false); // ERREUR
        FormPrincipale->TableBase->FieldDefs->Add("Titre",ftString,100,false);
        FormPrincipale->TableBase->FieldDefs->Add("Auteur",ftString,100,false);
        FormPrincipale->TableBase->FieldDefs->Add("Reference",ftString,100,true);
        FormPrincipale->TableBase->FieldDefs->Add("Clef",ftString,100,true);
        FormPrincipale->TableBase->FieldDefs->Add("Date",ftInteger,0,false);
        //FormPrincipale->TableBase->FieldDefs->Add("Lien",ftString,100,false);
     
        // Maintenant que vous avez spécifié votre choix, création de la table
        FormPrincipale->TableBase->CreateTable();
      }
    Message d'erreur = Le champ Numero existe deja ! (Il semble vouloir utiliser la premiere base)


    Mais une erreur se produit lorsque je veux créer une deuxieme base. Apparement il faudrait deactiver la premier avant de créer la suivante.
    Comme fait on ? "TableBase->Active = false" ne semble pas etre suffisant !

    Si qqun sait quel bout de code il me manque pour que je puisse créer autant de base que je veux les une à la suite des autres !
    MERCI

  2. #2
    LFE
    LFE est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 95
    Points : 2 463
    Points
    2 463
    Par défaut
    le nom de la tble doit etre change aussi ...
    ou alors elle doit avoir ete effacee avant,

    Si j'ai boen compris ton probleme.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    oui j'explique en entier

    Je crée un base en demandant le nom à l'utilisateur. Une fois cette base crée je veux en créer une autre et que celle ci devienne la base utilisée !

    En gros j'ai la base A qui est en cours d'utilisation et je veux que la base B (que je crée avec mon code) devienne la base que l'on va utiliser

    Or lorsque je le fais, il plante à
    FormPrincipale->TableBase->FieldDefs->Add("Numero",ftAutoInc,0,false);

    car il essayer de rejouter un champ Numero à la base A (qui a deja un champ identique) alors que moi je veux que c'est nouveau champ soit pour la base B que je veux créer

    Plus clair ? j'espere sinon personne ne pourra m'aider

  4. #4
    LFE
    LFE est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 95
    Points : 2 463
    Points
    2 463
    Par défaut
    A mon avis, tu devrais fermer A,
    changer le nom de la table en B,
    ajouter les champs et la creer.

    Ceci dit sans avoir esayé, mais ca devrait marcher

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Et comment on "ferme" une base ?

    J'ai essayé active = false
    j'ai essayé close au dataset
    ....

  6. #6
    LFE
    LFE est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 95
    Points : 2 463
    Points
    2 463
    Par défaut
    active = false devrait etre suffisant

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Apparement non car je le fais avant de créer ma nouvelle table (voir code ci dessus)

    bon ben mistere

  8. #8
    LFE
    LFE est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 95
    Points : 2 463
    Points
    2 463
    Par défaut
    Tu fermes la table, mais sa structure est deja declaree, donc pas besoin d'ajouter a nouveau des champs exuitants dans la structure.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    tu avais raison !

    Avant de créer de nouvelles definitions de champs il faut nettoyer tout ca !

    Donc avant mon "if", il faut ecrire :

    FormPrincipale->TableBase->FieldDefs->Clear();

    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/08/2007, 13h52
  2. [VB.NET] Probleme de création d'une picturebox dans le code
    Par stringman62 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/02/2006, 17h56
  3. Comment trier une table paradox dans un Ttable sur un Dbgrid
    Par amireve dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/12/2005, 20h28
  4. sauver script de création de table temporaire dans la base
    Par Bruno75 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/10/2005, 18h09
  5. (VC++6 /C) Pb de création de table Paradox
    Par Vow dans le forum Paradox
    Réponses: 4
    Dernier message: 28/09/2004, 14h15

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