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

MS SQL Server Discussion :

Changer le séparateur de nombre


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Août 2013
    Messages : 54
    Points : 47
    Points
    47
    Par défaut Changer le séparateur de nombre
    Bonsoir ,

    J'ai travaillé sur une installation de SQL Server qui enregistrait les réels dans la base de données avec le . comme séparateur de partie entière et partie décimal.
    Je viens de déployé l'application qui fonctionne chez moi sur la machine d'un amie mais chez lui les réel sont enregistré en , comme séparateur.Du cout mon application affiche les erreur chez lui.

    J'aimerai savoir comment changer le séparateur de réel dans le SGBD MS SQL-Server pour qu'il soit valide pour toujours.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par tobus2012 Voir le message
    J'ai travaillé sur une installation de SQL Server qui enregistrait les réels dans la base de données avec le . comme séparateur de partie entière et partie décimal.
    - Les Floats et les réels ne sont pas stockées comme des chaines de caractères avec le . comme séparateur !!! C'est une grosse erreur de compréhension de votre part (vous n'êtes pas le seul !) sur la représentation interne des Floatr et Réel.
    - Les type Float et Réel, sont représentés physiquement, en mémoire, en binaire, par des 0 et 1, au plus sur 8 octets. Le type Float est un type de données approximatives dont la représentation interne s'approche de la norme IEEE 754.

    Citation Envoyé par tobus2012 Voir le message
    Je viens de déployé l'application qui fonctionne chez moi sur la machine d'un amie mais chez lui les réel sont enregistré en , comme séparateur.Du cout mon application affiche les erreur chez lui.
    J'aimerai savoir comment changer le séparateur de réel dans le SGBD MS SQL-Server pour qu'il soit valide pour toujours.
    - Sous SQL Server, toute constante ou valeur littéral de type Float, Decimal ou Real doit être représentée par la notation scientifique indépendamment de toute culture ou langue.
    - Le séparateur décimal, s'il doit figurer dans le littéral de type Float, Décimal ou réel doit être forcément représenté par un point '.' (jamais par une virgule), et ce, encore une fois, quelle que soit la langue ou la culture.
    - La virgule n'est ni supportée, ni reconnue dans les constantes ou valeur littéral de type Float, Decimal ou Real, et ce, quelle que soit la langue et quelle que soit la culture.

    En conclusion :

    - Votre problème se situe plus au niveau de votre application qu'au niveau SQL Server. Votre application doit veiller à transmettre les valeurs littérales Float, Decimal ou Real avec le point '.' comme séparateur décimal, et ce, quels que soient les paramétrage régionaux du poste client. Choses que votre application, semble t-il, ne fait correctement ! Je soupçonne que votre application ne soit pas écrite dans les règles de l'art !
    - Regardez aussi du coté de vos outils de développement, middleware, etc..

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Août 2013
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Tout à fait hmira ,je suis d'accord avec toi car que ce soit SSMS ,mon application ils sont juste les client de SQL Server qui lui gère les type de façon basique don en convention IEEE.

    J'utilise le MVC et EF

    Dans mon application j'ai :

    Un objet View Model qui permet d’hydrater une Vue ,Mon objet View model a des champs réel.
    Pour récupére mon View Model :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
              TP_Tables ReturnObjet = db.TP_Tables.Find(id);
                TablesVM MidelObjet = new TablesVM();
                if (ReturnObjet == null)
                {
                    return null;
                }
     
                MidelObjet.par1 = ReturnObjet.par1;
                MidelObjet.par2= ReturnObjet.par2;
                return MidelObjet;
    Mon objet MidelObjet est utilisé pour hydrater une Vue cela marche très bien mais ce que je ne comprends pas c'est la façon donc les réels sont affiché dans
    mes TextBox (12,5) avec la , comme séparateur. Hors moi je veux que c'est le . le séparateur.


    Et même quand je soumet le formulaire avec les valeur de réel contenant le . comme séparateur (12.5 ) j'ai une erreur la valeur de ModelState.IsValid est false et si je change le . par la , tous marche nickel.
    Donc cela veut dire que Mon Framework utilise la , comme séparateur de réel.
    Moi je veux que c'est le . qui soit utilisé pour toutes les OS(Anglais,Allemand,etc.....)

    Comment peut-on apporter cette modifications pour que qu'elle que soit l'OS le séparateur c'est le .

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Ici vous être sur le forums dédié à SQL Server.

    Vous pouvez, à la limite, voir à l'aide du profiler toutes les requêtes SQL envoyées, depuis votre application, au Serveur de base de données, y compris les éventuelles commandes de modification des paramètres de session, etc.

    Mais, comme je l'ai expliqué ci-dessus, aucun paramétrage au niveau SQL Serveur, ne vous permettra de modifier le séparateur décimal attendu dans les expression littérales Float ou Real. C'est à la charge de l'application de respecter la syntaxe SQL Server.

    Le problème que vous rencontrez, tel que vous l'avez décrit, est d'ordre applicatif (Framework, etc..). Peut-être avec un peu de chance vous aurez, dans le présent Forum, d'autres réponses ou d'autres pistes à explorer, mais vous devez également posez votre question dans le forum idoine, en rapport avec votre Framework de développement.

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

Discussions similaires

  1. Changer le format de nombre d'une variable
    Par wrm8787 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2009, 21h31
  2. changer de séparateur décimal
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/03/2008, 10h47
  3. Changer le séparateur d'un fichier csv depuis VB5
    Par manue22 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 09/11/2007, 09h29
  4. problème avec le séparateur de nombre décimal
    Par G_Kill dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/03/2007, 20h54
  5. Changer les séparateurs pour ">>"
    Par jeanmarcL dans le forum C++
    Réponses: 1
    Dernier message: 03/08/2006, 22h07

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