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

avec Java Discussion :

Problème avec un resultatsSet.next()


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut Problème avec un resultatsSet.next()
    Rebonjour,

    Mon pb du jour : j'utilise un result_ref = ppt.executeQuery(); puis result_ref.next(); mais le pb c'est que le dernier enregistrement de ma requête n'est pas traité.Normal vous me direz car next() pointe sur l'enreg suivant .....alors comment faire pour traiter mon dernier enreg ????
    Merci d'avance pour vos idées,
    NFHnv

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Peut-on voir ton code?

    A+.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    Est-il possible de lire une requête sans le while(resultSet.next() ) car je ne veux pas boucler ???Si je mets resultSet.next() il va pointer sur le svt ...mais n'existe-t-il une solution pour juste lire sans pointer sur quelque chose ???
    NFHnv

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    try{Statement stmt = conn.createStatement(); 
         resultats = stmt.executeQuery(requete); 
         while (resultats.next())
           { 
              int  no_individu= resultats.getInt(1);
              String Nom_usuel =resultats.getString(2);
              String Prenom =resultats.getString(4);
              String Prenom2=resultats.getString(5);
    		     		    
    		         		         
     
              PreparedStatement ppt;
             ppt = conn_refuni.prepareStatement("select distinct "+ 
    		                                  "i.id_individu,"+						        "i.toto,"+    				                                               "i.titi "+
    								                                              "from "+
    								                                             "individu i, personnels p "+
    		                                "where " +						                   " p.supannempid=? " +					              " and p.id_personnels = i.id_individu "+
    								                                       "order by 1");
             ppt.setInt(1,no_individu); 
            result_ref = ppt.executeQuery(); 
            result_ref.next();       
            toto=result_ref.getString(3);
    				          
            Verif_unicite_mail( toto,Nom_usuel,Prenom,Prenom2        ,ctx,no_individu,conn);
           }	  
    			      		
            stmt.close();
    }
    		     
    catch (SQLException e) 
    		    {e.printStackTrace();
    		    }
    Le pb est que je ne veux pas boucler car je suis dejà dans une boucle.Je passe en paramètre de ma seconde requête le no_individu de la première.
    Une idée, merci ????
    NFHnv

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    Pas d'idée car l j'avoue ne plus comprendre ??????

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Tu n'as qu'à utiliser des variables pour garder sous la main les éléments lus avec next().

    Autre possibilité : tu commences par boucler avec next() pour parcourir tous les éléments et tu les sauvegardes dans une ArrayList. Puis tu traites cette ArrayList comme ça te chante.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    J'ai modifié mon code pour boucler sur le deuxième result_ref.
    Mais je n'ai tjrs pas mon dernier enreg.
    La réponse que j'ai eu ne me satisfait pas car cela ne m'explique pas pourquoi je n'ai pas cet enreg .....je ne vais pas casser tout mon code sans explication.
    Est-ce que dautres personnes ont des idées ??
    NFHnv

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par NFHnv Voir le message
    J'ai modifié mon code pour boucler sur le deuxième result_ref.
    Peut-on voir ton code?
    Et ce serait bien si on n'avait plus jamais besoin de te le demander.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    J'ai mis mon code au dessus ...pas la peine de s'enerver, faut lire !!
    NFHnv

  10. #10
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    NFHnv

    Je ne vois pas pourquoi tu te refuse à boucler sur le ResultSet. C'est normal que tu n'ai alors pas tous tes enregistrements puisque tu fais un next() et c'est tout. Du coup, si tu en as d'autre après, macache ! Ils passent à la trappe.

    La meilleure solution consiste à traiter TOUS les enregistrements retournés, et si seul un t'intéresse (tu ne peux pas connaître sa position dans le résultat...) et bien il faut mettre en place un jeu de conditions !
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    Rebonjour,

    Voici mon nouveau code, il fonctionne bien pour tous les enreg mais je n'est tjrs pas le dernier enreg de la deuxième requête qui est traité.....et par conséquent il me manque un enreg au final.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    try{
          Statement stmt =conn.createStatement(); 
          resultats = stmt.executeQuery(requete); 
     
          while (resultats.next())
          { 
             int  no_individu= resultats.getInt(1);
            String Nom_usuel =resultats.getString(2);
            String Prenom =resultats.getString(4);
            String Prenom2=resultats.getString(5);
     
     
            PreparedStatement ppt;
            ppt = conn_refuni.prepareStatement("select distinct "+ 
    		                                    "i.id_individu,"+
    		                                    "i.cn,"+
    	                                                "i.toto "+
    		                               "from "+
    	                                                 "individu i, personnels p "+
    		                               "where " +
    	                                                 " p.supannempid=? " +
    		                                   " and p.id_personnels =     
                                                                 "i.id_individu "+
                                                                 "order by 1");
     
            ppt.setInt(1,no_individu); 
            result_ref = ppt.executeQuery(); 
      			        				           	   while( result_ref.next())
    	   {
                       toto=result_ref.getString(3);
                       Verif_unicite_mail( toto,Nom_usuel,Prenom,Prenom2                                                                    ,ctx,no_individu,conn);
    	    }
     
     
       }stmt.close();}
     
    catch (SQLException e) 
            { 	e.printStackTrace();}
    Si quelqu'un a une idée ....au fait, je n'ai rien contre les boucles mais j'essaie de comprendre car jusqu'à présent je n'avais pas utilisé de resultset.next() ....
    Merci pour vos idées d'erreur sur mon code car je ne vois plus rien ......
    NFHnv

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    Il y a eu une erreur dans monpost précédent,après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     result_ref = ppt.executeQuery();
    il y a qui n'apparait pas mais qui y est dans mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while( result_ref.next())
    Merci d'avance

  13. #13
    Membre averti Avatar de Doopeijii
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Orne (Basse Normandie)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 215
    Points : 323
    Points
    323
    Par défaut
    Bon alors premièrement, j'ai du mal à lire ton code ! Faudrait l'indenter qu'il apparaisse convenablement...

    Sinon ça à l'air bon, si t'exécute tes requêtes en BdD directement, ça donne bien ? Ou sinon tu passe en mode débug et tu repère les erreurs.
    Un petit n'est pas de trop si le message est utile

    "Vous êtes très nombreux dans votre cas? J'ai jamais pensé que les cons étaient en minorité..."

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Points : 97
    Points
    97
    Par défaut
    C'est bon j'ai enfin trouvé ...ce n'était pas un pb java mais un pb dans une de mes bases.
    Merci tout de même pour votre participation à mes questions.
    NHVnv

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 124
    Points : 81
    Points
    81
    Par défaut
    Au pire si tu ne voulais vraiment pas boucler, il faut faire des requêtes SQL plus précises...

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

Discussions similaires

  1. problème avec la méthode find et find next
    Par Sylvie66 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2015, 17h33
  2. Problème avec next
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 10/04/2009, 11h28
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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