Avatar billede madiedk Nybegynder
13. august 2008 - 10:22 Der er 7 kommentarer og
1 løsning

hvorfor fejler denne lille kode

den her virker:

    public void findOmkostning() throws SQLException {
        Database.omkostningsBeløb.first();
        Database.hensættelsesInfo.first();
        int u = Database.hensættelsesInfo.getInt(4);     
        while(Database.omkostningsBeløb.next()){
           
                if (Database.omkostningsBeløb.getInt(1) == u){
                   
                   
                System.out.println(Database.hensættelsesInfo.getInt(3));
                break;
                }
     
   
        }
 
    }

den her fejler:

    public void findOmkostning() throws SQLException {
        Database.omkostningsBeløb.first();
        Database.hensættelsesInfo.first();
        int u = Database.hensættelsesInfo.getInt(4);     
        while(Database.omkostningsBeløb.next()){
           
                if (Database.omkostningsBeløb.getInt(1) == Database.hensættelsesInfo.getInt(4)){
                   
                   
                System.out.println(Database.hensættelsesInfo.getInt(3));
                break;
                }
     
   
        }
 
    }

hvorfor skal den gemme i variablen "u" for at den virker?
Avatar billede fsconsult.dk Nybegynder
13. august 2008 - 10:25 #1
det ville være lettere at forholde sig til med et stracktrace, eller en beskrivelse af hvad der fejler ...
Avatar billede madiedk Nybegynder
13. august 2008 - 10:37 #2
den skriver at "no data found" forskellen er bare om man sætter "== u" eller "== Database.hensættelsesInfo.getInt(4)" istedet for at gemme Database.hensættelsesInfo.getInt(4)" i variablen "u" første
Avatar billede pidgeot Nybegynder
13. august 2008 - 10:42 #3
Jeg gætter på hensættelsesInfo er et ResultSet? Som udgangspunkt er de "forward-only", og det er ikke helt unormalt at de smider de enkelte kolonner væk i takt med at de bliver læst (Javadocs for ResultSet siger da også at man aldrig bør læse den samme værdi fra et ResultSet flere gange). Derfor er der ingen data når du kører getInt(4) anden gang - den har læst det, og fjernet det fra hukommelsen.
Avatar billede pidgeot Nybegynder
13. august 2008 - 10:47 #4
(I øvrigt - springer du ikke over den første række i omkostningsBeløb når du laver en next allerede i starten? *-))
Avatar billede madiedk Nybegynder
13. august 2008 - 10:56 #5
alright, cool, tak. jo det gør jeg, det er også bare en prototype, men skal det undgåes ved at lave en "Database.omkostningsBeløb.beforefirst();" istedet for "Database.omkostningsBeløb.first();" i starten?
Avatar billede pidgeot Nybegynder
13. august 2008 - 11:01 #6
Nu er det godt nok en evighed siden jeg har kodet Java og databaser, men det er vel enten det, eller også skal du lave din while { } om til en do { } while. Sidstnævnte kræver dog du checker om der overhovedet er nogle rækker først.
Avatar billede madiedk Nybegynder
19. august 2008 - 10:07 #7
svarer du pidgeot så er der point. og tak
Avatar billede pidgeot Nybegynder
19. august 2008 - 12:51 #8
Værsgo :)
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