Avatar billede gliczynski Nybegynder
25. juli 2001 - 17:17 Der er 3 kommentarer

Rekursiv funktion - recordset! HJÆÆLPP

Jeg har en Rekursiv funktion:

\'Recordset
Indholder de informationer som kaldes i function - er ok..

\'Kalder funktionen her...
CALL creat_struktur(0)

\'Funktionen
SUB creat_struktur(pid) %>   
   
g_RScat_struk.movefirst
   
DO WHILE NOT g_RScat_struk.EOF

IF( Cint( g_RScat_struk(\"parent_id\") ) = Cint( pid )  ) THEN
               
Response.Write g_RScat_struk(\"category_id\") &\" <br> \"
                   
CALL creat_struktur(g_RScat_struk(\"category_id\"))           
               
END IF
       
g_RScat_struk.movenext
LOOP
   
-------------
Det der skal ske, er at jeg skal have lavet en træstruktur. Men jeg får kun lov til at løve recordsettet igennem 3 gange, hvorefter den bare stopper...

Er der nogen begrænsning på antallet af gange man kan løbe igennem et recordset?

Endvidere - hvis der er nogen, som ligger inden med stumperne til en rekursiv funktion med et recordset, er jeg meget interesseret i stumpen...

Håber på at få lidt hjælp..


MVH

Martin G!
Avatar billede chrisped Nybegynder
25. juli 2001 - 17:25 #1
Hej!

Flyt instantieringen af dit recordset ind i funktionen. På Recordsettet filterer du på pid=id, og når du kalder igen (rekursivt) for at få subtræet ud, overfører du dit ID på den aktuelle række. Så drop din movefirst det får du ikke til at virke, uden storfusk.

Bagefter kan du supplere med optælling af antallet af subnoder pr. node, for at finde ud af om rekursion er nødvendig. Så vinder du rigtig meget performance, ved ikke at skulle oprette unødige recordsets.
Avatar billede nils_lastein Nybegynder
13. august 2001 - 21:31 #2
max recursion: 32 både for triggere og stored proc.
Avatar billede wann Nybegynder
27. november 2002 - 15:35 #3
prøv at se denne løsning, du kan med fordel lave den i en stored procedure.

http://p2p.wrox.com/archive/asp_databases/2000-11/120.asp
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
Computerworld tilbyder specialiserede kurser i database-management

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