> ...puis regarder l'�galit� du message, en clair. Le probl�me est que ce message est d�pendant de la base de donn�e. Je peux tr�s bien recevoir : "The Resulset is closed" ou "L'ensemble des r�sultats est d�j� ferm�".
Une analyse g�n�rique me semble impossible. Bref, j'ai bien l'impression qu'il n'y a pas de solution. Ce serait pourtant si simple une m�thode : public boolean isClosed() throws SQLException Merci, -------------------------------------------------------------------- Erik Mazoyer, Chef de projet HyperOffice 6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex T�l. 01 41 96 96 76 Fax 01 41 96 96 77 M�l [EMAIL PROTECTED] -----Message d'origine----- De : Laurent For�t [mailto:[EMAIL PROTECTED] Envoy� : vendredi 7 mars 2003 11:48 � : [EMAIL PROTECTED] Objet : Re: Resultset et close() Un truc affreux mais qui doit marcher est de rep�rer le message qui est renvoy� par l'exception dans le cas o� le rs est d�ja fermer. puis regarder l'�galiter du message, en clair : if(rs != null) { try { rs.close(); } catch(SQLException sqlex) { if ( ! sqlEx.getMessage().equals("SQL already CLOSED)) { throw sqlEx; } } laurent Foret. ----- Original Message ----- From: "Erik Mazoyer" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, March 07, 2003 11:33 AM Subject: Resultset et close() > J'ai une m�thode qui ouvre un java.sql.ResultSet sur une base de donn�e. > Dans le finally de la m�thode, je referme le ResultSet (m�thode close()). > > ResultSet rs = null; > try { > ... > rs = stmt.executeQuery(...); > ... > } finally { > if(rs != null) { > rs.close(); > } > } > > Le probl�me est qu'au cours de la m�thode ce ResultSet peut �tre ferm� ou non (la m�thode n'est pas en mesure de le savoir). > > Je n'ai pas trouv� de solution pour d�termin� si un ResultSet est ferm� ou non. > > Si je le ferme � nouveau le ResultSet dans le finally, une exception est lev�e. > Mais h�las elle est de type SQLException, ce qui n'est pas sp�cifique. > > Bref pour l'instant la seule solution trouv�e est de ne pas tenir compte de l'exception lev�e par le close. > > } finally { > if(rs != null) { > try { > rs.close(); > } catch(SQLException sqlex) {} > } > } > Mais cela masque aussi toutes les autres raisons pour lesquelles le close n'a pu avoir lieu, ce qui nuit au d�boguage. > > public void close() > throws SQLException > ... > Throws: > SQLException - if a database access error occurs > > Bref, avez vous une solution � me proposer ? > > Merci, > > -------------------------------------------------------------------- > Erik Mazoyer, Chef de projet > HyperOffice > 6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex > T�l. 01 41 96 96 76 > Fax 01 41 96 96 77 > M�l [EMAIL PROTECTED] >
