/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Rekursiv funktion til tråd-genering i foru~
Fra : Jesper Stocholm


Dato : 10-07-01 22:13

Inspireret af Jonas' indlæg om den rekursive funktion har jeg sat mig for at
lave sådan en dims. Jeg er dog forvirret over nogle af de indledende
øvelser.

Mine data ser nogenlunde således ud: (det er i hvert fald det jeg mener at
have brug for for at lave tråde:

| msgID | Reference | Subject | Name |
--------------------------------------
1 NULL Subject1 Joe
2 NULL Subject2 Jane
3 1 Subject3 Jim
4 1 Subject4 John
5 3 Subject5 Janet

der gerne skulle give følgende rækkefølge:

1 NULL Subject1 Joe
3 1 Subject3 Jim
5 3 Subject5 Janet
4 1 Subject4 John
2 NULL Subject2 Jane


Min første tanke var, at jeg ville hente det hele ud som et recordset
(ADODB.recordset) og så navigere op og ned i det, men der blev nævnt noget
om at smide informationerne ind i et array i stedet. Men hvad er det jeg
skal putte ind i mit array ? Kræver det ikke et todimensionelt array at lave
det ?

Input vil være meget velkomne.


--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp

- Jesper Stocholm - http://stocholm.dk

 
 
Peter (13-07-2001)
Kommentar
Fra : Peter


Dato : 13-07-01 18:33

>Inspireret af Jonas' indlæg om den rekursive funktion har jeg sat mig for
at
>lave sådan en dims. Jeg er dog forvirret over nogle af de indledende
>øvelser.


Hej

Jeg har også forsøgt mig men det gik helt galt med uendelige loops og
generelt bare enormt langsommelige queries

Jeg gik over til den simple model hvor man har et hovedindlæg og så kan man
kun poste til dette.

Hvis du får løst problemet eller andre ville det være perfekt at se koden
her

VH Peter




Jonas Astrup - html.~ (16-07-2001)
Kommentar
Fra : Jonas Astrup - html.~


Dato : 16-07-01 01:15

Peter wrote in dk.edb.internet.webdesign.serverside.asp:
> Hvis du får løst problemet eller andre ville det være
> perfekt at se koden her

Her ligger et eksempel:
http://www.html.dk/scripts/asp/00015/

Mvh
Jonas


--
Brug Validator service: http://www.html.dk/validator
- Tast din URL én gang, og validér dokumentet hos 12 validatorer
- Understøtter HTML, CSS og søgemaskineoptimering

Peter (24-07-2001)
Kommentar
Fra : Peter


Dato : 24-07-01 14:34

> Her ligger et eksempel:
> http://www.html.dk/scripts/asp/00015/

Hej

Det er faktisk rigtigt fedt!

Det må være ret let at få den lavet så den henter fra databaser i stedet.
Poster koden når jeg får det løst - men jeg er imponeret over hvor let det
kan gøres!

VH Peter



Jesper Stocholm (24-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 24-07-01 18:29

"Peter" <pingking@get2net.dk> wrote in
news:9jjti6$qto$1@news.net.uni-c.dk:

>> Her ligger et eksempel: http://www.html.dk/scripts/asp/00015/
>
> Hej
>
> Det er faktisk rigtigt fedt!
>
> Det må være ret let at få den lavet så den henter fra databaser i
> stedet. Poster koden når jeg får det løst - men jeg er imponeret over
> hvor let det kan gøres!
>

øhem ... den henter da netop data fra en database ? Mener du ikke fra en
news-server ?

--
Jesper Stocholm
http://stocholm.dk
ICQ: 13214885
MSN Messenger: jesperstocholm at hotmail dot com

Peter (24-07-2001)
Kommentar
Fra : Peter


Dato : 24-07-01 18:55

> > Det må være ret let at få den lavet så den henter fra databaser i
> > stedet. Poster koden når jeg får det løst - men jeg er imponeret over
> > hvor let det kan gøres!
> >
>
> øhem ... den henter da netop data fra en database ? Mener du ikke fra en
> news-server ?

Hej

Jeg var faktisk på vej ind for at slette indlægget og lægge et andet da det
er ret meningsforstyrrende skrevet.

Det jeg mener er at man for enhver pris skal undgå at lægge det hele i et
array.
Det kræver for mange ressourcer og det bliver løbet igennem for mange gange.

Det mest optimale er jo at hente trådene fra databasen rekursivt.

VH Peter



Allan Ebdrup (24-07-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 24-07-01 21:49

"Peter" <pingking@get2net.dk> skrev i en meddelelse
news:9jkcqj$d74$1@news.net.uni-c.dk...
[KLIP]
> Det jeg mener er at man for enhver pris skal undgå at lægge det hele i et
> array.
> Det kræver for mange ressourcer og det bliver løbet igennem for mange
gange.
>
> Det mest optimale er jo at hente trådene fra databasen rekursivt.

Hej Peter
Databaseforespørgsler er noget af det "dyreste" du kan lave. Man bør kun
have 1 max 2 pr. ASP side for at få god performance/scaleability. Men test
det - så vil du se hvad jeg mener.

MVH
Allan Ebdrup



Peter (24-07-2001)
Kommentar
Fra : Peter


Dato : 24-07-01 22:42

> Databaseforespørgsler er noget af det "dyreste" du kan lave. Man bør kun
> have 1 max 2 pr. ASP side for at få god performance/scaleability. Men test
> det - så vil du se hvad jeg mener.

Hej hej

Ja det har du selvfølgelig ret i - det jeg ideelt ville var at hente alle
data en efter en i en enkelt forespørgsel.
Det bliver lidt hårdt for serveren at allokere hukommelse til et kæmpe
array.

Men jeg vil stadig mene at array-løsningen er ret fantastisk da den i sin
enkelthed fungerer med ret få linier kode.

VH Peter



Allan Ebdrup (24-07-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 24-07-01 23:57

"Peter" <pingking@get2net.dk> skrev i en meddelelse
news:9jkq4r$o92$1@news.net.uni-c.dk...
> > Databaseforespørgsler er noget af det "dyreste" du kan lave. Man bør kun
> > have 1 max 2 pr. ASP side for at få god performance/scaleability. Men
test
> > det - så vil du se hvad jeg mener.
>
> Hej hej
>
> Ja det har du selvfølgelig ret i - det jeg ideelt ville var at hente alle
> data en efter en i en enkelt forespørgsel.
> Det bliver lidt hårdt for serveren at allokere hukommelse til et kæmpe
> array.
>
> Men jeg vil stadig mene at array-løsningen er ret fantastisk da den i sin
> enkelthed fungerer med ret få linier kode.

Jammen hej Peter
Jeg tror vi har snakket lidt forbi hinanden for jeg advokerer også for en
array-løsning. Eller lav det så recordsettet kommer i den rigtige rækkefølge
til usdkrivning af træet on-the fly, det er lidt mere langhåret, har
begrænsninger men kan gøres - se på diskussionsforummet på www.ibuyspy.com
(Microsoft site der demonstrer .Net teknologien)

MVH
Allan



Lars Bo Wassini (25-07-2001)
Kommentar
Fra : Lars Bo Wassini


Dato : 25-07-01 20:26



"Allan Ebdrup" <ebdrup@ti-fire.dk> wrote in message
news:9jkudd$2sr1$1@news.cybercity.dk...
> "Peter" <pingking@get2net.dk> skrev i en meddelelse
> news:9jkq4r$o92$1@news.net.uni-c.dk...
> > > Databaseforespørgsler er noget af det "dyreste" du kan lave. Man bør
kun
> > > have 1 max 2 pr. ASP side for at få god performance/scaleability. Men
> test
> > > det - så vil du se hvad jeg mener.

Jeg har efterhånden fået lavet mange forskellige løsninger på dette problem
(ikke alle lige godt

Jeg har dog fundet en løsning, der kræver lidt arbejde ved redigering af
indlægene (indsæt/slet), me til gengæld er den absolut hurtigste at få ud
fra en database.

Jeg har tilføjet 2 ekstra kolonner: Order + Indent

| msgID | Reference | Subject | Name | Order | Indent
--------------------------------------
1 NULL Subject1 Joe 1 0
2 NULL Subject2 Jane 5 0
3 1 Subject3 Jim 2 1
4 1 Subject4 John 4 1
5 3 Subject5 Janet 3 2

Disse skal self. vedligeholdes, men det tager ikke lang tid, da brugeren
alligevel er ved at vente på et vindue lukker eller siden skifter etc..

Derved kan hele tråden trækkes ud med EEN sql sætning:

SELECT * FROM forum ORDER BY Order

og derefter løbe den igennem og bygge den op vha. Indent.

Rimelig simpelt!

--
/Lars Bo Wassini
http://www.wassini.dk
Dataklubben Odense: http://www.dko.dk






Allan Ebdrup (25-07-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 25-07-01 21:52

"Lars Bo Wassini" <lars@wassini.(dk)> skrev i en meddelelse
news:3b5f1d5a$0$387$edfadb0f@dspool01.news.tele.dk...
> "Allan Ebdrup" <ebdrup@ti-fire.dk> wrote in message
> news:9jkudd$2sr1$1@news.cybercity.dk...
> > "Peter" <pingking@get2net.dk> skrev i en meddelelse
> > news:9jkq4r$o92$1@news.net.uni-c.dk...
> > > > Databaseforespørgsler er noget af det "dyreste" du kan lave. Man bør
> kun
> > > > have 1 max 2 pr. ASP side for at få god performance/scaleability.
Men
> > test
> > > > det - så vil du se hvad jeg mener.
>
> Jeg har efterhånden fået lavet mange forskellige løsninger på dette
problem
> (ikke alle lige godt
>
> Jeg har dog fundet en løsning, der kræver lidt arbejde ved redigering af
> indlægene (indsæt/slet), me til gengæld er den absolut hurtigste at få ud
> fra en database.
>
> Jeg har tilføjet 2 ekstra kolonner: Order + Indent
>
> | msgID | Reference | Subject | Name | Order | Indent
> --------------------------------------
> 1 NULL Subject1 Joe 1 0
> 2 NULL Subject2 Jane 5 0
> 3 1 Subject3 Jim 2 1
> 4 1 Subject4 John 4 1
> 5 3 Subject5 Janet 3 2
>
> Disse skal self. vedligeholdes, men det tager ikke lang tid, da brugeren
> alligevel er ved at vente på et vindue lukker eller siden skifter etc..
>
> Derved kan hele tråden trækkes ud med EEN sql sætning:
>
> SELECT * FROM forum ORDER BY Order
>
> og derefter løbe den igennem og bygge den op vha. Indent.
>
> Rimelig simpelt!

Hej Lars
Du skulle kigge på diskussionsforummet på www.ibuyspy.com (i portal
eksemplet), der kan du se en mere effektiv metode. Det bliver unødvendigt
meget arbejde med at vedligeholde dit "Order" felt hvis der indsættes
tilfældige steder i tæet. Tænk på hvad der sker når der er 1.000.000 poster
i databasen.

Jeg har faktisk talt Cris Brown (SQL-MENA) som er en af Microsofts folk bag
MSSQL Server om problemerne med hierakiske træstrukture i en relationel
database. Det ville være oplagt at lave et clustered index der laver dit
"Order" felt automatisk (dog a la diskussionsforummet i IBuySpy eksemplet)
og så lave et hierakisk XML udtræk. Alle informationerne til at opbygge
hierakiet er der jo allerede til stede idet det er en selvreferende tabel
med feltet "Reference" (plejer at kaldes "Parent").
Microsoft gutten sagde at XML udviklingsafdelingen var meget interesseret i
mit forslag (jeg sendte en mail med beskrivelse efter aftale) og at han
ville vende tilbage hvis der var nyt i sagen - jeg har ikke hørt fra ham
siden.

MVH
Allan Ebdrup, 10-4 ApS

P.S. Ved samme lejlighed talte jeg med Cris Brown om paging - det kan gøres
bedre end valget mellem en serverside cursor, brug af en temorær tabel eller
brug af SQL "top" kommandoen (hjælper ikke hvis det er den sidste side man
vil have fat i). Og et sidste problem med paging - hvad hvis du har et ID på
en record og gerne vil have fat i hele den side hvor den record er på ?





Lars Bo Wassini (26-07-2001)
Kommentar
Fra : Lars Bo Wassini


Dato : 26-07-01 12:21

"Allan Ebdrup" <ebdrup@ti-fire.dk> wrote in message
news:9jnbft$v0r$1@news.cybercity.dk...
> "Lars Bo Wassini" <lars@wassini.(dk)> skrev i en meddelelse
> news:3b5f1d5a$0$387$edfadb0f@dspool01.news.tele.dk...

> > Jeg har tilføjet 2 ekstra kolonner: Order + Indent
> > Rimelig simpelt!

> Hej Lars
> Du skulle kigge på diskussionsforummet på www.ibuyspy.com (i portal
> eksemplet), der kan du se en mere effektiv metode. Det bliver unødvendigt
> meget arbejde med at vedligeholde dit "Order" felt hvis der indsættes
> tilfældige steder i tæet. Tænk på hvad der sker når der er 1.000.000
poster
> i databasen.

Jo både og... De type fora jeg har arbejdet med har typisk under 1000
indlæg, og omkrin 100 brugere
Men ellers er det at opdaterer Order feltet bare een SQL sætning:

UPDATE Fora set order++ WHERE order>40

Kan ikke lige huske om "order++" er understøttet men ellers er det bare
"order=order+1"

Dette letter programmørens arbejde.... Har ikke kikket på SQL serverens
arbejde.

--
/Lars Bo Wassini
http://www.wassini.dk
Dataklubben Odense: http://www.dko.dk






Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408857
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste