Kasper Katzmann wrote:
> Jeg skal lave en dropdown liste der skal vise alle sider i databasen
> (MSSQL). Det er jo intet problem, men jeg skal have dem sorteret således at
> man kan se hvilke sider der hører til hvor i forhold til hinanden. Altså en
> heirakisk opdelt liste. Jeg tror det må være en såkaldt rekursiv funktion
> jeg skal have fat i, men jeg kan bare ikke lige gennemskue hvordan jeg gør.
>
[snip hirakisk data]
>
> PK_ParentID er så referencen til den overliggende side og 0 refererer til
> Root-level
> Al hjælp er mere end velkommen
>
Relations databaser har det ikke performance mæssigt så godt med rekursive kald og hirakiske
strukture. Det er meget hurtigere og lettere at benytte sig af XML.
Men du kan stadig godt have data for strukturen i relations databasen, du skal så blot cache
strukturen som XML.
Hver gang du laver en ændring i tabellen med strukturen skal du så bare også kalde en
ASP-funktion der opbygger XML'en.
XML'en kan du ligge i en applications variabel, det er lynhurtigt at hente og smide gennem et
stylesheet.
På den måde kan du få din hirakiske struktur vist på alle mulige måder, f.eks. sitemap, menu,
dropdown-boks o.s.v.
Hvordan du så får et Recordset lavet om til en XML-dokument ?
Ja, jeg ser følgende 2 muligheder:
Du kan vælge at benytte rs.getRows() som ligger et recordset direkte over i et array. Array'et
kan du så løbe igennem og genere et XML-dokumet
.... eller du kan benytte rs.save XMLdom, adPersistXML på et ADO-connection som opbygger
recordset'et som en flad XML-struktur (d.v.s ikke hirakisk)
Jeg vil nok anbefale at benytte rs.save, og køre XML igennem en transformation, så resultatet
bliver en hirakisk XML-struktur.
Held og lykke
Hintzmann c",)