Avatar billede funkyloonie Nybegynder
03. december 2003 - 13:53 Der er 12 kommentarer og
2 løsninger

Antal rækker i ResultSet ?

Hej.

Jeg kom lige i tanke om spg. som jeg gerne vil høre jer om hvad i gør når i skal vide hvor mange rækker der er i et ResultSet ?


Kan ikke lige finde nogen metode som returnerer en int med værdien på antal rækker i klassen ResultSet.
Avatar billede repsak Nybegynder
03. december 2003 - 13:55 #1
Måske står der noget i ResultSetMetaData (bare et gæt :-)
Avatar billede inglenook Praktikant
03. december 2003 - 13:55 #2
Rs.recordcount ?
Avatar billede funkyloonie Nybegynder
03. december 2003 - 13:58 #3
Rs.recordcount findes vist ikke...
Avatar billede arne_v Ekspert
03. december 2003 - 13:59 #4
Den gode måde er at lave en seperat SELECT COUNT(*) først.

Den mindre gode måde er at lave et "frem og tilbage" ResultSet, gå til slut
og hapse record nummeret og så gå tilbage til start.
Avatar billede _carsten Nybegynder
03. december 2003 - 13:59 #5
Man kan bruge Rs.last() og derefter Rs.getRow()

Altså flyt til sidste række og hent rækkenummeret
Avatar billede funkyloonie Nybegynder
03. december 2003 - 14:03 #6
bruger set arne_v forslag. synes dete r lidt omstændigt at bruge et "helt" tabelopslag på hvor mange der er. Vil prøve med carstens forslag.
Avatar billede arne_v Ekspert
03. december 2003 - 14:04 #7
Eksempel:

        Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = stmt.executeQuery("SELECT * FROM T1");
        rs.last();
        int n = rs.getRow();
        rs.first();

Men. For det første er det ikke alle drivere som understøtter det.
De fleste gør dog nok idag. Hvad værre er: det får normalt JDBC til
at læse alle data op i memory, så hvis du har 100 MB data i din
database, så bliver det voldsomt.
Avatar billede funkyloonie Nybegynder
03. december 2003 - 14:04 #8
bruger selv skulle der stå
Avatar billede arne_v Ekspert
03. december 2003 - 14:05 #9
Derfor vil jeg klart foreslå at bruge god egamle SELECT COUNT(*).
Avatar billede funkyloonie Nybegynder
03. december 2003 - 14:06 #10
ok.
Avatar billede magoo20000 Nybegynder
03. december 2003 - 14:06 #11
Den bedste metode er efter min erfaring at lave en select count(*).
Avatar billede _carsten Nybegynder
03. december 2003 - 14:21 #12
Jeg kan så tilføje, at jeg kun har brugt det i forbindelse med MySQL og har endnu ikke oplevet problemer i den forbindelse - men det kan måske komme !
Avatar billede funkyloonie Nybegynder
03. december 2003 - 14:37 #13
hvis jeg får nogle svar så deler jeg lidt ud af points til de forskellige som har deltaget.
Avatar billede arne_v Ekspert
03. december 2003 - 14:39 #14
ok
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