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 :

FMTBcd c'est quoi ?


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut FMTBcd c'est quoi ?
    Bonjour à tous

    Je développe un petit module d'analyse commercial et pour ce faire j'utilise un des composant VCL de devexpresse (ils ont certaines petites fonctionnalités très sympa)

    J’utilise Interbase 7.5 et certain champs sont des decimal 18,5 (saisi par l'utilisateur) et d'autre des numérique 18,5 (les champs calculé en général).

    Lorsque je veux faire un somme dans mes grille devExpresse il me tronque tjrs le résulta. Exemples 700+600 = 300 / 1230 + 50 + 5000 + 6000 = 2280. Comme vous le constater il conserve la taille des champs la plus grande mais ne s'adapte pas au résultat.

    Ma question n'est pas comment résoudre le formatage de la cellule mais qu'est ce que le type de FMTBcd... Car j'ai constaté que c'est tjrs avec ce type de valeur que j'ai mon problème.

    Merci d'avance ...

    Désolé pour les faute d'orthographe (dyslexie)

  2. #2
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Tu trouveras la réponse en consultant l'aide de DELPHI.
    il suffit de taper ce mot "FMTBcd" dans la recerche pour avoir une explication mieux fournit que celle que l'on pourait te donner ici.

    bonne chance.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  3. #3
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    Citation Envoyé par Bejaia-In
    Tu trouveras la réponse en consultant l'aide de DELPHI.
    il suffit de taper ce mot "FMTBcd" dans la recerche pour avoir une explication mieux fournit que celle que l'on pourait te donner ici.

    bonne chance.
    +1 @ Bejaia-In
    @ kmakam
    il faut veiller à suivre les règles du forum

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Voici ce que me donne l'aide :
    Citation Envoyé par Aide Delphi 2010
    Indique la valeur du paramètre quand il représente un champ décimal codé binaire (BCD) avec plus de 4 positions décimales ou 20 chiffres significatifs.

    Définissez AsFMTBCD pour affecter la valeur d'un champ BCD au paramètre lorsque ce champ est représenté par un objet TFMTBCDField. Les objets TFMTBCDField et la propriété AsFMTBCD utilisent un vrai type BCD pour représenter la valeur des champs BCD. Ce type est plus précis mais plus lent que le type Currency utilisé par TBCDField et la propriété AsBCD. L'affectation de AsFMTBCD attribue à la propriété DataType la valeur ftFMTBCD.

    La lecture de la propriété AsFMTBCD permet de déterminer la valeur affectée au paramètre de sortie, sous la forme d'une valeur de type TBcd. La valeur du paramètre est convertie, si possible, en une valeur TBcd.

    Conseil : Si le champ BCD utilise moins de 4 places décimales ou 20 chiffres significatifs, vous pouvez améliorer les performances en utilisant à la place un champ TBCDField et la propriété AsBCD.
    Mais, je n'ai pas vu d'exemple qui explique comment on fait pour donner un nombre à une procédure stockée qui n'accepte que ce type en paramètre.

    Comment transtyper un entier en FMTBcd ?

    J'ai bien trouvé IntegerToBcd, mais ca ne change rien.
    erreur numérique ou erreur sur une valeur: erreur de conversion des caractères en chiffres
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    As-tu essayé de définir la valeur du paramètre 'AsCurrency' ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyPS.Params[0].AsCurrency := 10;
    A tester puisque ta valeur est un entier.

    @+

  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Ca ne marche pas mieux.
    J'ai presque tout essayé, et ca donne le même résulat.
    DBExpress n'a pas l'air d'aimer Oracle.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  7. #7
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Quelle version de Delphi et quelle version d'Oracle?

    Par exemple pour Delphi 7 et oracle 11g (serveur) , j'ai été obligé d'utiliser la dernière version des drviers DBExpress de DevArt pour les procédures stockées, sinon erreur (alors que le code marche très bien avec Oracle 9i et 10g).

    On utilise ce code pour les paramètres(déclaré en INTEGER dans la procédure stockée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        MaStoredProc.ParamByName('MonParam').AsFMTBCD := IntegerToBcd(MaValeurEntiere);
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  8. #8
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Quelle version de Delphi et quelle version d'Oracle?
    Delphi 2010 et Oracle 10g.

    Le paramètre de ma procédure stockée est déclaré (dans Oracle) en NUMBER.

    Citation Envoyé par Linkin Voir le message
    On utilise ce code pour les paramètres(déclaré en INTEGER dans la procédure stockée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        MaStoredProc.ParamByName('MonParam').AsFMTBCD := IntegerToBcd(MaValeurEntiere);
    J'ai testé, mais même erreur.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  9. #9
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    C'est à priori résolu !

    En fait, il faut mettre une virgule dans le DecimalSeparator du SQLConnexion.
    C'est tordu ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    cela faisait 2 ans que je butais régulièrement sur ces BCD c'est d'ailleurs aussi à cause de cela que j'ai complètement laissé tombé DBexpress (à mon grand soulagement) .

    Cependant , j'ai appris quelque chose aujourd'hui donc encore
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    c'est d'ailleurs aussi à cause de cela que j'ai complètement laissé tombé DBexpress (à mon grand soulagement) .
    Tu utilises quoi d'autre ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  12. #12
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    travaillant avec Firebird : les FIBplus , UIB et dernierement ZEOSDBO
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par Lung Voir le message
    C'est tordu ...
    Ca pour être tordu !

    Merci pour l'info. Chapeau.

Discussions similaires

  1. [sbadecoder a dit].. C'est quoi pour vous un beau programme?
    Par seb.49 dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 13/02/2004, 10h41
  2. c'est quoi un 'system catalogs' ...
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/12/2003, 16h47
  3. C'est quoi XMLRAD ?
    Par laffreuxthomas dans le forum XMLRAD
    Réponses: 10
    Dernier message: 09/08/2003, 02h42
  4. C'est quoi "Profile" dans le assign du XMLGram ?
    Par Lux interior dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/02/2003, 11h37
  5. C'est quoi exactement un générateur d'états
    Par Henry Cesbron Lavau dans le forum Outils de restitution et d'analyse
    Réponses: 0
    Dernier message: 02/04/2002, 19h15

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