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

  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 089
    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 089
    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