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 :

ADOQuery + DBText


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 92
    Points : 61
    Points
    61
    Par défaut ADOQuery + DBText
    Bonjour,

    J'utilise un ADOQuery pour afficher mon calcul dans un DBText. Selon le resultat, il change de couleur. Mon problème est qu'il considere "solde" toujours positif. Pourquoi ?

    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
    procedure TForm1.CalculSolde;
    Var solde:real;
    Begin
        SoldeADOQuery.active:=false;
        SoldeADOQuery.SQL.Clear; // Effacement de la requete
        SoldeADOQuery.SQL.Text:='select sum(debit) - sum(remb) As Solde from compte';
        SoldeADOQuery.active:=true;
        With SoldeDBText do
            If solde<0 then
                Begin
                      // Affichage : Solde Négatif
                      Font.Name:=FontNameSoldeN;
                      Font.Color:=FontColorSoldeN;
                      Font.Size:=FontSizeSoldeN;
                End
            Else
                Begin
                      // Affichage : Solde Positif
                      Font.Name:=FontNameSoldeP;
                      Font.Color:=FontColorSoldeP;
                      Font.Size:=FontSizeSoldeP;
                End;
        SoldeDBText.DataField:='Solde';
    end;

  2. #2
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut Re: ADOQuery + DBText
    Citation Envoyé par yanba
    Bonjour,

    J'utilise un ADOQuery pour afficher mon calcul dans un DBText. Selon le resultat, il change de couleur. Mon problème est qu'il considere "solde" toujours positif. Pourquoi ?

    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
     
    procedure TForm1.CalculSolde;
    Var solde:real;
    Begin
        SoldeADOQuery.active:=false;
        SoldeADOQuery.SQL.Clear; // Effacement de la requete
        SoldeADOQuery.SQL.Text:='select sum(debit) - sum(remb) As Solde from compte';
        SoldeADOQuery.active:=true;
        With SoldeDBText do
            If solde<0 then
                Begin
                      // Affichage : Solde Négatif
                      Font.Name:=FontNameSoldeN;
                      Font.Color:=FontColorSoldeN;
                      Font.Size:=FontSizeSoldeN;
                End
            Else
                Begin
                      // Affichage : Solde Positif
                      Font.Name:=FontNameSoldeP;
                      Font.Color:=FontColorSoldeP;
                      Font.Size:=FontSizeSoldeP;
                End;
        SoldeDBText.DataField:='Solde';
    end;

    Salut !

    Ça ne fonctionne pas parce que tu n'assignes jamais à solde la valeur de la colonne Solde de ta requête. Il faut alors ajouter cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    solde := SoldeADOQuery.FieldByName('Solde').AsFloat;
    Aussi, personellement, j'ajouterais une paire de parenthèses dans la requête (je sais pas si ça change qqchose mais bon...).

    Voici le code complet une fois corrigé:

    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
     
    procedure TForm1.CalculSolde;
    var
      solde: double;
     
    begin
      SoldeADOQuery.Close;
      SoldeADOQuery.SQL.Clear; // Effacement de la requete
      SoldeADOQuery.SQL.Text := 'select (sum(debit) - sum(remb)) As Solde from compte';
      SoldeADOQuery.Open;
     
      solde := SoldeADOQuery.FieldByName('Solde').AsFloat;
     
      with SoldeDBText do
      begin
        If solde < 0 then
        begin
          // Affichage : Solde Négatif
          Font.Name := FontNameSoldeN;
          Font.Color := FontColorSoldeN;
          Font.Size := FontSizeSoldeN;
        end
        else
        begin
          // Affichage : Solde Positif
          Font.Name := FontNameSoldeP;
          Font.Color := FontColorSoldeP;
          Font.Size := FontSizeSoldeP;
        end;
     
        DataField := 'Solde';
      end;
    end;
    A+!
    -Slimjoe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 92
    Points : 61
    Points
    61
    Par défaut
    C'est cool ca marche, merci !!

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

Discussions similaires

  1. ADOQuery et DBTEXT
    Par yanba dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/02/2006, 14h01
  2. [ADOQuery]Comment ajouter un prametre a un ADOQuery
    Par bitou dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/04/2004, 15h08
  3. [ADOQuery] Propriété Fields
    Par bitou dans le forum Bases de données
    Réponses: 7
    Dernier message: 21/04/2004, 11h24
  4. Probleme S/ UPDATE : ADOQUERY base = .DBF , D7
    Par bzh56 dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/02/2004, 01h56
  5. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24

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