Problème ResultSet fermé alors que non
Bonjour,
J'ai un problème qui me bloque depuis maintenant quelques heures. Je boucle sur un resultSet pour ressortir tous les résultats. J'utilise deux boucle do while imbriqué, La plus profonde se déroule correctement mais lors du passage à la prochaine itération pour l'autre ResultSet, j'ai une exception qui se lève je ne sais pas pourquoi.
Voici le code :
Code:
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 39 40 41 42
| public void storeVisitorTime(int[] data) throws SQLException {
modifySequenceTable("visitortime");
//We select the last id of the simulation
String query_select_sim = "SELECT id FROM simulation";
ResultSet res_sim = state.executeQuery(query_select_sim);
if(res_sim.last()) {
int id_fk = res_sim.getInt("id"), id_exhibit, id_visitor, id_exhibit_unique;
String query_select_ex, query_insert, query_select_vis;
ResultSet res_ex, res_vis;
PreparedStatement ps;
//Select the exhibit id
query_select_ex = "SELECT e.* FROM exhibitentity e, roomentity r, simulation s ";
query_select_ex += "WHERE e.room_id=r.id AND r.simulation_id=s.id ";
query_select_ex += "AND s.id="+id_fk;
res_ex = state.executeQuery(query_select_ex);
if(res_ex.first()) {
do {
id_exhibit = res_ex.getInt("id");
id_exhibit_unique = res_ex.getInt("exid"); //Select the exhibit id necessary to recory the correct data
query_select_vis = "SELECT v.id FROM visitorentity v, simulation s ";
query_select_vis += "WHERE v.simulation_id=s.id ";
query_select_vis += "AND s.id="+id_fk;
res_vis = state.executeQuery(query_select_vis);
if (res_vis.first()){
do {
//Select the visitor id
id_visitor = res_vis.getInt("id");
query_insert = "INSERT INTO visitortime (visitor_id, exhibit_id, time_enter) ";
query_insert += "VALUES (?,?,?)";
ps = conn.prepareStatement(query_insert);
ps.setInt(1, id_visitor);
ps.setInt(2, id_exhibit);
ps.setInt(3, data[id_exhibit_unique]); //Recovery the correct data
ps.executeUpdate();
} while (res_vis.next()) ;
}
}while (res_ex.next()) ;
}
}else{
throw new SQLException("The table simulation haven't row");
}
} |
et voici l'exception :
Code:
1 2 3 4 5 6
| May 28, 2014 11:17:59 AM museumsimulator.MuseumSimulator run
SEVERE: null
org.postgresql.util.PSQLException: This ResultSet is closed.
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2662)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.next(AbstractJdbc2ResultSet.java:1794)
at museumsimulator.experimentsMeasurements.StoreData.storeVisitorTime(StoreData.java:546) |
Est-ce que quelqu'un connaitrais la cause svp ?