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

NHibernate Discussion :

nhibernate et decimal


Sujet :

NHibernate

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 41
    Points : 26
    Points
    26
    Par défaut nhibernate et decimal
    bonjour,
    j'envoi via nhibernate la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String request = "
    SELECT o.OutletId, o.Name, (SELECT DISTINCT c.Dv From CoeficientProd c WHERE c.OutletId = o.OutletId AND c.DayId=20091105), 
    (SELECT DISTINCT c.Dn From CoeficientProd c WHERE c.OutletId = o.OutletId AND c.DayId=20091105) From Outlet o, OutletSubChannel osc
     WHERE o.OutletId=osc.OutletId AND osc.SubChannelId IN (9,236,5,233,6,234,2,1,10,8,237,7,4,238,239,0,235,3,11) 
    ORDER BY o.OutletId
    "
     
     IQuery q = m_session.CreateSQLQuery(request);
                    result = q.SetTimeout(3600).List();
    Dans ma table, j'ai des lignes comme ceci:
    outletId Name dv dn
    11305 supermagasin 12.154 168.145

    les dv et dn sont de type decimal(18,3)

    En sql, la requete retourne les bonnes valeures 12,154 et 168,145.

    Par contre, en nhibernate, ça me renvoit : 12.154 et 12.154.
    c'est à dire 2 fois la meme valeur.

    La version de nhibernate.dll est 2.1.0.4000.

    Quelqu'un a t'il une idée ?

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    c'est possible de voir le code qui "lit" les valeurs dans la liste de retour ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    je fais juste un .GetEnumerator après.
    Mais ce n'est même pas à la lecture parce que sous le debugguer de visual studio quand j'inspecte ma liste de retour les valeurs ne sont pas bonnes.
    Je me retrouve avec deux fois la valeur de c.Dv.

    D'ailleurs si on inverse les 2 sous select, en mettant c.Dn avant le c.Dv, je me retrouve avec 2 fois la valeur de c.Dn.

    Comme ci il y avait un problème quand nhibernate récupérait la 1ere valeur qui est en décimal(18,3).

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    essaye à tout hasard en mettant des alias différents pour tes 2 select imbriqués ....

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    j'ai déja essayé. Toujours l'erreur.

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    et si tu récupères une seule valeur à la fois, tu récupères bien celle que tu veux ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Oui

  8. #8
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 385
    Points : 2 999
    Points
    2 999
    Par défaut
    Est-ce que tu as essayé de visualiser la requête effectivement envoyée au SGBD avec un ShowSQL = true dans ta config NHibernate ?

Discussions similaires

  1. Decimal-format
    Par bidson dans le forum XMLRAD
    Réponses: 4
    Dernier message: 29/06/2004, 18h58
  2. [C#] Recupération d'un decimal dans un DataReader
    Par niPrM dans le forum Accès aux données
    Réponses: 7
    Dernier message: 28/05/2004, 10h10
  3. definir un nombre decimal sur 2 numero max apres la vergule
    Par nil dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/02/2004, 21h49
  4. [langage] conversion décimal vers hexa
    Par chipster dans le forum Langage
    Réponses: 2
    Dernier message: 23/02/2004, 16h05
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

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