Avatar billede jakob_b_b Nybegynder
15. december 2003 - 22:47 Der er 11 kommentarer og
1 løsning

Java og databaser

Kan det lade sig gøre, at sætte din tabel i alfabetisk(bare med tal) rækkefølge?

Har en tabel, hvor man kan slette en række og hvor man kan tilføje rækker, eks :

1:  Bjarne
2:  Jens
3:  Poul

ved sletning af række 2:

1: Bjarne
3: Poul

Og når jeg tilføjer ny række:

1: Bjarne
3: Poul
2: Ny Person

Vil gerne have at den sætter tingene i rækkefølge derefter. Ved man kan lave tabellen så programmet selv giver et nummer, men kan det andet lade sig gøre?
Avatar billede arne_v Ekspert
15. december 2003 - 22:56 #1
Det har ikke ret meget med Java at gøre.

Det kan gøres i en database med SQL.

Java kan bruge en database via SQL ved hjælp af JDBC.

Det du gør er at du laver enten et auto increment felt eller et felt med
tiden for oprettelse og så lader du dein SELECT sortere efter det felt.

Så får du den ønskede effekt.
Avatar billede jakob_b_b Nybegynder
15. december 2003 - 23:10 #2
Det er fordi jeg har lavet et program i java, som kommunikere med en database. Fra programmet kan man tilføje en person eller slette en person. Problemet er bare det, at når jeg sletter en person og derefter tilføjer en laver den om på rækkefølgen.... Kan godt være du har svaret på spørgsmålet, men kan du vise et eksempel?
Avatar billede arne_v Ekspert
15. december 2003 - 23:12 #3
Hvis du til din tabel tilføjer et felt med tiden for indsættelse og du
henter fra tabellen med:
  ORDER BY inserttime
så vil de blive sorteret efter indsættelses tidspunkt, hvilket så vidt jeg
kan forstå er hvad du ønsker.
Avatar billede jakob_b_b Nybegynder
15. december 2003 - 23:18 #4
Nej, vil faktisk bare sortere efter numre...

så:

1: Bjarne
3: Poul
2: Ny Person

bliver:
1: Bjarne
2: Ny Person
3: Poul
Avatar billede arne_v Ekspert
15. december 2003 - 23:21 #5
Så har jeg misforstået dig.

Så bliver du nødt til selv at indsætte et nummmer for rækken.

Timestamp kan ikke bruges.

Og autoincrement felter kan heller ikke bruges.
Avatar billede jakob_b_b Nybegynder
15. december 2003 - 23:28 #6
har indsat nummer tabellen ser således ud:

søjle1    Søjle2
        nr        navn
række1  1          Bjarne
række2  3          Poul
række3  2          Ny Person
vil gerne køre en sql statement, som sætter tabellen via. nr i rigtig rækkefølge:     
     

        søjle1    Søjle2
        nr        navn
række1  1          Bjarne
række2  2          Ny Person
række3  3          Poul
Avatar billede jakob_b_b Nybegynder
15. december 2003 - 23:29 #7
har indsat nummer tabellen ser således ud:

        søjle1    Søjle2
        nr        navn
række1  1          Bjarne
række2  3          Poul
række3  2          Ny Person
vil gerne køre en sql statement, som sætter tabellen via. nr i rigtig rækkefølge:     
     

        søjle1    Søjle2
        nr        navn
række1  1          Bjarne
række2  2          Ny Person
række3  3          Poul
Avatar billede jakob_b_b Nybegynder
15. december 2003 - 23:30 #8
hmmm det bliver lidt skævt... men forstår du hvad jeg mener?
Avatar billede jakob_b_b Nybegynder
15. december 2003 - 23:33 #9
er det noget ligende:

stmt.execute("select NR FROM TABELNAVN ORDER BY number") ;??
Avatar billede arne_v Ekspert
15. december 2003 - 23:33 #10
Relationelle database tabeller er slet ikke i nogen rækkefølge.

Rækker returneres i en rækkefølge når man SELECT'er dem.

SELECT * FROM tabelnavn ORDER BY nr

vil returnere rækkerne sorteret efter nr.
Avatar billede arne_v Ekspert
15. december 2003 - 23:34 #11
Jeps !
Avatar billede jakob_b_b Nybegynder
15. december 2003 - 23:42 #12
Det virker nu, så tak for hjælpen.... fandt lige en side hvor det stod på, men du pointene alligevel :)
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