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 :

Ajouter les champs dans la table access


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut Ajouter les champs dans la table access
    Bonjour

    je cherche un code qui me permet d'ajouter les champs dans la table access sous c++ builder
    merci d'avance

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Il suffit d'exécuter une requête SQL ALTER TABLE sur ta base de donnée avec un composant TQuery.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    Bonjour,
    a l'aide de votre aide j'ai réussie a construire ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     AnsiString a=Edit1->Text;
     
    AnsiString   b = "ALTER TABLE essai  ADD "+QuotedStr(a)+" char (50);" ;
     
     
       Form2->Query1->SQL->Clear();
       Form2->Query1->SQL->Add(b);
     
       Form2->Query1->ExecSQL();
    je veut ajouter 2 champs le premier le contenu de Edit1->Text plus le mot quantité et le 2eme champ Edit1->Text plus le mot valeur.
    j'ai tombé dans cette erreur quand j'ai ajoutée le mot quantité comme ce ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AnsiString   b = "ALTER TABLE essai  ADD "+QuotedStr(a)+"Quantité"+" char (50);" ;
    "Erreur de syntaxe dans la définition de champ, erreur sql générale".
    merci d'avance pour votre aide

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Je te déconseille l'utilisation des accents ("é") dans ta base de donnée, mais ce n'est qu'un conseil.
    Pour ta requête, essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AnsiString   b = "ALTER TABLE essai  ADD " + QuotedStr(a+"Quantité") + " char (50);" ;

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    On peut aussi l'écrire autrement !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AnsiString b = Format(
      "ALTER TABLE essai ADD %s char (50);",
      ARRAYOFCONST((QuotedStr(Edit1->Text + "Quantité"))));
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AnsiString b = Format(
      "ALTER TABLE essai ADD %s char (50);",
       OpenArray<TVarRec>(Edit1->Text + "Quantité"), 0);
    J'ai toujours trouvé dommage que QuotedStr ajoute des guillemets ( ' ) au début et à la fin, souvent, je ne voulais que doubler ceux au milieu pour écrire ceci directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AnsiString b = Format(
      "ALTER TABLE essai ADD '%sQuantité' char (50);",
      ARRAYOFCONST((RepeatQuote(Edit1->Text))));
    RepeatQuote pouvant être coder avec un simple StringReplace !

    Certains DB ne supporte pas le double '' mais \'
    D'autres DB utilise ' comme délimiteur de chaine pas pour les noms de champ entre " ou `
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    Bonjour, merci pour vos réponse
    dans le cas ou le champ existe déjà, une erreur de sql générale s'affiche.
    alors j'ai modifiée mon code:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    bool test=true;
         AnsiString a=Edit1->Text;
       for(int i=1;i< Table22->FieldCount;i++)
       {
       if( (Table22->Fields->Fields[i]->AsString== "'"+a+" QTE"+"'")||(Table22->Fields->Fields[i]->AsString== "'"+a+" Val"+"'"))
         {
           test=false;
     
         }
         }
         if(test==true)
         {
     
    AnsiString   b = "ALTER TABLE essai  ADD "+QuotedStr(a+" QTE")+" int ;" ;
     
     
       Form2->Query1->SQL->Clear();
       Form2->Query1->SQL->Add(b);
     
       Form2->Query1->ExecSQL();
     
     
    AnsiString   c = "ALTER TABLE essai  ADD "+QuotedStr(a+" Val")+" float ;" ;
     
     
       Form2->Query1->SQL->Clear();
       Form2->Query1->SQL->Add(c);
     
       Form2->Query1->ExecSQL();
     
     }
     if(test==false)
     {
       MessageBox(Handle,"ce champ existe déja ?",
     "Confirmation",MB_OKCANCEL|MB_ICONSTOP ) ;
     }
    mais toujours la même erreur, peut être les guillemets ( ' ) au début et à la fin qui provoquent cet erreur, est ce que il y a un moyen de les supprimer
    merci d'avance pour votre aide

Discussions similaires

  1. Ajout d'un champ dans une table Access
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 10/12/2007, 14h27
  2. ajouter un champ dans une table existant
    Par zidenne dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/10/2005, 21h27
  3. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39
  4. Réponses: 5
    Dernier message: 25/07/2005, 14h03
  5. Ajouter un champs dans une table (Access 2000)
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/10/2004, 13h02

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