/ 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
Træstruktur ved visning af meddelelser
Fra : Thygesen


Dato : 24-01-03 11:54

Jeg er ved at lave en side der kan vise meddelelser fra nyhedsgrupper, som
gemmes i en database. I den forbindelse skal jeg bruge noget kode som kan
finde ud af hvilke meddelelser der er svar på andre meddelelser og hvilke
meddelelser de er svar på. Måden hvorved jeg angiver hvilken meddelelse der
er svaret på er vha. feltet parentid, hvor der står nummeret svarende til
det id (autonummerering), den meddelelsee der er blevet svaret på.

Her er den kode jeg umiddelbart kunne komme frem til, men jeg synes at den
virker en anelse langsom. Findes der en hurtigere/smartere måde?

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConn_news

Set objRS = Server.CreateObject("ADODB.Recordset")
strQ = "SELECT * FROM messages"
objRS.Open strQ, strConn_news

While not objRS.EOF
Conn.Execute "UPDATE messages SET parentid=" & objRS("id") & " WHERE
References LIKE '" & objRS("messageID") & "%'"
objRS.MoveNext
Wend

objRS.Close
Set objRS = Nothing

Conn.Close
Set Conn = Nothing

Lige for at illustrere opbygningen i databasen:
id parentid subject
1 0 En ny meddelelse
2 1 Re: Svar på meddeelse 1
3 2 Re: Svar på meddelelse 2
4 1 Re: Svar på meddelelse 1

Mvh. Christoffer Thygesen





 
 
Jakob Andersen (24-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 24-01-03 14:30

"Thygesen" <cht_news@cht.dk> wrote
> Måden hvorved jeg angiver hvilken meddelelse der
> er svaret på er vha. feltet parentid, hvor der står nummeret svarende til
> det id (autonummerering), den meddelelsee der er blevet svaret på.

Du har jo et references felt, det burde være muligt at lave et udtræk der på
baggrund af dette giver dig din træstruktur.

Kig evt. i NNTP referencen hvor du kan se hvordan kravene er til et msgid
samt hvordan references headeren er bygget op.

--
Jakob Andersen



Thygesen (24-01-2003)
Kommentar
Fra : Thygesen


Dato : 24-01-03 14:39

"Jakob Andersen" <jakob@effectus.dk> skrev
> > Måden hvorved jeg angiver hvilken meddelelse der
> > er svaret på er vha. feltet parentid, hvor der står nummeret svarende
til
> > det id (autonummerering), den meddelelsee der er blevet svaret på.
>
> Du har jo et references felt, det burde være muligt at lave et udtræk der

> baggrund af dette giver dig din træstruktur.
>
> Kig evt. i NNTP referencen hvor du kan se hvordan kravene er til et msgid
> samt hvordan references headeren er bygget op.

Jeg har kigget i referencelisten, der står følgende:
AspNNTP does not internally support threading messages. If you want to
display message threads you'll have to parse the References header and build
the threaded message list. See the NNTP specs available on the Net for
details.

Derfor er jeg vel nødt til at finde ud hvad der er svar på hvad ud fra
reference listen?

Mvh. Christoffer Thygesen



Thygesen (25-01-2003)
Kommentar
Fra : Thygesen


Dato : 25-01-03 00:15

"Thygesen" <cht_news@cht.dk> skrev
> > Kig evt. i NNTP referencen hvor du kan se hvordan kravene er til et
msgid
> > samt hvordan references headeren er bygget op.
>
> Jeg har kigget i referencelisten, der står følgende:
> AspNNTP does not internally support threading messages. If you want to
> display message threads you'll have to parse the References header and
build
> the threaded message list. See the NNTP specs available on the Net for
> details.
>
> Derfor er jeg vel nødt til at finde ud hvad der er svar på hvad ud fra
> reference listen?

Så har jeg fået lavet noget kode der kan bruges og det virker perfekt.

Mvh. Christoffer Thygesen



M@rk (07-03-2003)
Kommentar
Fra : M@rk


Dato : 07-03-03 12:04

Sat, 25 Jan 2003 00:15:01 +0100, berigede "Thygesen" <cht_news@cht.dk>
dk.edb.internet.webdesign.serverside.asp med:

>Så har jeg fået lavet noget kode der kan bruges og det virker perfekt.

Noget du vil dele med f.eks. mig? )


/Mark

--
M@rk, the unknown @ vosborg.dk - ICQ #6564215

"When the rythm-section ain't making it
- go for it your self" ~ Ben Webster

Jakob Andersen (25-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 25-01-03 02:10

"Thygesen" <cht_news@cht.dk> wrote
> Jeg har kigget i referencelisten, der står følgende:

Det jeg mente var at du skulle kigge i NNTP RFC'en hvor du kan finde
standarden for et msgid, og med denne information kan du bygge din
træstruktur uden at skulle bruge et parentfelt, men blot benytte references
og dermed undgå rekursive databasekald som er en performancedræber.

--
Jakob Andersen



Thygesen (25-01-2003)
Kommentar
Fra : Thygesen


Dato : 25-01-03 14:04

"Jakob Andersen" <jakob@effectus.dk> skrev
> > Jeg har kigget i referencelisten, der står følgende:
>
> Det jeg mente var at du skulle kigge i NNTP RFC'en hvor du kan finde
> standarden for et msgid, og med denne information kan du bygge din
> træstruktur uden at skulle bruge et parentfelt, men blot benytte
references
> og dermed undgå rekursive databasekald som er en performancedræber.

Den har jeg også kigget på. Det er opbygget således at alle meddelelser får
et unikt messageid og når der svares på denne meddelelse, så vil det
messageid for den meddelelse man svarer på blive tilføjet til sidst i
references:

Her har vi f.eks. en meddelelse:
Message-ID: <b0rfmt$hri$1@sunsite.dk>
References: <b0r635$s5$1@sunsite.dk> <b0rf32$29g6$1@news.cybercity.dk>

Et svar på øvenstående meddelelse vil få følgende references:
Message-ID: <b0shfp$jsd$1@sunsite.dk>
References: <b0r635$s5$1@sunsite.dk> <b0rf32$29g6$1@news.cybercity.dk>
<b0rfmt$hri$1@sunsite.dk>

Det kan jeg dog ikke helt gennemskue hvordan man skulle lave opbygningen
udelukkende vha. references uden først at lave et felt med parentid. Det ser
ikke umiddelbart ud til at det er nok bare at bruge "order by references",
det giver ikke den rigtige rækkefølge af de forskellige svar. Jeg vil derfor
blive meget glad for hvis du har nogle ideer.

Mvh. Christoffer Thygesen



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

Månedens bedste
Årets bedste
Sidste års bedste