Tout a fait exact, comme je travaille toujours sur une m�me base, j'avais
omis ce d�tail.

Pour la m�thode isClosed(), ca serait trop simple;) !

Peut �tre faire la remarque � JCP pour qu'il modifie l'API JDBC.

Laurent For�t.

----- Original Message -----
From: "Erik Mazoyer" <[EMAIL PROTECTED]>
To: "Laurent For�t" <[EMAIL PROTECTED]>
Sent: Friday, March 07, 2003 11:54 AM
Subject: RE: Resultset et close()


> > ...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]
> >
>
>

Répondre à