Newsgroup: it.comp.java
Titolo: Problema con ResultSet e metodi update

Salve... c'è un problema chenon riesco a risolvere e per il quale chiedo l'
n-esimo aiuto!!!
Ho provato a riscrivere una classe che mi dava continuamente errori ma
purtroppo ora l'unico risultato è che mi viene segnalato un errore ciclo
while #2 = null....
perchè???
Riporto prima la porzione di codice interessata ein coda l'intera classe!!!
Grazie
Paolo
try
                {
                String query3="SELECT MillesimiEffettivi " + "FROM
ListaCondomini " + "WHERE AppBoxProp = ? ";
                PreparedStatement pst3=null;
                pst3=db.connection.prepareStatement(query3);
                System.out.println("L'appartamento che stiamo guardando è il
" + passaggio);
                passaggio=vettoreCab[progr];
                pst3.setString(1,passaggio);
                rsC=pst3.executeQuery();
                }
            catch (Exception e)
                {
                System.out.println("Errore selezione  : " + e.getMessage());
                }
            try
                {
                while(rsC.next())
                    {
                    rsC.updateInt("MillesimiEffettivi", millEff);
                    rsC.updateRow();
                    }
                }
            catch (Exception e)
                {
                System.out.println("Errore ciclo while #2  : " +
e.getMessage());
                }
            progr++;
            }
Ecco la classe completa
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.sql.*;
public class CalcolaMillesimi {
    public CalcolaMillesimi(ConnettiDB db) {
        int[]
vettoreMill={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};/*inizializzazione
vettori*/
        String[] vettoreCab = new String[21];
        int i;
        for (i=0;i==20;i++)
            {
            vettoreCab[i]="";
            }
        String codapp;
        int contatore=1; /*inizializzazione variabili*/
        int indice=0;
        int codid;
        ResultSet rsA, rsB, rsC; /*dichiarazioni ResultSet*/
        rsA=null;
        rsB=null;
        rsC=null;
        codid=0;
        codapp="";
        while (contatore<21) /*ciclo che mi permette di prelevare un dato
numerico e una stringa dalla tabella ListaAppartamenti_Box e di assegnarle a
vettori int e stringa risp. sono certo che la tab ha esettamente*/
            {
            try
                {
                PreparedStatement pst=null;
                String query1="SELECT idencode, CodiceAppBox  " + "FROM
ListaAppartamenti " + "WHERE idencode =?";
                pst=db.connection.prepareStatement(query1);
                pst.setInt(1,contatore);
                rsA= pst.executeQuery();
                }
            catch (Exception e)
                {
                System.out.println("Errore conn Lista appartamenti : " +
e.getMessage());
                }
            indice=contatore-1;
            try
                {
                while (rsA.next())
                    {
                    try
                        {
                        codid=rsA.getInt("idencode");
                        codapp=rsA.getString("CodiceAppBox");
                        }
                    catch (Exception e)
                        {
                        System.out.println("Errore prendere stringa " +
e.getMessage());
                        }
                    }
                }
            catch (Exception e)
                {
                System.out.println("Errore ciclo while: " + e.getMessage());
                }
            vettoreMill[indice]=codid;
            vettoreCab[indice]=codapp;
            contatore++;
            }
        int progr=0;
        int numeroCoinq=0;
        String passaggio;
        passaggio="";
        while (progr<20) /*Qui prelevo dalla tabella ListaCondomini il
numero di condomini che hanno il campo AppBoxProp= a ognuno dei valori
recuperati nella precedente query*/
            {
            try
                {
                String query2="SELECT CodiceFiscale, MillesimiEffettivi " +
"FROM ListaCondomini " + "WHERE AppBoxProp = ? ";
                PreparedStatement pst2=null;
                pst2=db.connection.prepareStatement(query2);
                passaggio=vettoreCab[progr];
                pst2.setString(1,passaggio);
                rsB=pst2.executeQuery();
                }
           catch (Exception e)
                {
                System.out.println("Errore selezione  : " + e.getMessage());
                }
           numeroCoinq=0;
           try
                {
                while(rsB.next())
                    {
                    numeroCoinq++;
                    }
                System.out.println("Numero appartamento " +
vettoreCab[progr] + "  numero inquilini " + numeroCoinq);
                }
            catch (Exception e)
                {
                System.out.println("Errore generico: " + e.getMessage());
                }
            int millEff=vettoreMill[indice]/numeroCoinq;
            try
                {
                String query3="SELECT MillesimiEffettivi " + "FROM
ListaCondomini " + "WHERE AppBoxProp = ? ";
                PreparedStatement pst3=null;
                pst3=db.connection.prepareStatement(query3);
                System.out.println("L'appartamento che stiamo guardando è il
" + passaggio);
                passaggio=vettoreCab[progr];
                pst3.setString(1,passaggio);
                rsC=pst3.executeQuery();
                }
            catch (Exception e)
                {
                System.out.println("Errore selezione  : " + e.getMessage());
                }
            try
                {
                while(rsC.next())
                    {
                    rsC.updateInt("MillesimiEffettivi", millEff);
                    rsC.updateRow();
                    }
                }
            catch (Exception e)
                {
                System.out.println("Errore ciclo while #2  : " +
e.getMessage());
                }
            progr++;
            }
     }
}

 while #2 = null....
Scusa, ma non fai prima a fare
String query="UPDATE ListaCondomini SET MillesimiEffettivi=... WHERE..."
e ad eseguire la query invece di questo accrocchio di lettura/esecuzione
ciclica ?
Davide

Mi dava errore in quel modo e quindi ho provato a cambiare un po' la
funzione!
Evidentemente c'è qualche cosa che non ho capito e che mi fa andare in
errore il ciclo di inserimento dati...

 while #2 = null....
Sicuro che il driver implementi i resultset aggiornabili?
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------