|
| 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
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.
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
| |
|
|