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 :

[DEBUTANT]Mettre en réel


Sujet :

Bases de données Delphi

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut [DEBUTANT]Mettre en réel
    Voilà j'ai un souci je suis sur Delphi 4.0 et le Float apparement n'existe pas.
    j'aimerais garder une valeur 999,00 en 999.
    sur la 7.0 on pouvait faire je crois floattoint(999,00) et ca donnait je crois 999.
    et j'aimerais additionné genre 57,00 avec 22,50 pour que ca donne 79,50.
    mais k:float; (k étant une variable) il dit que float n'est pas défini!donc je comprends plus!
    Voilà j'espère que vous pourrez m'aider!Merci

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    A la flace de Float, essaie Real ou Double (mieux).
    Et pour transformer en entier, tu as Round(), Trunc() Int(), etc...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Merci mais je sais pas pourquoi il s'execute pas.il bloque.Voila 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
    14
    15
    16
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
    l:double;
    begin
    Query2.Close;
    Query2.sql.clear;
    Query2.sql.Add('SELECT PStock');
    Query2.sql.Add('FROM products');
    Query2.SQL.Add('WHERE (PCode=:x)');
    Query2.Params[0].AsString:=Edit2.text;
    Query2.Open;
     
    l:=StrToFloat(Query2.Fields[0].AsString);
    label1.caption:=FloatToStr(l);
    end;

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    je pense que le problème c'est que les réels sont écrits de cette facon je crois 60.00 et pas 60,00 comme l'entreprise a mis dans sa base d donnée.
    Peut ton passer de 60,00 à 60.00?genre une recherche dans le string de la virgule qui sera remplacer par un point?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    apparement non les float sont avec une virgule!je comprends absolument rien :s au secours!

  6. #6
    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
    remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    l:=StrToFloat(Query2.Fields[0].AsString);
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    l:=Query2.Fields[0].AsFloat; // faut que le champ de la base de données soit définit en un type float sinon ca fonctionnera pas


    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    label1.caption:=FloatToStr(l);
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    label1.caption:=FormatFloat('0.00',l);
    Modérateur Delphi

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

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Ca bloque toujours je vais pété un cable

    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
     
    var
    l:double;
    u:integer;
    begin
    Query2.Close;
    Query2.sql.clear;
    Query2.sql.Add('SELECT PStock');
    Query2.sql.Add('FROM products');
    Query2.SQL.Add('WHERE (PCode=:x)');
    Query2.Params[0].AsString:=Edit2.text;
    Query2.Open;
     
    l:=Query2.Fields[0].AsFloat;
    u:=Trunc(l);
    label1.caption:=IntToStr(u);
    end;

  8. #8
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par ghan77
    Ca bloque toujours je vais pété un cable
    Ok ça bloque mais si tu disais qu'est-ce qui bloque exactement on pourrait un peu avancer Message d'erreur? Freeze? etc.
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Freeze!ca bouge pas!meme en faisant pas à pas ca m'indique aucune erreur :s!

  10. #10
    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
    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
     
    var
    l:double;
    u:integer;
    sTmp : char; // petite variable temporaire
    begin
    Query2.Close;
    Query2.sql.clear;
    Query2.sql.Add('SELECT PStock');
    Query2.sql.Add('FROM products');
    Query2.SQL.Add('WHERE (PCode=:x)');
    Query2.Params[0].AsString:=Edit2.text;
    Query2.Open;
    sTmp := DecimalSeparator; //sauvegarde le caractère de séparation des 
    décimals
    DecimalSeparator := '.'; // nouveau séparateur, normalelent en delphi c'est un point qu'il faut
    l:=Query2.Fields[0].AsFloat;
    u:=Trunc(l);
    label1.caption:=IntToStr(u);
    DecimalSeparator := sTmp; // remet correctement le caractère de séparation
    end;
    Voir dans le code
    Modérateur Delphi

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

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    pas bête du tout mais il me fait cette erreur!

    [Error] Unit1.pas(120): Incompatible types: 'Char' and 'String'
    [Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Ca fait plus l'erreur je m'étais trompé apparement je ne sais pas mais ca freeze toujours!

  13. #13
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Ton x, utilisé comme paramètre de ton SQL, tu l'a déclaré en tant que string au lieu de char, vérifies bien...
    Bidouilleuse Delphi

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Aller savoir pourquoi en redémmarrant delphi ca marche sans faire la dernière modification!j'ai pas tout compris ce problème mais ca marche :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    var
    k:double;
    i,j,l:integer;
    begin
    j:=0;
    k:=0;
    Query1.Close;
    Query1.sql.clear;
    Query1.sql.Add('SELECT smcode,sdate,');
    Query1.sql.Add('COUNT(sccode) AS CompteDeSCCode,');
    Query1.sql.Add('Sum(SPRICE) as SommeDeSPRICE FROM Sales');
    Query1.SQL.Add('WHERE (smcode=:x)');
    Query1.SQL.add('GROUP BY sdate, smcode');
    Query1.Params[0].AsString:=AnsiUpperCase(Edit1.text);
    Query1.Open;
     
    Query2.Close;
    Query2.sql.clear;
    Query2.sql.Add('SELECT PStock');
    Query2.sql.Add('FROM products');
    Query2.SQL.Add('WHERE (PCode=:x)');
    Query2.Params[0].AsString:=Edit2.text;
    Query2.Open;
     
    l:=Trunc(Query2.Fields[0].AsFloat);
    //label1.caption:=FormatFloat('0.00',l);
     
    i:=1;
     
    Query1.Last; // au cas ou pour être sûr que le recordcount fonctionne
    StringGrid1.Rowcount := Query1.RecordCount + 1; // faut donner la taille correspondant a ce qu'il y a dans ton query
    Query1.First; // on se remet au debut de la requete
     
    while not Query1.Eof do
      begin
       stringgrid1.cells[0,i]:=Query1.Fields[0].AsString;
       stringgrid1.cells[1,i]:=Query1.Fields[1].AsString;
       stringgrid1.cells[2,i]:=Query1.Fields[2].AsString;
       stringgrid1.cells[3,i]:=Query1.Fields[3].AsString;
     
       j:=j+strtoint(Query1.Fields[2].AsString);
       stringgrid1.cells[4,i]:=inttostr(j);
     
       k:=k+Query1.Fields[3].AsFloat;
       stringgrid1.cells[5,i]:=floattostr(k);
     
       l:=l-strtoint(Query1.Fields[2].AsString);
       stringgrid1.cells[6,i]:=inttostr(l);
     
       Query1.Next;
       i:=i+1;
     end;

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/03/2006, 11h50
  2. [Debutant] Mettre des images dans une Toolbar
    Par Beleim dans le forum Windows
    Réponses: 11
    Dernier message: 02/03/2006, 23h31
  3. [Debutant] Mettre un CEDIT en readOnly
    Par Hokagge dans le forum MFC
    Réponses: 4
    Dernier message: 05/02/2006, 15h42
  4. [css](debutant) mettre une image dans un bandeau
    Par tuxrouge dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 07/09/2005, 14h38
  5. [Debutant] Mettre une chaine de caractere dans un tableau
    Par bouboussjunior dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 14/09/2004, 11h33

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