13. august 2008 - 10:22Der 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()){
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)){
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
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.
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?
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.
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.