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

Décisions SGBD Discussion :

[SGBD/JDBC] [JAVA/MS ACCESS] problème résultat requête


Sujet :

Décisions SGBD

  1. #1
    Membre à l'essai

    Inscrit en
    Octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 7
    Points : 18
    Points
    18
    Par défaut [SGBD/JDBC] [JAVA/MS ACCESS] problème résultat requête
    Bonjour,

    J'ai développé un programme qui permet soit de travailler sur une base SQL ou en local sur une base Access.
    Les requêtes fonctionnent très bien sous SQL mais certaines donnent des résultats troublant sous Access.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet query=statement.executeQuery("select distinct jour from saisies,lp,periodes where uti_num="+uti_num+" and valide=0 and periodes.periode=saisies.periode and lp.lp=saisies.lp and lp.visible=1 and periodes.visible=1 order by jour");
    Cette requête retourne une liste de champs 'Jour' en fonction de 3 tables (saisies,lp,periodes).
    Sous SQL j'obtiens bien mes jours escomptés (4), mais via une connexion ODBC (driver Sun) sur une base Access j'en obtiens 352 !!! (les données des tables sont identiques entre Access et SQL).
    J'ai exécuté la requête directement dans Access, et j'obtiens bien le même nombre de jour (4) que sous SQL.
    En cherchant, j'ai compris d'où provient ce nombre de lignes : 352. La table LP contient 22 enregistrement, la table periodes contient 4 enregistrements => 4*22=88 possibilités, comme il y a 4 jours possibles=>88*4=352.
    J'en ai déduit que les liens des tables avaient été ignorés, j'ai donc refais ma requête en utilisant la fonction JOIN => même résultat => les liens sont ignorés.
    J'en conclu que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select XXX from A,B,C where A.X=B.X and A.Z=C.Z
    est équivalent à [code]select XXX from A,B,C[code] !!!!!????
    Est-ce que quelqu'un aurait une idée car j'ai beau cherché j'ai rien trouvé.

    Merci
    Ma doctrine : Un programme qui bugue est un programme évolutif

  2. #2
    Membre à l'essai

    Inscrit en
    Octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 7
    Points : 18
    Points
    18
    Par défaut Suite de mes recherches
    Je me demande si c'est pas la commande DISTINCT qui est ignorée

    ...... une idée ?

    Merci

    Mouah
    Ma doctrine : Un programme qui bugue est un programme évolutif

  3. #3
    Membre à l'essai

    Inscrit en
    Octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 7
    Points : 18
    Points
    18
    Par défaut vérification faîte
    je viens de modifier le code pour vérifier si le problème provenait bien du fait du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ... from saisies,periodes,lp
    pour obtenir une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select distinct jour from saisies where lp in (....) and periodes in (...) ...
    le résultat me donne toujours 352 enregistrements au lieu de 4 comme sous SQL ou sous Access, j'en déduis que le problème vient de distinct
    Est-ce que quelqu'un a une idée ... voire la solution

    Merci

    Mouah
    Ma doctrine : Un programme qui bugue est un programme évolutif

  4. #4
    Membre à l'essai

    Inscrit en
    Octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 7
    Points : 18
    Points
    18
    Par défaut La solution
    Bonjour à toutes et à tous,

    Si quelqu'un rencontre le même problème (ou similaire), voici la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select distinct XX from (select distinct XX from T,Y where ...)
    @+

    Mouah
    Ma doctrine : Un programme qui bugue est un programme évolutif

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/02/2008, 11h45
  2. [VB.Net][Access] Problème de requête d'insertion
    Par xG-Hannibal dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/07/2006, 11h57
  3. Réponses: 4
    Dernier message: 13/02/2006, 18h58
  4. [Access] Probléme de requête
    Par Striker96 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 03/02/2006, 16h38
  5. Réponses: 3
    Dernier message: 11/10/2004, 17h26

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