Avatar billede shadowdance Nybegynder
24. december 2005 - 05:10 Der er 2 kommentarer og
1 løsning

Datareaders i rekursive funktioner

Hejsa,

jeg har brug for at bruge flere datareaders til samme connection, da jeg har lavet en rekursiv funktion, der bygger en træstruktur ud fra en database. Undervejs i en løkke kaldes funktionen igen, og kalder nu subsettet. Det ser sådan ud:

            Private Function concatMenu(ByVal parentidcursor As Integer, ByVal thislevel As Integer) As String

                Dim lookfor As Int32 = -1

                If parentidcursor < (parentidpath.Count) Then
                    lookfor = parentidpath.Item(parentidcursor + 1)
                End If

                Dim tmpstring = ""

                sql = "SELECT articleid,title,shortinfo FROM article WHERE websiteid = " & webid & " AND parentid = " & parentidpath.Item(parentidcursor) & " AND NOT ishidden ORDER BY sortorder ASC,revisiontime DESC"
                Dim rs As OleDbDataReader = db.ExecuteQuery(sql)

                Do While rs.Read
                    tmpstring = tmpstring & "<h" & thislevel & "><a href='" & url & _
                    "?articleid=" & rs.GetInt32(0) & _
                    "'>" & rs.GetString(1) & "</a></h" & thislevel & ">"
                    If rs.GetInt32(0) = lookfor Then
                        tmpstring = tmpstring & concatMenu(parentidcursor + 1, thislevel + 1)
                    End If
                Loop

                rs.Close()

                Return tmpstring

            End Function

Desværre resulterer det i, at jeg får en fejlmeddelelse, da der ikke må være flere datareaders på samme connection. Det er noget rod! Hvad er mit alternativ? Skal jeg droppe den rekursive funktion?
Avatar billede Slettet bruger
24. december 2005 - 05:53 #1
Du er nødtil at lave en connection per metode kald, du kan ikke have flere datareadere på én connection på den måde. Hvis det ikke er voldsomme mængder af data du opererer med kan du eventuelt tømme readeren til en collection inden du begynder behandlingen.
Avatar billede shadowdance Nybegynder
19. juli 2006 - 12:55 #2
Okay... point?
Avatar billede Slettet bruger
19. juli 2006 - 15:25 #3
;)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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