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

Autres SGBD Discussion :

Nombre de décimales connexion ODBC


Sujet :

Autres SGBD

  1. #1
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut Nombre de décimales connexion ODBC
    Bonjour,

    J'accède à une base en ODBC et lorsque je fais un select, le nombre de décimale du réel est limité à 10. Or j'ai encore au moins un chiffre derrière. En effet, ce réel est la transformation d'une date/heure en réel. Là où je n'ai pas de chance, c'est que ce réel est utilisé comme clé unique dans la table. Donc si je n'arrive pas à récupérer l'intégralité des décimales, je ne peux pas mettre à jour les données dans la table.

    Lorsque je lance la même requête sur DBeaver, j'arrive à tout récupérer en modifiant le nombre de décimales affichées. Ça doit donc être possible.

    Quelqu'un sait-il comment faire pour modifier la précision dans une connexion odbc ?

    Je tiens à préciser que je ne peux pas modifier la clé, et que ce n'est pas moi qui ai fait une telle débilité, malheureusement maintenant faut que je fasse avec.

    Merci à tous par avance
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    C'est une hérésie totale d'utiliser un nombre à virgule pour une clef primaire d'une table. Je croyais avoir vu les pires idioties dans ma vie, mais je tombe des nues !

    En effet, les ordinateurs travaillant en puissance de deux (d’où le terme "binaire") et par conséquent il y a perte de précision lors de la conversion d'une valeur décimale exprimée en base 10 vers la base 2...

    Par exemple le chiffre 0,2 (en base 10), s'exprime en base 2 :
    0.00110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011.........

    En effet, le nombre de décimales de ce chiffre est infini en base 2...

    Du fait que les ordinateurs sont des machines finies elles ont des limitations. Par exemple en 32 bits, ce nombre sera tronqué à :
    0.001100110011001100110011001100110
    Lors de la reconversion en base 10, ce nombre devient :
    0.19999999995343387127

    Vous ne retrouverez JAMAIS ce nombre de manière exacte...

    Repensez complément la structure de votre base et supprimez TOUTES les clef décimale ! Le type INT permet d'aller jusqu'à 4 milliards de valeurs pour une clef et le BIGINT jusqu'à 18*446*744*073*709*551*616

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Moi aussi je pensais avoir tout vu et je sais très bien que c'est une hérésie d'avoir fait ça mais malheureusement je ne peux pas modifier cette clé qui est utilisée par d'autres applicatifs. Je subis les idioties de développeurs qui ne devraient d'ailleurs peut-être pas l'être...

    J'ai tout de même pu rajouter une colonne de type entier sans que cela ne gêne les autres applications et je me suis du coup basé là dessus.

    Je connais bien les problèmes que peuvent engendrer les réels, je les ai d'ailleurs rayés de mes développements depuis fort fort fort longtemps...
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/11/2008, 14h49
  2. SQL Server connexion ODBC
    Par klael dans le forum Bases de données
    Réponses: 7
    Dernier message: 09/03/2004, 10h18
  3. [Foxpro]Connexion ODBC par programme
    Par Richard MORRISSEY dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 07/07/2003, 21h55
  4. connexion ODBC FileMaker pro 5 à ArcView 8.2
    Par Alex Blond dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/06/2003, 17h08
  5. Connexion ODBC
    Par Anonymous dans le forum Réseau
    Réponses: 2
    Dernier message: 23/04/2002, 12h10

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