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

JDBC Java Discussion :

JDBOC-ODBC : Select in


Sujet :

JDBC Java

  1. #1
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut JDBOC-ODBC : Select in
    Bonjour,

    Sous JODBC-ODBC... je fais des traitements par paquets de données.

    J'execute une requête SQL, type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select col1, col2, col3
    from table
    where id in (1,2,3,4,5);
    Je remarque que si Id=1 n'existe pas dans "table" mais que Id=2,3,4 ou 5 existe (ou pas), le resultSet retourné est vide... sans ligne (rs.next() retourne false dès le 1er appel).

    Par contre, si Id=1 existe... le resultset n'est pas vide, et les lignes existantes dans table sont correctement retournées.

    En gros, il semble que si un élément de la liste n'existe pas dans la table (par rapport à la clause "where", ben la suite des éléments n'est pas retourné).



    Vous avez une réponse là dessus ? Type de curseur ? Je séche...

    Merci.

  2. #2
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    J'ajoute quelques nouvelles:
    1/ j'utilise une base Paradox : via l'ODBC.
    2/ je remarque également le phénoméne suivant -qui génére le phénonéne précédent :
    dés qu'un code est plus grand que la plus grande valeur de la clef -ici "id", les codes suivants de la clause 'in' ne sont pas considérés.... est donc, ma question change...

    Pourquoi lorsqu'un code de la clause 'IN' est supérieur à la plus grande valeur de ma clef -car dans ce cas, la clause est sur le clef- les valeurs suivantes sont ignorées, mais si elles existent dans la table ? Bug ? Spécification pas lue dans la clause IN de SQL ?

    Merci.

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 796
    Points
    4 796
    Par défaut
    As-tu moyen de tester ta requête en dehors de JDBC-ODBC (par exemple dans Paradox) pour vérifier le jeu d'enregistrements ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Oui,

    J'ai effectué les mêmes requêtes dans différents environnements:
    - IDE Paradox 10 : pas de symptôme
    - Editeur SQL (SQLViewer via ODBC) : pas de symptôme

    Il semble que se soit la couche JDBC -je m'avance doucement là, mais il reste plus que cela qui n'ai pas été isolé.

    J'ai regardé les sources JdbcOdbcDriver... et Statement. Cela finit en code natif très vite (et logique)...

    En attendant, j'ai ajouté une requête -monstrueuse- qui recherche la valeur maximum de la clef... afin d'éliminer les valeurs plus grandes, avant de les placer dans la clause 'in'. Cela manque de fiablité lorsque j'ajoute un enregistrement par une autre requête: cette valeur maximum devient fausse.

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 796
    Points
    4 796
    Par défaut
    Peux-tu poster le code que tu utilises avec la structure de la table ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. INSERT INTO x SELECT, via odbc et 2 bases différentes
    Par kryptx00 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 08/09/2013, 16h20
  2. Réponses: 3
    Dernier message: 28/10/2009, 02h09
  3. error connexion ODBC a une base de donnees pour une requete select
    Par padawanette dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/09/2008, 18h49
  4. [Requête SQL / ODBC] Select x INTO ZedZedZed?
    Par Jean_Benoit dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 25/12/2006, 08h42
  5. Comment Acceder à la Selection de sources ODBC
    Par lassad dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/10/2005, 10h16

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