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 :

Quel est cette erreur "Element ResultSet n'est pas ouvert" Kezako ?


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 134
    Points : 54
    Points
    54
    Par défaut Quel est cette erreur "Element ResultSet n'est pas ouvert" Kezako ?
    Bonjours à tous,

    Je réalise un projet Web en Jsp avec NetBeans.

    J'ai une erreur dont je trouve pas l'origine ?
    java.sql.SQLException: L'élément ResultSet n'est pas ouvert. Vérifiez que la fonction de validation automatique est désactivée (OFF).

    Voici la méthode ou se déclare cette vilaine erreur

    Concernant les variables rs et con ils sont crée dans le constructeur de mon objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Connection con = null;
    ResultSet rs = null;
    Je tiens à dire que l'erreur se produit que lorsque j'appelle cette méthode.

    J'accède avec plusieurs méthode à ma DB et ça fonctionne très bien.

    Sauf le cas présent ....

    Pour se code aucun problème ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void dbConnecte() {//
            try {
                /*Charge les drives !*/
                Class.forName(driver).newInstance();
                String url = "jdbc:derby://localhost:1527/concours";
                con = DriverManager.getConnection(url, user, pass);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

    L'erreur se déclanche dans la boucle while(rs.next) ...
    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
     
    public List<Participant> getAllParticipants(int idConcour){
            this.dbConnecte();
            List<Participant> LParcitipant=new ArrayList<Participant>();
            PreparedStatement pstmt=null;
            try {
                String query = "SELECT distinct(login) FROM participation where id_concours=" + idConcour + "";
                pstmt = con.prepareStatement(query);
                rs = pstmt.executeQuery();
                while(rs.next()){
                    String login=rs.getString("login");
                    Participant participant=this.getParticipant(login);
                    LParcitipant.add(participant);
                }
            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.println("Exception lancé getAllPartcipants, class ConcoursDao");
            } finally {
                System.out.println("4");
                try {
                    rs.close();
                    pstmt.close();
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return LParcitipant;
        }
    Merci à tous

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Que fait getParticipant(login) ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pourquoi utiliser un resultset global à ton instance plutot qu'un resultset local à ta méthode, il ne sert à rien en dehors de ta méthode. A mon avis t'as une autrre méthode qui vient écraser ton resultSet (getParticipant(login)?) et ferme le resultSet, ce qui fait que ton while essaie à la fin de tourner sur le nouveau resultSet qui est déjà fermé.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 134
    Points : 54
    Points
    54
    Par défaut
    Hhhahaaaa salopard de cerveaux !

    Effectivement this.getParticipant(login) tue mon rs !

    J'ai résolue le problème en créant un ResultSet local

    Merci messieur

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

Discussions similaires

  1. [debutant](char **)0 Quel est cette notation ?
    Par SPACHFR dans le forum Débuter
    Réponses: 13
    Dernier message: 08/10/2007, 18h44
  2. ou est l'erreur dans cette syntaxe svp ?
    Par delavega dans le forum ASP
    Réponses: 2
    Dernier message: 29/05/2007, 14h03
  3. c'est quoi cette erreur??
    Par elekis dans le forum C++
    Réponses: 5
    Dernier message: 11/09/2005, 15h44
  4. [Erreur] Quel est cette erreur?
    Par netah25 dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/08/2004, 11h16

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