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

SQL Firebird Discussion :

[Firebird] affecté un numeric par IBSQL


Sujet :

SQL Firebird

  1. #1
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut [Firebird] affecté un numeric par IBSQL
    Bonjour,

    Comment faites vous pour mettre à jour un champ de type numéric avec un composant IBSQL ?

    exemple, j'ai le code suivant :

    l_sMessage = FormatFloat("###,###,##0.00", P_dMontant);
    IBSQL->SQL->Clear();
    IBSQL->SQL->Add("INSERT INTO CAISSE (CAI_NUMEROPOSTE, CAI_MODEREGLEMENT, CAI_MONTANTEURO)");
    IBSQL->SQL->Add(" VALUES ('" + l_sNumeroPoste + "',");
    IBSQL->SQL->Add("'" + P_sCodeModeReg + "',");
    IBSQL->SQL->Add("'" + l_sMessage + "')");

    Apparement FB n'aime pas le FormatFloat car si P_dMontant est égal à 12,80, il insère 1280.00
    par contre si je fais cette affectation : l_sMessage = "12.80";
    tout est ok, j'ai bien la valeur 12.80 dans la BD
    Est ce que c'est la virgule en séparateur de décimal qui le gênes ? Dans ce cas, comment faire ?
    Merci
    Thierry

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Oui, le séparateur décimal peut faire des siennes....(cf le decimal_separator des variables globales)


    Cependant, pourquoi stocker le montant sous format chaine ?

    Pourquoi ne pas le stocker en numeric et réserver le formatage lors d'une présentation à l'utilisateur ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Merci pour ta réponse mais je ne vois pas comment insérer la valeur numérique dans IBSQL->SQL sans passer par FormatFloat, tu a une autre solution ?

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    C'est bien sûr sous réserve que tu puisses modifier la table pour déclarer CAI_MONTANTEURO en décimal (x,y)
    (en + tu pourras faire des SUM sur cette colonne)

    Il faut passer par une requète paramétrée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IBSQL->SQL->Clear(); 
    IBSQL->SQL->Add("INSERT INTO CAISSE (CAI_NUMEROPOSTE, CAI_MODEREGLEMENT, CAI_MONTANTEURO)  VALUES (:NP, :MR, :MT)");
    IBSQL->SQL->ParamByName("NP")->AsString=l_sNumeroPoste ;
    IBSQL->SQL->ParamByName("MR")->AsString=P_sCodeModeReg ;
    IBSQL->SQL->ParamByName("MT")->AsFloat=P_dMontant;
    PS: n'étant pas familier avec le C(PP) la syntaxe ParamByName("NP")->AsFloat est peut-être à revoir, mais l'idée est là
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  5. #5
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Ok merci bien !

  6. #6
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Est il possible de faire une requète paramétrée pour un update avec IBSQL, si oui, comment ?

Discussions similaires

  1. affecter une valeur par defaut a un dblookupcombobox
    Par bkadje dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/11/2006, 14h11
  2. Réponses: 2
    Dernier message: 26/10/2006, 17h52
  3. Comment affecter une valeur par defaut si null?
    Par cassy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/07/2006, 19h13
  4. Affecter une valeur par defaut a la balise file
    Par mego dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/07/2006, 18h24
  5. [scriplet] affecter une valeur par un bean:write
    Par viena dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 25/11/2004, 16h29

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