|
| Næste og forrige record Fra : JS |
Dato : 05-02-08 10:54 |
|
Hej NG,
Jeg er i gang med at lave et udtræk fra min Access-database.
Udtrækket består i en reference-liste der bliver sorteret efter
ranking (tal-værdi). I mit lille admin-system vil jeg gerne lave
således man kan flytte op og ned på de forskellige referencer.
Problemet består i: hvordan får man fat i, vha et udtræk på id'et
på den næste og forrige record ved (f.eks) id=5?
Mvh
JS
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Christian R. Larsen (05-02-2008)
| Kommentar Fra : Christian R. Larsen |
Dato : 05-02-08 14:04 |
|
"JS" <jsnedker@hotmail.com> wrote in message
news:47a8321b$0$90263$14726298@news.sunsite.dk...
> Hej NG,
>
> Jeg er i gang med at lave et udtræk fra min Access-database.
> Udtrækket består i en reference-liste der bliver sorteret efter
> ranking (tal-værdi). I mit lille admin-system vil jeg gerne lave
> således man kan flytte op og ned på de forskellige referencer.
>
> Problemet består i: hvordan får man fat i, vha et udtræk på id'et
> på den næste og forrige record ved (f.eks) id=5?
Jeg ville anbefale at hive udtrækket ud med metoden getrows().
Den har to fordele:
(1) Den flytter dit recirdset til et array, hvilket er rigtig godt for
performance, hvilket igen er sundt, når man nu har valgt en rigtig langsom
database
(2) Den gør det muligt at finde foregående records ID ved at vælge den
foregående række i arrayet:
set rs=db.execute(dql)
MyArray=rs.getrows()
rs.close
MyArray(0,x) = ID
MyArray(0,x-1) = ID på foregående
etc.
| |
Jimmy Snedker (05-02-2008)
| Kommentar Fra : Jimmy Snedker |
Dato : 05-02-08 22:30 |
|
Hej Christian,
Nu er jeg desværre ingen haj til ASP og array...det glemte jeg vist at
fortælle...nå men kan man gøre noget i denne
'SQL reference records
strSQL = "Select * from referencer Order by ranking desc"
Set rs = Conn.Execute(strSQL)
If rs.EOF OR rs.BOF Then
Response.Write "Der er på nuværende tidspunkt ingen referencer!"
else
do
strID = rs("id")
strOverskr = rs("overskr")
strNext = (finder id'et på den næste record)
strPrev = (finder id'et på den forrige record)
strLink = "<div class=""listrow"">" & strOverskr & "<a
href=""default.asp?nextid=" & strNext&""">Flyt op</a>...osv..</div>"
Response.Write strLink
rs.MoveNext
Loop While Not rs.EOF
End if
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Christian R. Larsen (06-02-2008)
| Kommentar Fra : Christian R. Larsen |
Dato : 06-02-08 11:01 |
|
"Jimmy Snedker" <jsnedker@hotmail.com> wrote in message
news:47a8d53b$0$90271$14726298@news.sunsite.dk...
> Hej Christian,
>
> Nu er jeg desværre ingen haj til ASP og array...det glemte jeg vist at
> fortælle...nå men kan man gøre noget i denne
Sikkert - det vil bare være meget mere besværligt end det, jeg foreslog før:
strSQL = "Select * from referencer Order by ranking desc"
Set rs = Conn.Execute(strSQL)
If rs.EOF OR rs.BOF Then
Response.Write "Der er på nuværende tidspunkt ingen referencer!"
else
ReferenceArray = rs.getrows()
rs.close
For x=1 to ubound(ReferenceArray,2)-1
strNext = ReferenceArray (0, x+1)
strPrev = ReferenceArray (0, x-1)
strOverskr = ReferenceArray (1, x)
strLink = "<div class=""listrow"">" & strOverskr & "<a
href=""default.asp?nextid=" & strNext&""">Flyt op</a>...osv..</div>"
Response.Write strLink
(Forudsat at dit select-statement indeholder ID'et i første kolonne)
next
end if
| |
Jørn Andersen (06-02-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 06-02-08 14:29 |
|
On 05 Feb 2008 09:53:31 GMT, JS <jsnedker@hotmail.com> wrote:
>Jeg er i gang med at lave et udtræk fra min Access-database.
>Udtrækket består i en reference-liste der bliver sorteret efter
>ranking (tal-værdi). I mit lille admin-system vil jeg gerne lave
>således man kan flytte op og ned på de forskellige referencer.
>
>Problemet består i: hvordan får man fat i, vha et udtræk på id'et
>på den næste og forrige record ved (f.eks) id=5?
Du kan som Christian foreslår lave det med et array fra .getrows.
En anden mulighed er at arbejde på recordsettet. Mulighederne her er
bl.a.:
objRs.MoveNext (- den kender du jo ...)
objRs.MovePrevious
objRs.MoveFirst
objRs.MoveLast
objRs.Move 2 (2 frem)
objRs.Move -3 (3 tilbage)
Hvis du skal bevæge dig baglæns, må du ikke bruge en ForwardOnly cursor.
Det er rigtigt, at der *kan* være performance at tænke på, men så er det
vist heller ikke værre (afhænger af konteksten)
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Christian R. Larsen (07-02-2008)
| Kommentar Fra : Christian R. Larsen |
Dato : 07-02-08 15:15 |
|
"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:31djq3p6t9fb5nr26qv9k116hlgc238sbd@4ax.com...
> Det er rigtigt, at der *kan* være performance at tænke på, men så er det
> vist heller ikke værre (afhænger af konteksten)
Men nu er det jo en Access-database, han arbejder på. Og med mindre han på
forhånd ved, at hans løsning kun vil skulle køre i et meget isoleret miljø
og på arbejde på meget små tabeller, så er det altså både nødvendigt og god
skik og brug at indtænke performance fra starten af.
| |
JS (17-03-2008)
| Kommentar Fra : JS |
Dato : 17-03-08 10:12 |
|
Hej,
Mange tak for hjælpen jeg fik det til at virke!
og så fik jeg også lært lidt om arrays!
mvh
JS
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
|
|