Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Errore Chiusura Resulset prematura

    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();
        	}
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    infatti come temevo
    effettivamente era un mio errore.

    ho memorizzato le query da fare in una linkedlist e le ho fatte fuori dal while(r.next()) tutte di seguito con un for e li ha funzionato tutto.

    grazie cmq per l'ospitalità.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.