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

 Delphi Discussion :

champs monétaire avec firebird


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut champs monétaire avec firebird
    Salut tous j'ai un probleme avec mes champs monétaires avec firebird

    j'ai créer un champs DECIMAL avec IBEasy pour un champ monétaire mais je crois avoir fait une érreur ?
    quant je rentre dans mon formulaire un nombre a virgule a l'enregistrement la virgule disparaît .

    je dois prendre un autre champs ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut
    fin de compte je me répond j 'ai trouvé la solution
    dans IBEasy je mis mon champs a DOUBLE PRECI
    et la je peux faire un enregistrement de mon prix sans problème dans mon Zquery j'ai mis currency a true et dans editformat # ### ##0.00

    le problème maintenant impossible de le modifier j'ai toujours une érreur

    voici mon code si une aide charitable passe par la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    with DataModule2.ZQuery5 do
    begin
    SQL.Clear;
    SQL.Add('Update PAPIER set SECTEUR_PAPIER = '+ QuotedStr(SECTEUR_PAPIER.Text)
    +',CODE_PAPIER = '+ QuotedStr(CODE_PAPIER.Text)
    +',TYPE_PAPIER = '+ QuotedStr(TYPE_PAPIER.Text)
    +',COULEUR = '+ QuotedStr(COULEUR_PAPIER.Text)
    +',PRIX_PAPIER = '+ QuotedStr(PRIX_PAPIER.Text)
     +',NOTES_PAPIER = '+ QuotedStr(NOTES_PAPIER.Text)
    +' where IDPAPIER ='+ QuotedStr(DBText1.caption)+'');
     
    Prepare;
    ExecSQL;
    le message erreur et bien pour le PRIX_PAPIER quand je le supprime de mon update tous fonctionne trés bien . Que doi'je faire svp

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 111
    Points : 171
    Points
    171
    Par défaut
    bon jour
    voire dans la panneau de configuration --> options régionales et linguistiques --> options régionales --> personaliser --> symbole monétaire et regler le nombre de décimales peut etre c'est votre probleme

    A+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par tarekk73 Voir le message
    bon jour
    voire dans la panneau de configuration --> options régionales et linguistiques --> options régionales --> personaliser --> symbole monétaire et regler le nombre de décimales peut etre c'est votre probleme

    A+
    non merci j'ai regarder c ok

  5. #5
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par tarmo57 Voir le message
    fin de compte je me répond j 'ai trouvé la solution
    dans IBEasy je mis mon champs a DOUBLE PRECI
    et la je peux faire un enregistrement de mon prix sans problème dans mon Zquery j'ai mis currency a true et dans editformat # ### ##0.00

    le problème maintenant impossible de le modifier j'ai toujours une érreur

    voici mon code si une aide charitable passe par la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    with DataModule2.ZQuery5 do
    begin
    SQL.Clear;
    SQL.Add('Update PAPIER set SECTEUR_PAPIER = '+ QuotedStr(SECTEUR_PAPIER.Text)
    +',CODE_PAPIER = '+ QuotedStr(CODE_PAPIER.Text)
    +',TYPE_PAPIER = '+ QuotedStr(TYPE_PAPIER.Text)
    +',COULEUR = '+ QuotedStr(COULEUR_PAPIER.Text)
    +',PRIX_PAPIER = '+ QuotedStr(PRIX_PAPIER.Text)
     +',NOTES_PAPIER = '+ QuotedStr(NOTES_PAPIER.Text)
    +' where IDPAPIER ='+ QuotedStr(DBText1.caption)+'');
     
    Prepare;
    ExecSQL;
    le message erreur et bien pour le PRIX_PAPIER quand je le supprime de mon update tous fonctionne trés bien . Que doi'je faire svp
    Quel est le message d'erreur ???
    AMHA, problème de séparateur décimal différent de celui attendu : un point au lieu d'une virgule ou l'inverse ?
    Il vaut mieux passer par des paramètres que l'on peut typer...

    De plus, on a la un bel exemple de possible injection SQL !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut
    sur le onkeypresse de mon edit qui reçois le prix j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure Tgestion_support.PRIX_PAPIERKeyPress(Sender: TObject;
      var Key: Char);
    begin
     if Key='.' then Key := ',';
    end;
    le message erreur est :
    Le projet projet.exe a provoqué une classe d'exeption EZSQLExeception avec le message'SQL Error: conversion error from string "12,40€" Error code -413.can't format message 13:587

  7. #7
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par tarmo57 Voir le message
    sur le onkeypresse de mon edit qui reçois le prix j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure Tgestion_support.PRIX_PAPIERKeyPress(Sender: TObject;
      var Key: Char);
    begin
     if Key='.' then Key := ',';
    end;
    le message erreur est :
    Transformez la virgule en point avant de construire la chaine SQL : 12.40

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Transformez la virgule en point avant de construire la chaine SQL : 12.40
    j'ai fais Ph.B

  9. #9
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par tarmo57 Voir le message
    j'ai fais Ph.B
    Eh bien refaites le et supprimez aussi le symbole !

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Eh bien refaites le et supprimez aussi le symbole !

    le code est bien en place et pour le symbole il est supprimer ,mais j'ai toujours cette erreur

  11. #11
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Je vous rappelle le message d'erreur que vous avez indiqué :
    Le projet projet.exe a provoqué une classe d'exeption EZSQLExeception avec le message'SQL Error: conversion error from string "12,40€" Error code -413.can't format message 13:587
    Tant qu'il y aura une virgule au lieu d'un point et/ou le symbole €, l'exécution de la requête renverra ce message...

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Je vous rappelle le message d'erreur que vous avez indiqué :

    Tant qu'il y aura une virgule au lieu d'un point et/ou le symbole €, l'exécution de la requête renverra ce message...
    j'ai
    procedure Tgestion_support.PRIX_PAPIERKeyPress(Sender: TObject;
    var Key: Char);
    begin
    if Key='.' then Key := ',';
    end;
    la j'ai une erreur et il ni a plus de symbol €

    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure Tgestion_support.PRIX_PAPIERKeyPress(Sender: TObject;
      var Key: Char);
    begin
     if Key='.' then Key := ',';
    end;
    la le champs ne me laisse rien écrire du tout

    je ne comprend vraiment pas pourquoi cela ne fonctionne pas ,je peux enregistrer mais pas modifier

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Je vous rappelle le message d'erreur que vous avez indiqué :

    Tant qu'il y aura une virgule au lieu d'un point et/ou le symbole €, l'exécution de la requête renverra ce message...

    ouf j'ai trouver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringReplace(Montant.Text, ',', '.', [rfReplaceAll]);

    merci Ph.B

  14. #14
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Ca aura été mieu d'utiliser DecimalSeparator
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure Tgestion_support.PRIX_PAPIERKeyPress(Sender: TObject;
      var Key: Char);
    begin
     if (Key='.') or (Key = ',') then 
       Key := decimalSeparator;
    end;
    Ou mieux encore, utiliser des contrôles Edit pour les numériques et utiliser une requête paramétrée

  15. #15
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 385
    Points : 41 983
    Points
    41 983
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Andry Voir le message
    Ou mieux encore : utiliser une requête paramétrée

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

Discussions similaires

  1. Est il Possible de permuter les champs avec firebird
    Par etudiantdeb dans le forum SQL
    Réponses: 0
    Dernier message: 02/08/2010, 12h35
  2. Insert d'un champ caractères spéciaux avec firebird et php
    Par PHILOSOPHE dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 14/05/2005, 12h18
  3. Agrandir un champ avec Firebird.
    Par fplanglois dans le forum Débuter
    Réponses: 3
    Dernier message: 19/04/2005, 16h25
  4. champs booleen avec ibexpert
    Par crocodingo dans le forum Outils
    Réponses: 3
    Dernier message: 18/01/2004, 17h27

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