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 :

org.postgresql.util.PSQLException: Ce ResultSet est fermé.


Sujet :

JDBC Java

  1. #1
    Invité
    Invité(e)
    Par défaut org.postgresql.util.PSQLException: Ce ResultSet est fermé.
    Bonjour,

    Je viens de passer quelques minutes sur un bug que j'ignorais totalement et qui laisse perplexe quelques collègues. Voici le code suivis de l'exception reçue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Class.forName("org.postgresql.Driver");
    Connection conn = DriverManager.getConnection(
    				"jdbc:postgresql://xxx.yyy.zzz.www:1234/dbname",
    				"usr", "pwd");
    Statement state = conn.createStatement();
     
    ResultSet rs1 = state.executeQuery("SELECT * FROM test1 WHERE 1=1");		
    ResultSet rs2 = state.executeQuery("SELECT * FROM test2 WHERE 1=1");
     
    rs1.next();
    org.postgresql.util.PSQLException: Ce ResultSet est fermé.
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2563)
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.next(AbstractJdbc2ResultSet.java:1784)
    at Test.main(Test.java:27)
    La solution est de créer chaque ResultSet sur un nouveau Statement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Class.forName("org.postgresql.Driver");
    Connection conn = DriverManager.getConnection(
    				"jdbc:postgresql://xxx.yyy.zzz.www:1234/dbname",
    				"usr", "pwd");
     
    ResultSet rs1 = conn.createStatement().executeQuery("SELECT * FROM test1 WHERE 1=1");		
    ResultSet rs2 = conn.createStatement().executeQuery("SELECT * FROM test2 WHERE 1=1");
     
    rs1.next();
    L'un d'entre vous à t'il une explication à ce phénomène ?
    Merci


    Quelques précisions :
    - jre : 1.6.0_04
    - sgbd : PostgreSQL 8.2
    - driver : postgresql-8.2-505.jdbc3

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Java™ Platform Standard Ed. 6 Interface ResultSet
    A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/06/2011, 09h26
  2. Probléme : org.postgresql.util.PSQLException
    Par NiceMarocain dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 02/05/2010, 18h11
  3. org.postgresql.util.PSQLException: ERROR: column
    Par kokumbo dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 30/01/2009, 23h45
  4. Réponses: 0
    Dernier message: 29/09/2008, 18h13
  5. savoir si outlook s'est fermé correctement
    Par iubito dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 07/11/2003, 08h41

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