je veut insérer une valeur dans une table d'une base de données.
jusque là tout parait simple, mais là ou je peut plus avanC c'est qd je veut lire une valeur d'un champs TEdit et puis integrer cette valeur dans la base.
que dois je faire ?
je veut insérer une valeur dans une table d'une base de données.
jusque là tout parait simple, mais là ou je peut plus avanC c'est qd je veut lire une valeur d'un champs TEdit et puis integrer cette valeur dans la base.
que dois je faire ?
faire des recherches sur :
1/ le SQL : INSERT INTO
2/ les composants orientés données : TDBEdit (controle DB dans la palette)
3/TQuery, TDataset, TDatasource
bon courage
voila ce que j'ai fait :
mais sa ne fonctionne pas. j'ai meme fait un etape intermediaire en inserant la valeur du TEdit dans une variable et puis mettre cette derniere dans la requette insert to . sa nr fonctionne pas non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 this->Query2->SQL->Clear(); this->Query2->SQL->Add("INSERT INTO Notes VALUES ( Edit1->Text.c_str())"); this->Query2->ExecSQL();
que puis je faire.
normale !!! Edit1 n'est pas considéré comme une variable ou reconnu
et il te manque les nom des champs !!
voici un exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 sql = "INSERT INTO client ( nom , adrs , ville , pays )"; sql = sql + " VALUES ( '" + Nom->Text + "','" + Adresse->Text + "','" + Ville->Text + "','" + Pays->Text + "' )" ;
en fait moi j'ai une liste de valeurs a insérer, mais la solution que j'ai trouvai ne me permet d'insérer que la première valeur puis il m'affiche un message d'erreur ... a votre avis que dois je changer : voici le 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 while((!Table1->Eof)||(!Table2->Eof)||(!Table3->Eof)) { note2 = Table2->FieldByName("moyenne")->AsString; note1 = Table1->FieldByName("moyenne")->AsString; if(note1==note2) compa=1; else compa=0 ; Memo1->Lines->Add(note1+"___"+note2+"_____ compa="+compa); this->Query2->SQL->Clear(); this->Query2->SQL->Add("INSERT INTO Notes VALUES ( , '" + compa + "')") ; this->Query2->ExecSQL(); Table2->Next(); Table1->Next(); Table3->Next(); }
Salut nousss
Tu a deja poste sur le meme sujet ici
Ce n'est pas de reposter plusieurs fois qui apportera la reponse
Tu donne le minimum d'info
On va donc t'arracher ces infos
Quel type de base utilise tu
Combien de tables
Quels types de champs, texte, numerique...
Quels champs dans quelle table
Quand tu ecrit "INSERT INTO Notes VALUES ( Edit1->Text.c_str())", que contient Edit1, du texte un entier ..., le champ dans lequel tu ecrit est declare en texte, numerique...
Un probleme bien pose est un probleme a moitie resolu
as tu lu ce que j'ai ecris comme solution ?
l'exemple permet d'insérer 4 valeur !!
quant tu écris ca :
INSERT INTO Notes VALUES ( , '" + compa + "')"
ca veut que tu veux inserer qqch dans la table notes dans les champrs :
rien et compta ? mais tu dis pas quoi
relis mon exemple
Bily.sdi : en fait sur ton exemple il permet de charger les 4 champs d'une table mais ce que je veut faire moi, c'est que ma base a un seul champs mais je veut le remplir pour plusieurs lignes de cette base exemple : ma base c'est la DB1 elle a une table nomée Notes et dans cette table il y un seul champs moyenne, et je ve le remplire pour un nombre bien précis d'étudiant d'ou ma boucle while.
j'ai essaye de testé ton exemple mais il me génére plus d'erreur que le premier il me demande de definir ce que c'est SQL et plein d'autre erreur.
en fait je dois le definr comment le sql.
de plus j'ai mis la valeur du champs Edit dans une variable intermedière et pui j'ai mis cette derniere dans la requette et c'est là ou sa recoince .
pour repondre aux questions de blondelle :
* j'utilise la base de données avec Access.
* le nombre de table variant mais sur mon exemple il est de une table.
* ce que je veut inserer peut etre numerique comme il peut texte parce que sa depond des champs.
que dois je faire.
Tu dis que ta méthode coince mais tu ne dis pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for ( int i=0; i<max; i++) { sql = "INSERT INTO Notes ( moyenne )"; sql = sql + " VALUES ( '" + moyenne + "'") ; Query1->Active = false; Query1->SQL->clear(); Query1->SQL->Add( sql ); Query1->Active=true; //OU Query2->ExecSQL(); }
qu'elle est ton message d'erreur ??
l'exemple du dessus dois fonctionner
est ce que il n'y a pas une bibliothèque qu'il faut declarer et puis comment je dois declarer le sql.
merci
Bonjour, un minimum de cherches serait le bienvenu malgré tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2AnsiString sql ="";
croyez moi j'ai tout essayer mais sa ne fonctionne pas !!!
Vous n'avez probablement pas tout essayer
1/ merci de poster le code élargi posant problème
2/ d'indiquer la ligne provoquant l'erreur
3/ donner le message d'erreur à la compilation, à l'execution ou le comportement inadéquat.
Cordialement
nouss,
tu as surement un problème de lien entre tes composants !?
regarde ici g posté qqch :
http://www.developpez.net/forums/sho...d.php?t=540471
say , pour ton dernier msg
Ils savent que c'est possible mais ils ne le font pas (developpez.com)![]()
j'ai pu résoudre une partie de mes problèmes, en fait il fallait ce focaliser sur les colonnes des Id des tables.
Partager