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

Bases de données Delphi Discussion :

Calcul de la somme


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut Calcul de la somme
    Bonjour à tous,
    J'ai une base de donnée Interbase qui contient la table C_OPERATION. Cette table contient un champ SOMME, je voudrais en calculer la somme totale .
    voici 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
    procedure TForm1.Button2Click(Sender: TObject);
    var TOTAL: currency;
    begin
     TOT:=0;
     Form1.IBQuery1.Close;      
     Form1.IBQuery1.SQL.Clear;
     Form1.IBQuery1.Sql.Add('SELECT  SUM(SOMME) as TOT_SOMME FROM C_OPERATION WHERE ID_COMPTE=:ID_Cpte');
     Form3.IBQuery1.Params.ParamByName('ID_Cpte').Value := ID_Compte_Affiche;                                                    //  Id du compte affiché
     Form1.IBQuery1.Open; 
     
    Je voudrais récupérer la somme TOT_SOMME et l'affecter à ma variable TOTAL
    
    end;
    Désolé pour cette question triviale, mais je galère dessus depuis plusieurs jours.
    Merci de vos réponses
    Jean-Louis

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Je voudrais récupérer la somme TOT_SOMME et l'affecter à ma variable TOTAL...
    Désolé pour cette question triviale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tot:=ibQuery1.FieldByname('TOT_SOMME').asFloat
    Mais, parce qu'il y a un mais, il y a une erreur dans votre code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Button2Click(Sender: TObject);
    var TOTAL: currency;
    begin
     TOT:=0;
     Form1.IBQuery1.Close;      
     Form1.IBQuery1.SQL.Clear;
     Form1.IBQuery1.Sql.Add('SELECT  SUM(SOMME) as TOT_SOMME FROM C_OPERATION WHERE ID_COMPTE=:ID_Cpte');
     Form3.IBQuery1.Params.ParamByName('ID_Cpte').Value := ID_Compte_Affiche;                                                    //  Id du compte affiché
     Form1.IBQuery1.Open;
    Vous mettez le paramètre dans Form3.IBQuery1 et non Form1.IBQuery1 !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.Button2Click(Sender: TObject);
    var TOTAL: currency;
    begin
     // TOT:=0;
     IBQuery1.Close;      
    // IBQuery1.SQL.Clear;
    // IBQuery1.Sql.Add('SELECT  SUM(SOMME) as TOT_SOMME FROM C_OPERATION WHERE ID_COMPTE=:ID_Cpte');
    // les deux lignes au dessus sont remplçables par 
     IBQuery1.Sql.Text:='SELECT  SUM(SOMME) as TOT_SOMME FROM C_OPERATION WHERE ID_COMPTE=:ID_Cpte';
     IBQuery1.Params.ParamByName('ID_Cpte').Value := ID_Compte_Affiche;                                                    //  Id du compte affiché
     IBQuery1.Open; 
     tot:=ibQuery1.FieldByname('TOT_SOMME').asFloat;
    ....
    end;


    Mes conseils
    1. nommez vos composants plus explicitement
    2. évitez cette histoire de form1, vous êtes déjà dedans

    Plus pro
    1. Utilisez un TDataModule pour tout ce qui est connexion au données
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Merci à SergioMaster toujours aussi rapide et clair dans ses réponses


    Vous mettez le paramètre dans Form3.IBQuery1 et non Form1.IBQuery1 !
    C'est une coquille, car j'ai fait du copier coller en rectifiant et élaguant le code de tout le superflu.

    Merci encore

    JLouis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Excel] Calcul d'une somme sous condition
    Par netsabes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2006, 16h09
  2. Calcul d'une somme dans Excel ??
    Par LaVaZza dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/06/2006, 22h55
  3. Calcul de la somme total
    Par Velsy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2006, 13h29
  4. [TCP/IP][CRC] Calcul d'une somme XOR
    Par cyrdec dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 29/05/2006, 17h42
  5. access : calcul d'une somme de 0 sans valeur par défaut
    Par ericbelgium dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2005, 09h05

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