/Anonimizzato3208Utente anonimizzato18 nov 2006, 14:08Ciao 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=md.getColumnName(i); } while(rs.next()){ System.out.println(\"\\n\"); for(int i=1;i<=num;i++){ label=rs.getString(label);//l'errore dovrebbe essere qui!!******* System.out.println(\" \"+label); } } } 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.
/Anonimizzato3183Utente anonimizzato18 nov 2006, 14:16String label[]=null; Questa dichiarazione a cosa ti serve? Se volessi dichiarare un vettore, la giusta sintassi sarebbe String[] label = new String[[i]Dimensione[/i]]
/Anonimizzato3208Utente anonimizzato18 nov 2006, 18:04Hai ragione....che distrazione!!! Comunque non va lo stesso.La risposta è:java.lang.NullPointerException!
/Anonimizzato3183Utente anonimizzato19 nov 2006, 01:53Non riesci ad individuare in che punto salta fuori l'eccezione?
/Anonimizzato3208Utente anonimizzato19 nov 2006, 11:09Risolto!!! Era proprio dove dicevo.Il problema era che l' array di stringhe partiva da 0 mentre l' indice dei ResultSetMetaData parte da 1.Bastava sostituire label=rs.getString(label) con label[i-1]=rs.getString(i); Grazie dell' aiuto.