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

Requêtes MySQL Discussion :

Comment écrire en réel de type DECIMAL en binaire dans une table ?


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut Comment écrire en réel de type DECIMAL en binaire dans une table ?
    Bonjour,

    Souhaitant enregistrer des données en binaires dans une table, je suis arrivé à cette question :
    comment stocker des nombres réels de type DECIMAL(64,30) par exemple en binaire dans une table ? Est ce possible sans passer par une fonction de formatage ? Quel est le format d'enregistrement ?

    L'objectif étant que cette requête puisse donner les valeurs égales à celles enregistrées initialement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT CAST(a as DECIMAL(65,30)) FROM ma_table;

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 464
    Points : 19 453
    Points
    19 453
    Par défaut
    Salut xounet.

    Je n'ai pas bien compris ce que vous essayez de faire. C'est le mot binaire qui me dérange.

    Citation Envoyé par xounet
    L'objectif étant que cette requête puisse donner les valeurs égales à celles enregistrées initialement :
    Vu que, je n'ai aucun exemple de votre part, il m'est difficile de répondre à votre question.

    S'il s'agit d'un problème d'arrondis, le type "decimal()" est bien ce qu'il vous faut.
    Si vous mettez "12.34" dans "decimal(5,2)" pour aurez bien cette valeur de stockée sans aucun problème d'arrondis.

    Inversement, avec "float" ou "double", vous risquez de ne pas retrouver le nombre d'origine.

    Donnez un exemple de ce que vous essayez de faire, le problème rencontré, et ce que vous désirez au final obtenir.

    Cordialement.
    Artemus24.
    @+

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    La question au fond est de savoir si il existe une écriture binaire spécifique pour les données de type DECIMAL(m,p) comment recréer cette écriture sous forme d'une suite de bits ? ou bien est ce tout simplement du texte ?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 338
    Points : 39 733
    Points
    39 733
    Billets dans le blog
    9
    Par défaut
    Le type est géré par la base de données, à partir du moment où une valeur numérique valide est communiquée dans l'ordre SQL d'insertion ou de mise à jour, c'est le SGBD qui stocke la valeur comme il se doit.

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Le type est géré par la base de données, à partir du moment où une valeur numérique valide est communiquée dans l'ordre SQL d'insertion ou de mise à jour, c'est le SGBD qui stocke la valeur comme il se doit.
    Ok, effectivement ça doit se passer comme cela. Donc le client ne peut transmettre que du "texte" (ou nombre) au serveur et non des bits pour ce type de données si je peux conclure ainsi.

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 464
    Points : 19 453
    Points
    19 453
    Par défaut
    Salut à tous.

    Citation Envoyé par xpunet
    La question au fond est de savoir si il existe une écriture binaire spécifique pour les données de type DECIMAL(m,p)
    Je ne comprends toujours pas ce que vous cherchez à faire.

    A la question de la représentation du type DECIMAL en mémoire, il s'agit du DCB (décimal codé binaire).
    Un chiffre occupe quatre bits. Un nombre de n chiffres va occuper n/2 octets.
    Le signe occupe aussi quatre bits que l'on nomme d'ailleurs un quartet.

    Citation Envoyé par xpunet
    comment recréer cette écriture sous forme d'une suite de bits ?
    Dans quel but ?

    Citation Envoyé par xpunet
    ou bien est ce tout simplement du texte ?
    Comme nous parlons d'une réprésentation littérale, oui, il s'agit bien de texte.

    Citation Envoyé par xpunet
    Donc le client ne peut transmettre que du "texte" (ou nombre) au serveur et non des bits pour ce type de données si je peux conclure ainsi.
    Quand j'écris 0x25, est-ce de l'hexadécimale ou du texte ?
    A vrai dire, c'est du texte car vous pouvez le lire et l'interpréter comme une représentation hexadécimale.

    Soyez plus précis dans votre demande, sinon vous risquez de ne pas avoir la réponse attendue.

    Cordialement.
    Artemus24.
    @+

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    Artémus,

    Pour vous répondre en fait j'avais besoin d'approfondir mes connaissances, suite à différentes recherches je me suis retrouvé à essayer de savoir comment enregistrer un DECIMAL en "bit-values" pour diverses raisons, taille format.... Votre réponse me convient c'est ce que je cherchais : le DCB et il me semble donc qu'il n'est pas possible d'écrire un DECIMAL en "bit values" dans une requête SQL ou même dans une table (b'0...111000...1' ), c'est mysql qui gère en interne la lecture de type DECIMAL => cf escartefigue. On ne peut écrire un DECIMAL qu'avec du "texte" côté client.

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

Discussions similaires

  1. [AC-2013] Modification du type de de données dans une table
    Par patmar83 dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/04/2016, 08h03
  2. [AC-2007] Comment récupérer la valeur du dernier numéro auto inséré dans une table ?
    Par marot_r dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2010, 17h17
  3. Réponses: 4
    Dernier message: 02/02/2007, 08h41
  4. Comment connaitre le type d'un attribut dans une table?
    Par Abdou_9002 dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/03/2006, 10h07
  5. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26

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