Jag har en kod som visar de 10 "översta" nyheterna i en databas. Den ser ut så här:
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("nyheter.mdb"))
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT TOP 10 * FROM nyheter ORDER BY ID DESC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
<% Do Until RecSet.EOF %>
Hur gör jag om jag på en annan sida vill visa nyhet 11-20? Jag måste antagligen byta ut SELECT TOP 10 till någonting annat, men till vad?
Nej, tekniken är inte intressant, den är ganska ineffektiv om man använder den för paging.
Set RStemp = Connect.Execute("SELECT TOP 4 * FROM BILDER WHERE PICTURE IS not NULL and datum not in (
select top 4 datum from bilder where
picture is not null order by datum desc)
order by DATUM desc, TITEL ")
------------------ essentitia preter non sans multiplicandum
Om du har så få bilder så är det nog enklast att alltid plocka ut allt data till en array med hjälp av getrows och sedan är det bara att indexera sig inom den.
set rs = connect.execute("select * from bilder where picture is not null order by datum desc,title")
arr = rs.getrows()
for i = 0 to 3 -- 4 första
if i > ubound(arr,2) then exit for
...
next
for i = 4 to 7 -- 4 nästa
if i > ubound(arr,2) then exit for
...
next
------------------ essentitia preter non sans multiplicandum
[Redigerat av LarsG den 31 aug 2001]
131 ms totalt · 3 externa anrop · v20260731065814-full.8a4e7caf