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 :

Point décimal (.) sur un champs numérique


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut Point décimal (.) sur un champs numérique
    Bjr,

    J'ai une bdd (SQL SERVER 2000) avec une table tblNotes
    Cette tblNotes me permet la saisie de différentes notes attribuées aux Elèves/Etudiants.
    le champ Note (note de devoir) de cette table est de type Decimal ou de type Numeric c à d permettant la saisie des nombre à virgule et des nombres entiers.

    Cependant, dans ma fiche Delphi, quand je saisie un nombre à virgule (par exemple 11.5) le point décimal ne marche pas avec le pavet numérique de mon clavier...
    Je suis forcé de saisir des nombre entier (sans virgule) dans ce cas.
    Mais quand j'utilise la virgule du clavier (par exemple 11,5), la valeur entrée est acceptée mais à la sortie du curseur (perte Focus) je voie ce nombre (la note) visiblement arrondi à 12.

    Que dois je faire pour que depuis mon interface je saisisse aussi bien des nombres entiers comme des nombres décimal ,

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    pourrions nous voir la structure de la table.

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    la table est faites sous Sql Server 2000
    elle porte le nom de tblNotes
    sa strucure est :
    NumNote (type Int = auto incrément)
    NomEtudiant (type nvarChar = alphanumérique)
    ...
    Notes (type Decimal = nombre décimal / nombre entier)

    a bientôt

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    Definir la partie décimale de note telle que

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    slt

    je ne comprends pas ce que vous voulez dir par Note decimal(5,2)

    si vs pouvez donner plus de précision !

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par tleboukaka Voir le message
    la table est faites sous Sql Server 2000
    elle porte le nom de tblNotes
    sa strucure est :
    NumNote (type Int = auto incrément)
    NomEtudiant (type nvarChar = alphanumérique)
    ...
    Notes (type Decimal = nombre décimal / nombre entier)

    a bientôt
    le champ note doit être de type réel.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    hello

    cela ne marche tjrs pas (dans ma fiche Delphi)
    j'ai essayé tous les types : Decimal; Numeric; Real; Float.

    et surtout la saisie de la virgule (point decimal) avec le pavet numeric de mon clavier ne marche pas.

    Nb : les tests effectué depuis Sql Server enterprise Manager fonctionnent sans problème. tous les types (Decimal, Numeric, Float ou real) me permettent de saisir des nombres sans problèmes.

    je patiente tjrs jusk avoir la solution

    Merci d'avance

  8. #8
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Dans ta base de données, lorsque tu vas voir le résultat, tu as bien 11,5 dans ton champ note ?

    Si oui, alors ça vient de ton programme.
    Si non, alors ça vient de la structure de la base de données.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    Note decimal(5,2) signifie 3 chiffre après la virgule et 2 chiffres avant la virgule 3+2=5

    Pour le point décimal, chez toi, c'est le caractère "," virgule qui fonctionne.

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    slt

    Dans ta base de données, lorsque tu vas voir le résultat, tu as bien 11,5 dans ton champ note ?
    Oui, c'est exacte : le champ note affiche bien le bon résultat (11,5) quand je consulte la table ou quand je consulte la requete (ADOQuery)

    Si oui, alors ça vient de ton programme
    alors il faille que ns ns concentrons sur le programme !!!

    que devais je faire svp ! - au même temps je suis en train de refléchir que vs.

    merci d'avance

  11. #11
    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
    Dans le onKeyPress de ton composant de saisie tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if Key = '.' then
      Key := DecimalSeparator;
    ca devrait regler ton prolbème de saisie du .
    Modérateur Delphi

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

  12. #12
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    slt

    je viens de trouver la solution :
    Rappel : dans ma tblNotes depuis Sql Server Enterprise manager, le champs NOTES a le type et la taille Decimal 5(4,2)
    cela veut dire 2 chiffres après la virgule; soit Echelle = 2 et Precision = 4.
    ce qui ne m'a pas posé de problème.

    La difficulté était dans Delphi. j'ai fais ceci
    Depuis le dataModule,
    j'ai activé mon dataSet de NOTES, soit le dtsNotes, pour faire apparaitre tous les champs,
    j'ai mis la propriété (dans Inspecteur d'objet) Précision du champs Notes à 4.
    Avant il était fixé par défaut à 2.
    Précision = 4. et cela marche

    Par contre je vais faire à ce que le point décimal de mon pavet numerique puisse marcher... en appliquant la syntaxe de RAYEK

    Encore merci à tous

    A bientôt

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

Discussions similaires

  1. Soustraire 3 mois sur un champ numérique
    Par jacko842 dans le forum DB2
    Réponses: 2
    Dernier message: 31/03/2015, 11h42
  2. Condition sur un champ numérique
    Par vatmx dans le forum Langage
    Réponses: 8
    Dernier message: 22/04/2013, 11h10
  3. [AC-2007] Filtrer sur un champ numérique avec OpenReport
    Par siriusalpha dans le forum IHM
    Réponses: 1
    Dernier message: 05/02/2011, 08h02
  4. [SP-2007] Recherche sur un champ numérique
    Par rohstev dans le forum SharePoint
    Réponses: 1
    Dernier message: 14/10/2010, 14h49
  5. Réponses: 8
    Dernier message: 06/02/2006, 14h34

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