Avatar billede jakob_b_b Nybegynder
16. december 2003 - 10:23 Der er 10 kommentarer og
1 løsning

Java og databaser sortering

Der er noget jeg ikke helt forstår, har lavet et program som laver en tabel over ansatte. Og har laver et sortering efter nr. eks:

NR      NAVN
1      Bjarne
2      Poul
3      Danny

Hvis jeg f.eks. sletter NR 2 og opretter en ny:

NR      NAVN
1      Bjarne
3      Danny
2      Ny Person

Derefter kører jeg sort sql:

stmt.execute("SELECT NR FROM TABEL ORDER BY NR") ;

Så bliver databasen i ACCESS rigtigt nok sorteret efter NR, men når jeg udskriver i java programmet udskriver den:

1      Bjarne
3      Danny
2      Ny Person

???? .... Den læser jo data ind fra databasen?

Her er udskrivningsmetoden i javaprogrammet:

public Vector hentAlle() throws SQLException
  {
    Vector alle = new Vector();
    ResultSet rs = stmt.executeQuery("SELECT * FROM PLADER"); //NR, TAL1 from PLADER");
    while (rs.next())
    {
      Plade k = new Plade( rs.getInt(1), rs.getString(2));
      alle.addElement(k);
    }
    return alle;
  }

håber du kan hjælpe.....
Avatar billede _carsten Nybegynder
16. december 2003 - 10:31 #1
Mangler du ikke en ORDER BY Nr i din select ??
Avatar billede danny_k Nybegynder
16. december 2003 - 10:33 #2
Hvis det er resultatet herfra du vil have sorteret:

ResultSet rs = stmt.executeQuery("SELECT * FROM PLADER"); //NR, TAL1 from PLADER");

skal du vel skrive:
ResultSet rs = stmt.executeQuery("SELECT * FROM PLADER ORDER BY NR"); //NR, TAL1 from PLADER");
Avatar billede jakob_b_b Nybegynder
16. december 2003 - 10:37 #3
den sætning virker....
ResultSet rs = stmt.executeQuery("SELECT * FROM PLADER");
Når jeg går ind i databasen er den blevet sorteret:

1      Bjarne
2      Ny Person
3      Danny

Men når jeg udskriver i java:

1      Bjarne
3      Danny
2      Ny Person

??
Avatar billede jakob_b_b Nybegynder
16. december 2003 - 10:38 #4
ups sætning:

stmt.execute("SELECT NR FROM TABEL ORDER BY NR") ;
Avatar billede _carsten Nybegynder
16. december 2003 - 10:41 #5
Det kan ikke være rigtigt du må have glemt at kompilere efter din ændringen i din SELECT
Avatar billede jakob_b_b Nybegynder
16. december 2003 - 10:42 #6
arh... jo det virker nu...
Avatar billede jakob_b_b Nybegynder
16. december 2003 - 10:42 #7
Skriv svar carsten
Avatar billede arne_v Ekspert
16. december 2003 - 10:43 #8
Data i tabeller er aldrig sorteret.

Man kan kun sortere i forbindelse med udtræk.

stmt.execute("SELECT NR FROM TABEL ORDER BY NR") ;

sorterer ikke data - den henter nogen data i sorteret form
som man bare ikke bruger til noget.
Avatar billede _carsten Nybegynder
16. december 2003 - 10:43 #9
Svar
Avatar billede jakob_b_b Nybegynder
16. december 2003 - 10:47 #10
troede bare rs.next tog den første række i en database.... underligt opbygget
Avatar billede arne_v Ekspert
16. december 2003 - 10:53 #11
Der er ikke noget der hedder "den første række" i en tabel i
relationelle database.

Der er noget der hedder den første række i et udtræk fra en
relationel database.

Hvsi du vil have data i en bestemt rækkefølge skal du bruge ORDER BY
i din SELECT hver gang.
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