Bonjour
je cherche un code qui me permet d'ajouter les champs dans la table access sous c++ builder
merci d'avance
Bonjour
je cherche un code qui me permet d'ajouter les champs dans la table access sous c++ builder
merci d'avance
Il suffit d'ex�cuter une requ�te SQL ALTER TABLE sur ta base de donn�e avec un composant TQuery.
Bonjour,
a l'aide de votre aide j'ai r�ussie a construire ce code
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.
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();
j'ai tomb� dans cette erreur quand j'ai ajout�e le mot quantit� comme ce ci
"Erreur de syntaxe dans la d�finition de champ, erreur sql g�n�rale".
Code : S�lectionner tout - Visualiser dans une fen�tre � part AnsiString b = "ALTER TABLE essai ADD "+QuotedStr(a)+"Quantit�"+" char (50);" ;
merci d'avance pour votre aide
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);" ;
On peut aussi l'�crire autrement !
ou
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é"))));
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 %s char (50);", OpenArray<TVarRec>(Edit1->Text + "Quantité"), 0);
RepeatQuote pouvant �tre coder avec un simple StringReplace !
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))));
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
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:
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
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 ) ; }
merci d'avance pour votre aide
Partager