Avatar billede boomshanka Nybegynder
19. januar 2005 - 11:19 Der er 9 kommentarer og
1 løsning

ResultSet.getFetcSize i java.sql returnerer 0

Såvidt jeg kan forstå kan man bruge funktionen getFetchSize() for at få antallet af rækker i et ResultSet, men af en eller anden ukendt årsag returnere den 0 for mit ResultSet.

Jeg har forsøgt at køre min SQL sætning direkte i databasen (udenom java) og resultatet viser 5 rækker. Har jeg misforstået formålet med getFetchSize()?
Avatar billede boomshanka Nybegynder
19. januar 2005 - 11:26 #1
Det skal lige tilføjes, at hvis jeg indsætter 5 istedet for rs.getFetchSize() så virker mit eksempel fint
Avatar billede boomshanka Nybegynder
19. januar 2005 - 11:31 #2
...og jo jeg kunne godt bare sende en forespørgsel til databasen som returnere antallet af rækker i tabellen, men i det her tilfælde er jeg ikke ude efter en alternetiv løsning, men netop om jeg kan bruge getFetchSize() :-)
Avatar billede di8leva Nybegynder
19. januar 2005 - 11:36 #3
Jeg har aldrig brugt rs.getFetchSize(), men eftersom man kan bruge rs.setFetchSize(...) så tror jeg ikke det er ret.

Hvad med at bruge:
--------------------------
ResultSet rs = dbclient.getResultSet();
while(rs.next())
  result.add(new Integer(rs.getInt(1)));
--------------------------
Avatar billede arne_v Ekspert
19. januar 2005 - 11:50 #4
Jeg kender kun 2 måder at få antal rækker på:

1)  fyre en SELECT COUNT(*) FROM ... af i en seperat query

2)  lave et scrollable result set, gå til last row, hapse row number og
    gå tilbage til first row inden man læser data normalt
Avatar billede boomshanka Nybegynder
19. januar 2005 - 12:03 #5
Argh sorry guys...der var lige knuder med forbindelsen til eksperten.dk, så jeg nåede ikke at lukke spørgsmålet inden jeres kommentarer, men jeg fandt den her:

http://bugs.mysql.com/bug.php?id=2612

Jeg vil gerne give jer 15 point hver når der tilsyneladende er en fejl i JDBC og der kun findes alternative løsninger
Avatar billede di8leva Nybegynder
19. januar 2005 - 12:44 #6
never mind, jeg behøver ikke points. Luk du selv.
Avatar billede arne_v Ekspert
19. januar 2005 - 12:51 #7
Men fetch size er stadig ikke antal række ri result set - bug eller no bug.

Det er en performance optimerings ting om hvor mange rækker JDBC skal hente af gangen.

Jeg har forklaret hvordan du kan hente antal rækker.
Avatar billede boomshanka Nybegynder
19. januar 2005 - 13:20 #8
det er også i orden - dermed har du jo også svaret på mit spørgsmål.

Men vil du ikke have point? :-)
Avatar billede arne_v Ekspert
19. januar 2005 - 13:25 #9
hvis jeg har fortjent nogen
Avatar billede boomshanka Nybegynder
19. januar 2005 - 13:42 #10
Bestemt! Mit spørgsmål gik jo netop på om hvorvidt jeg havde misforstået formålet med getFetchSize() og ikke på en alternativ løsning, så...fuldt fortjent
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester