Avatar billede trophymanager Nybegynder
02. december 2005 - 22:55 Der er 9 kommentarer og
2 løsninger

Resultset Closed

Hej Alle.

Jeg har følgende rimlig simpelt loop men får beskeden anden gang den løber gennem at jeg ikke må lave den handling da resultsettet er closed. Hvad er der i vejen med at gøre det på denne måde?

try{Class.forName("com.mysql.jdbc.Driver");}
catch(Exception e) {System.out.println("driver not found hej"+e.getMessage() + "hej");}

try { Connection con = DriverManager.getConnection("jdbc:mysql://localhost/
x", "x", "x");
            Statement stmt = con.createStatement();
           
            ResultSet rs1 = stmt.executeQuery("SELECT * FROM economy LIMIT 1");
            rs1.next();
            ResultSet rs = stmt.executeQuery("SELECT * FROM clubs WHERE id>" + rs1.getInt("lastupdate") + " ORDER BY id");
           
          while(rs.next()) {
             
                ResultSet rs3 = stmt.executeQuery("SELECT wage FROM players WHERE klub=" + rs.getInt("id") +"");
                   
                    while (rs3.next()) {
                        wages = wages + rs3.getInt("wage");
                    }
                }                   
                System.out.println("Total wage: "+ wages);
               
            }
        }
        catch (Exception e) {
            System.out.println("RØV!" + e);
        }
Avatar billede erikjacobsen Ekspert
03. december 2005 - 01:00 #1
Brug 3 forskellige Statement-variabler.
Avatar billede tjp Mester
03. december 2005 - 01:02 #2
Fra http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html :
"A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results."
Avatar billede arne_v Ekspert
03. december 2005 - 04:37 #3
du skal også bruge 3 connections

(strengt taget kan du nøjes med 2 connections og 2 result set da rs1 kan afsluttes
inden den nestede løkke)
Avatar billede arne_v Ekspert
03. december 2005 - 04:38 #4
en LIMIT uden en ORDER BY er iøvrigt en suspekt størrelse
Avatar billede trophymanager Nybegynder
03. december 2005 - 11:03 #5
ah tusind tak for det. Øhm alle smid et svar :P
Avatar billede arne_v Ekspert
03. december 2005 - 15:59 #6
.
Avatar billede erikjacobsen Ekspert
03. december 2005 - 18:52 #7
eller nøjes med een connection.

Hent din lastupdate, og gem i en variabel (luk recordset)

Hent klubid-er ind i et array/arraylist (luk recordset)

Lav en "SELECT ... WHERE klub IN (7,9,13)" (eller hvad dine klubnumre nu er) - regn summen ud, luk recordset.
Avatar billede tjp Mester
03. december 2005 - 23:45 #8
:
Avatar billede arne_v Ekspert
03. december 2005 - 23:50 #9
øh ????
Avatar billede arne_v Ekspert
03. december 2005 - 23:55 #10
glem det - alt OK
Avatar billede trophymanager Nybegynder
07. december 2005 - 15:37 #11
tak for hjælpen drengene
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