Newsgroup: it.comp.java
Titolo: result set

 Ho un resultSet.
 Esiste un metodo per sapere quanti record ho trovato con il ResultSet?
 Qualcosa tipo getCount....?
 Grazie
 --------------------------------
 Inviato via 
http://usenet.libero.it

  Qualcosa tipo getCount....?
Non esiste.
A seconda delle tue necessita', ovvero a che livello dell'applicazione ti
server sapere il numero di record puoi adottare due semplici sistemi:
1. fai una query che utilizza un "SELECT COUNT(*) NUM_RECORD..." e poi
assegni ad una variabile il valore risultante da un
ResultSet.getString("NUMERO");
2. all'interno del ciclo while (rs.next()) inserisci una variabile che
incrementa il suo valore di 1.
Spero di esserti stato utile.
Ciao,
JavaFun
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

si ma è sempre una query in +... boh non saprei io riempio un vettore
con l'rs e poi uso il vettore
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Veramente nel mio caso mi serve di saperlo prima il numero totale dei record
e non voglio fare una seconda query.
Se utilizzo:
rs.last();
int count=rs.getRow();
rs.beforeFirst():
while (rs.next())......
dove sbaglio???


saperlo prima di fare la query?? veggenza???
io ti dico se lo metti in un vettore hai il numero di record e un result
set fresco fresco per te


Il resultset deve essere di tipo scrollable?


 set fresco fresco per te
Questo è il mio codice.
Io ho bisogno di sapere prima di fare resultSet.next....... quanti record ho
ottenuto dalla query perchè mi serve per settare una barra di progressione.
resultSet = statement.executeQuery(query);
resultSet.last();
int count=(resultSet.getRow());
resultSet.beforeFirst();
while (resultSet.next()) {
Vector newRow = new Vector();
for (int i = 1; i <= getColumnCount(); i++) {
newRow.addElement(resultSet.getObject(i));
}
rows.addElement(newRow);


 con l'rs e poi uso il vettore
Meglio una (piccola) query in piu' che un vettore di oggetti, poi
utilizzando il JDK 1.1.8 le soluzioni non sono molte!


 JavaFun
insomma... java ha la fortuan di non avere più i puntatori del c e
quindi non andiamo ad intasare le memorie, ma prova a fare una query in
più su di un database ad alto traffico e vedi quali sono i tempi di
risposta.
:-)


 ha scritto nel messaggio
news:ag3vc0$isi$1...@news.newsland.it...


 :-)
Effettivamente le soluzioni sono molte, piu' o meno "pulite" (o
professionali), e variano a seconda della situazione da risolvere.
Sono d'accordo con te che una query in piu' puo' essere scomoda, ma un
COUNT non ha mai ammazzato nessuno (a parte se vai a toccare gli indici,
ma con le opzioni ||"" e +0 li puoi bypassare, almeno in Oracle).
Ti potrei girare la risposta che mi hai dato: e' meglio una query per
contare 1000 elementi o creare un vettore di 1000 oggetti? Anche
l'application server puo' soffrire ogni tanto. ;o)
Ma penso che su questo argomento potremmo andare avanti a dirne chissa'
quante, e' il bello della programmazione del resto, no?


 risposta.
Però intasi il garbage collector... e poi se il db è fatto a modo (stile
postgresql) comincia a mettere in cache, per cui una select count(*) prima
e una select dopo non dovrebbero essere così drammatiche. Poi, comunque,
per avere la empirica certezza basta fare un po' di prove... :)
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------