Ho questo codice ma mi da un piccolo problema che nn riesco proprio a capire il perché.
In pratica nella prima query dovrebbe estrarmi 3 righe ma dopo il primo giro di while dovrebbe ritornarmi per fare il secondo griro di operazioni senza problemi e invece mi solleva un eccezione dicendo che il Resultset is closed.
Ma è impossibile xche la chiusura è posta fuori dal while quindi nn capisco proprio quale sia il problema....forse che l' executeUpdate mi chiude il resultset prematuramente?
Grazie di ogni aiuto/consiglio
codice:try { //LinkedList list=new LinkedList(); Statement s = c.createStatement(); String query="SELECT ID, SquadraCasa, SquadraFuori, RisultatoA, RisultatoB, girone,Disputata, giornata, Calcolata from Partite where Disputata=1 and Calcolata=0"; ResultSet r = s.executeQuery(query); while(r.next()) { int IDPartita=r.getInt("ID"); int IDSquadraCasa=r.getInt("squadraCasa"); int IDSquadraFuori=r.getInt("squadraFuori"); int risA=r.getInt("RisultatoA"); int risB=r.getInt("RisultatoB"); ptisquadracasa=0; ptisquadrafuori=0; vinteA=vinteB=pareggioA=pareggioB=perseA=perseB=0; select=1; if(risA>risB){ ptisquadracasa=3; vinteA=1; vinteB=pareggioA=pareggioB=perseA=0; perseB=0; select=1; } else if(risA==risB){ ptisquadracasa=1; ptisquadrafuori=1; pareggioA=pareggioB=1; vinteA=vinteB=perseA=perseB=0; select=0; } else{ ptisquadrafuori=3; vinteB=1; vinteA=pareggioA=pareggioB=perseA=perseB=0; perseA=0; select=2; } String query1="UPDATE Classifica SET giocate=giocate+1,punti=punti+"+ptisquadracasa+", vinte=vinte+"+vinteA+",pareggiate=pareggiate+"+pareggioA+", perse=perse+"+perseA+",golfatti=golfatti+"+risA+",golSubiti=golSubiti+"+risB+",diffreti=diffreti+"+(risA-risB)+" where idsquadra="+IDSquadraCasa; s.executeUpdate(query1); String query2="UPDATE Classifica SET giocate=giocate+1,punti=punti+"+ptisquadrafuori+", vinte=vinte+"+vinteB+",pareggiate=pareggiate+"+pareggioB+",perse=perse+"+perseB+",golfatti=golfatti+"+risB+",golSubiti=golSubiti+"+risA+",diffreti=diffreti+"+(risB-risA)+" where idsquadra="+IDSquadraFuori; s.executeUpdate(query2); String query3="UPDATE Partite set Calcolata=1 where ID="+IDPartita; s.executeUpdate(query3); } //li processa alla fine del while r.close(); s.close(); } catch(SQLException sqlex){ sqlex.printStackTrace(); } catch(Exception ex){ ex.printStackTrace(); }

Rispondi quotando