[ glamoc @ 06.09.2009. 22:17 ] @
Pokusavam da dohvatim maksimalnu vrednost primarnog kljuca jedne tabele sledecom naredbom

upit="SELECT MAX(pid) FROM poslovi;";
rs=stmt.executeQuery(upit);
long l=rs.getLong("pid");
i baci mi izuzetak da kolona "pid" ne postoji.Pokusao sam i sa upit="SELECT MAX(pid) AS maksimum FROM poslovi;"; ali opet nece.
[ _Abraxas @ 07.09.2009. 03:39 ] @
Mislim da bi kod trebalo ovako da izgleda:
Code:

upit="SELECT MAX(pid) AS maksimum FROM poslovi;";
rs=stmt.executeQuery(upit);
long l=rs.getLong("maksimum");


U tvom konkretnom slucaju upit ce vratiti tabelu sa jednim redom i jednom kolonom, gde je naziv kolone "maksimum". Da nismo koristili alias, naziv kolone bi najverovatnije bio MAX(pid), ali to moras sam probati, u SUBP-u koji koristis. :) U tom slucaju bi umesto "maksimum", metodi getLong prosledio "MAX(pid)", sto je i logicno, je li. :D
[ Ivan Ivanic @ 07.09.2009. 10:31 ] @
A je li ti baci exception kad radiš executeQuery ili getLong?
[ glamoc @ 07.09.2009. 15:11 ] @
Exception baca kad radim getLong ali posto uradim agregatnu funkciju MAX.Kad radim na tabeli iz baze sve radi.
Mislim da je u pitanju driver ali nisam siguran
[ Ivan Ivanic @ 07.09.2009. 19:14 ] @
Citat:
glamoc: Pokusavam da dohvatim maksimalnu vrednost primarnog kljuca jedne tabele sledecom naredbom

upit="SELECT MAX(pid) FROM poslovi;";
rs=stmt.executeQuery(upit);
long l=rs.getLong("pid");
i baci mi izuzetak da kolona "pid" ne postoji.Pokusao sam i sa upit="SELECT MAX(pid) AS maksimum FROM poslovi;"; ali opet nece.

Pa kolona pid ti i ne postoji. Tabela koju ti upit vrati izgleda ovako
---------------------
- MAX(pid) -
---------------------
- 23 -
---------------------
Znači ova poslednja linija tvog koda treba da izgleda ovako:
long l = rs.getLong("MAX(pid)");
A i mogao bi da čekiraš:
if(rs.next()){
//bla bla bla
}
jer ako nemaš podataka u bazi... imaš exception.
[ grizzly @ 12.09.2009. 18:50 ] @
Nemam vremena da probam ali mislim da pi pre nego kazes .getLong() morao jednom da kazes rs.next() da ti se pokazivac result setu pozicionira na prvi red jer je posle upita on ispred istog.

poz