Løbe en masse menuer igennen og tæller antal poster i menuerne.
Hvad er der ligt galt her?Sql = "SELECT ID, Navn, Antal FROM Kategorier ORDER BY ID"
set rs = conn.execute(sql)
Do While not rs.eof
DB_ID = rs("ID")
DB_Navn = rs("Navn")
DB_Antal = rs("Antal")
Antal = CountAntal(DB_ID)
Sql2 = "UPDATE Kategorier Set Antal = " & Antal & " Where ID = " & DB_ID & ""
Set Rs2 = Conn.Execute(Sql2)
Str = Str & DB_Navn & " [" & Antal & "] <br>"
rs.movenext
Loop
Function CountAntal(ByVal ID)
dim Sql, Sql2, Antal
Sql = "SELECT count(*) AS Antal FROM Data Where ParentID = " & ID & ""
set rs = conn.execute(sql)
Antal = rs("Antal")
Set rs2 = Server.CreateObject("ADODB.Recordset")
Sql2 = "SELECT ID FROM Kategorier Where ParentID = " & ID & " Order By ID"
rs2.Open Sql2, Conn, 1, 1
do while not rs2.eof
db_ID = rs2("ID")
Antal = Antal + CountAntal(db_ID)
rs2.movenext()
loop
CountAntal = Antal
End Function
Når jeg løber den igennem så får jeg kun udskrevet min første kategori. Ændre jeg derimod min kode så følgende ikke er med:
Antal = CountAntal(ID)
Sql2 = "UPDATE Kategorier Set Antal = " & Antal & " Where ID = " & ID & ""
Set Rs2 = Conn.Execute(Sql2)
Str = Str & DB_Navn & " [" & Antal & "] <br>"
Så virker det fint. Jeg har derfor lidt på fornemelsen at det er som om at serveren kan se at jeg laver en kæmpe forspørgsel og derfor stopper den koden efter jeg har kørt den igennem en gang. Hvad skal jeg lige gøre for at fikse dette problem eller hvad er det jeg gør galt ... er det evt. min CountAntal der er noget galt med der gør at den kun kan køres en gan??
