1 messaggio dal 18 novembre 2006
Ciao a tutti!!!

Con questo codice tramite ResultSetMetaData riesco a caricare in un array di stringhe prima il nome dei campi e poi col ResultSet.getString vorrei inviare in output il risultato della mia query.Mi stampa il nome del campo ed il tipo ma poi qualcosa non va nel successivo setString generando una:"NullPointerException".Dove sbaglio?

Questo il codice:







public void query(){

cn=ctx.CtxOpen();//apro la connessione,cn è il mio oggetto connection

try{

stmt =cn.createStatement();

rs=stmt.executeQuery(sql);


ResultSetMetaData md=rs.getMetaData();

int num=md.getColumnCount();

System.out.println("Numero di colonne " + num);



String label[]=null;

for(int i=1;i<=num;i++){

System.out.println(md.getColumnName(i)+ " " +md.getColumnTypeName(i));



label[i]=md.getColumnName(i);


}


while(rs.next()){

System.out.println("\n");

for(int i=1;i<=num;i++){


label[i]=rs.getString(label[i]);//l'errore dovrebbe essere qui!!*******

System.out.println(" "+label[i]);


}

}

}

catch(SQLException exSQL){

System.err.println("Nation:errore nella upDate:"

+ exSQL.getMessage());

}

catch(NullPointerException ee){System.err.println(ee.toString());}

finally{

ctx.CtxClose();

}

}






L' errore dovrebbe essere dove ho inserito gli * ma non riesco a capire dove?Come potrei comunque inviare in output il risultato di una mia query select quando non conosco appunto in numero di campi ed il loro nome e tipo?

Grazie.
74 messaggi dal 06 maggio 2001
Non hai inizializzato l'array delle etichettel. Prova cosi':
...
System.out.println("Numero di colonne " + num);

String label[]=new String[num];

for(int i=1;i<=num;i++){
...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.