Avatar billede bobbedude Nybegynder
16. september 2003 - 15:03 Der er 7 kommentarer og
1 løsning

Niveau dybde del 2

I spørgsmål http://www.eksperten.dk/spm/401568 fandt jeg ud af at tælle hvor mange underNoder der var under en overNode.

Men det jeg ville finde ud af var hvilket niveau de var på.

Min db

NAV_PKEY  NAV_PARENT
1            0
2            0
19            2
30            2
31            1
32            1
33            32
34            32
35            31
37            1
38            35

NAV_PKEY 1 er på niavu 1
NAV_PKEY 2 er på niavu 1
NAV_PKEY 19 er på niavu 2
NAV_PKEY 30 er på niavu 2
NAV_PKEY 31 er på niavu 2
NAV_PKEY 32 er på niavu 2
NAV_PKEY 33 er på niavu 3
NAV_PKEY 34 er på niavu 3
NAV_PKEY 35 er på niavu 3
NAV_PKEY 37 er på niavu 4

Niavu dybden kan være uendelig.
Så det jeg vil spørge om er hvordan jeg finde niavu dybden og får det tal skreve ud sammen med rs("NAV_PKEY") ??
Avatar billede eagleeye Praktikant
16. september 2003 - 15:21 #1
Du skal nok ud i en rekrusiv funktion for at finde en tilfældig.:

Set conn=Server.CreateObject("ADODB.Connection")
Conn.Open "CONNSTRING"

function findNiveau(id, level)
  dim rs
  level = level + 1
  SQL = "SELECT nav_parent FROM tabel WHERE NAV_PKEY = " & id
  set rs = Conn.Execute(SQL)
  if int(rs("nav_parent")) > 0 then
    level = findNiveau (rs("nav_parent"), level)
  end if
  findNiveau = level
  rs.Close
end sub
   

Response.write "NAV_PKEY 35 er på niavu " & findNiveau(35,0)
Avatar billede eagleeye Praktikant
16. september 2003 - 15:22 #2
end sub  --->  end function
Avatar billede bobbedude Nybegynder
16. september 2003 - 15:37 #3
hvad skal jeg så lige gøre hvis jeg kun vil have at man kan oprette til Niavu 2 ?
Avatar billede bobbedude Nybegynder
16. september 2003 - 15:37 #4
altså kan man checke det i et loop ??
Avatar billede bobbedude Nybegynder
16. september 2003 - 15:39 #5
arg den send knap

Kan man checke det i et loop istedet for i en funktion ??
Avatar billede eagleeye Praktikant
16. september 2003 - 15:47 #6
På en eller anden måde skal det være en funktion hvis du vil loope gennem dit recordset og udksrive
NAV_PEY x1 er på niavu y1
NAV_PEY x2 er på niavu y2
NAV_PEY x3 er på niavu y3


men det kan måske laves i et loop sådan her:


rs.Open "SELECT * FROM tabel", Conn, 1, 3

niveau= 1
NAV_PKEY = rs("NAV_PKEY")
do while int(rs("NAV_PARENT")) > 0
  NAV_PARENT = rs("NAV_PARENT")
  rs.Movefirst
  rs.Filter "NAV_PKEY = " & NAV_PARENT
  niveau = niveau +1
loop
rs.Movefirst
rs.Filter "NAV_PKEY = " & NAV_PKEY
Response.write "NAV_PKEY " & NAV_PKEY & "  er på niavu " & niveau
Avatar billede bobbedude Nybegynder
16. september 2003 - 15:52 #7
du er sgu en haj smid et svar.

Smid også lige et svar i dette spørgsmål
http://www.eksperten.dk/spm/395961
Avatar billede eagleeye Praktikant
16. september 2003 - 16:49 #8
Ok ;)
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel