bonjour ;
je programme avec c++builder6 j'ai crée une table TTable1 elle contient nom, prénom, adresse et nombre mon but je veux faire la somme de la colonne nombre le résultat s'affiche dans case ou dans un Edit.
merci pour votre aide
Version imprimable
bonjour ;
je programme avec c++builder6 j'ai crée une table TTable1 elle contient nom, prénom, adresse et nombre mon but je veux faire la somme de la colonne nombre le résultat s'affiche dans case ou dans un Edit.
merci pour votre aide
Salut bicha_27
Dans une boucle tu recupere les donnees de ton champ et tu traite ton calcul
Un exempe qui empli un Tmemo et un TStingGrid
Code:
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
37
38
39
40 void __fastcall TForm1::Button1Click(TObject *Sender) { int id = 0; AnsiString nom = ""; AnsiString prenom = ""; int option = 0; Memo1->Clear(); // ouverture connexion, bdd et table // Session1->Open(); // Database1->Open(); ADOTable1->Open(); // on se positionne au début ADOTable1->First(); int I = 1; int J = 1; // on parcourt la table while(!ADOTable1->Eof) { // on récupère les champs nom et prénom id = ADOTable1->FieldByName("id")->AsInteger; nom = ADOTable1->FieldByName("nom")->AsString; prenom = ADOTable1->FieldByName("prenom")->AsString; option = ADOTable1->FieldByName("option")->AsInteger; // on ajoute une ligne à notre mémo Memo1->Lines->Add(IntToStr(id) + " " + nom + " " + prenom + " " + option); StringGrid1->Cells[I][J] = ADOTable1->FieldByName("id")->AsInteger; StringGrid1->Cells[I + 1][J] = ADOTable1->FieldByName("nom")->AsString; StringGrid1->Cells[I + 2][J] = ADOTable1->FieldByName("prenom")->AsString; StringGrid1->Cells[I + 3][J] = ADOTable1->FieldByName("option")->AsInteger; // on passe à la ligne suivante J = J + 1; ADOTable1->Next(); } // on ferme connexion, bdd et table ADOTable1->Close(); // Database1->Close(); // Session1->Close(); }
salut; j'utilise pas StringGrid1 j'utilise DBGrid1 et Table1.
Hello
SQL permet de faire ceci simplement:
SELECT SUM(column_name) FROM table_name
ou column_name est le nom de la colonne contenant les nombres
table_name est le nom de la table
la requête SQL Peut s'effectuer via TQuery
cdlt
Bonjour,
Je suis d'accord avec DjmSoftware, si tu utilises une base de données, autant utiliser au maximum SQL. Ca aide beaucoup de connaître SQL ;)
salut a tous j'ai trouver la solution dans le forum voila la solution :
merci a TicTacToe :ccool:Citation:
RTotal := 0;
DBGrid.DataSet.First;
while not DBGrid.DataSet.Eof do
try
RTotal := RTotal + TonChamp1.AsFlaot + TonChamp2Calc.AsFloat + ...;
// OU
RTotal := RTotal + DBGrid.DataSet.FieldByName( 'MonChampe1' ).AsFloat + ...
finally DBGrid.DataSet.Next; end;
salut a tous j'ai trouver la solution dans le forum voila la solution :
merci a TicTacToe :ccool:Citation:
RTotal := 0;
DBGrid.DataSet.First;
while not DBGrid.DataSet.Eof do
try
RTotal := RTotal + TonChamp1.AsFlaot + TonChamp2Calc.AsFloat + ...;
// OU
RTotal := RTotal + DBGrid.DataSet.FieldByName( 'MonChampe1' ).AsFloat + ...
finally DBGrid.DataSet.Next; end;
Hello
Dommage
la solution que tu poste est au minimum plus de 10 fois plus lente qu'une simple requête SQL.:roll:
d'autre part si tu veux continuer à obtenir de l'aide , commence par essayer les solutions proposées par les utilisateurs de ce forum , en lieu et place de tes propres recherches que tu aurais pu faire avant de poster ta demande:nono:
cdlt