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 :

Addition de 2 champs


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Addition de 2 champs
    Bonjour, je suis débutant. J'utilise Mybase et Delphi 7 pour gérer une base de données.
    Je souhaite qu'un des champs (C1) comporte le résultat de l'addition de deux autres champs (C2 et C3) soit C1=C2+C3.
    Y a t-il un moyen automatique pour que la valeur de C1 de chaque enregistrement soit calculée ? Quelles sont les différentes solutions ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Je te dirais d'utiliser une requete

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Update [Le nom de la table]
    set 
      C1 = C2 + C3
    Where 
      C1 = 0

    Dans l'exemple ci dessus, tous les champs C1 de la table seront mis à jour avec l'addition, si C1 est égal à 0
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Une aternative, si C1 n'est pas un champ physique de ta table et n'a pas besoin de l'être,
    tu peux utiliser les champs calculés au niveau de ton dataset.

    1/ créer le champs calculé (dans la liste des champs et de FieldKing fkCalculated)

    2/ puis traitement sur C1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure MaForm.TableCalcFields(DataSet: TDataSet);
    begin
      DataSet.FieldByName( 'C1' ).AsInteger := DataSet.FieldByName( 'C2' ).AsInteger + DataSet.FieldByName( 'C3' ).ASInteger;
    end;
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    :Salut:
    bienvenue sur le Forum
    ou encore mieux

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT C2,C3,(C2+C3) AS C1 FROM [Votre Table]

    comme ça vous pouvez viré un champs de votre table et pourvoir appliquer des filtre sur champs.

  5. #5
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Tu utilise l'evenement "BeforePost" de ta table pour coder une instruction du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaTableC1.value := MaTableC2.value + MaTableC3.value;
    Et c'est tout..
    Si vous êtes libre, choisissez le Logiciel Libre.

  6. #6
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Merci
    Bonjour,
    Je vous remercie des conseils. Concrêtement, j'ai opté pour la dernière solution (j'étudierai le SQL plus tard). Mais au lieu de passer par "Beforepost", je suis passé par l'événement "OnClacFields".

  7. #7
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par EdgarP Voir le message
    Bonjour,
    Je vous remercie des conseils. Concrêtement, j'ai opté pour la dernière solution (j'étudierai le SQL plus tard). Mais au lieu de passer par "Beforepost", je suis passé par l'événement "OnClacFields".
    L'evenement "BeforePost" survient seulement lors de la mise a jour de la table, alors que "OnCalcFields" survient a chaque :

    OnCalcFields est déclenchée quand :

    Un ensemble de données est ouvert.
    Un ensemble de données est placé dans le mode dsEdit.
    Un enregistrement est lu depuis la base de données.

    Si la propriété AutoCalcFields a la valeur true, OnCalcFields est aussi déclenché quand :

    La focalisation passe d'un contrôle visuel à un autre,ou d'une colonne à une autre dans un contrôle grille orienté données alors que des modifications ont été faites à l'enregistrement.
    a toi de voir.
    Si vous êtes libre, choisissez le Logiciel Libre.

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Points : 115
    Points
    115
    Par défaut
    Je vous conseil d'évité OncalcField car cette méthode à des inconvégnant elle ralentie les performance de votre application. par contre il ya un moyen plus simple :
    Dans l'événement Onvalidate des champs (C2) et (C3)
    Code :
    Table1C1.Value:=Table1C2.Value+Table1C3.Value;

  9. #9
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    étudit bien les 3 premié réponce:
    1ére réponce: si tu as déjà des données dans la table avec un champ (C1) sans valeur ou crées réssament
    2éme et 3éme réponce: si tu n'as pas phisiquement ce champ,
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. addition suivant un champ identique
    Par Frenchguy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/08/2007, 17h53
  2. [Table / VBA] Addition automatique des champs
    Par NiKoTiNe dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/05/2007, 09h59
  3. addition de deux champs et resultat dans un troisième
    Par reventlov dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/03/2006, 15h30
  4. Addition de plusieurs champs dans champ indépendant
    Par snoopy69 dans le forum Access
    Réponses: 3
    Dernier message: 11/11/2005, 09h37
  5. Addition de plusieurs champs...
    Par mozvillat dans le forum Langage SQL
    Réponses: 11
    Dernier message: 22/09/2005, 16h19

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