Jag använder GetRows() för att optimera koden lite bättre. I koden här nedan använder jag GetRows() tillsammans med
paging och det fungerar till viss del. Jag ska ha 10 poster per sida, och låt oss säga att databasen innehåller
30 sidor. På första sidan visas alla poster, på andra sidan nästa 10 poster och på tredje nästa 10 poster, precis som det ska vara.
Men hur fixar jag så att bara 10 poster syns på första sidan och inte alla i databasen?
Efter For-loopen står ju också and sftRowcount < Psize. Om jag tar bort den raden fungerar allt ändå, med enda undantaget att
alla poster syns på den första sidan. Jag får inget felmeddelande.
Och slutligen, går det att optimera koden mer?
<% 'Detta kodstycket är en fortsättning på listningen av alla poster i en specifik tråd
Dim sftCn, sftRs, sftstrSQL, viewPage, sftRowCount, sftPageCounter, Psize, arrRecs, ifo, f0, f1, f2, f3, f4, f5, f6, f7
viewPage = Request.Querystring("viewPage")
If viewPage="" Then viewPage=1
sftRowcount=0
Set sftCn = Server.CreateObject("ADODB.Connection")
sftCn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("forum/db_forum.mdb") & ";pwd=" & Password & ";"
sftstrSQL = "Select * From tbl_answers Where TopicId=" & Request.Querystring("id")
Set sftRs = sftCn.Execute("Select * From tbl_answers Where TopicId=" & Request.Querystring("id"))
sftRs.Close
sftRs.Cursortype=3
Psize=10
sftRs.Open %>
<% If sftRs.EOF And Forum_NoId="No" Then Response.Write ""
If sftRs.EOF And Not Forum_NoId="No" Then Response.Write "Inga svar än.. Skriv svar nedan." Else sftRs.Absolutepage=cInt(viewPage) %>
<% If Not sftRs.EOF Then : arrRecs = sftRs.GetRows
Dim sftAntal, sftPageCount : sftAntal = sftRs.Recordcount
sftPageCount = sftRs.PageCount
sftRs.Close : Set sftRs = Nothing
sftCn.Close : Set sftCn = Nothing %>
<% If IsArray(arrRecs) Then
For ifo = 0 To UBound(arrRecs,2) and sftRowcount < Psize
f0 = arrRecs(0,ifo)
f1= arrRecs(1,ifo)
f2= arrRecs(2,ifo)
f3= arrRecs(3,ifo)
f4= arrRecs(4,ifo)
f5 = arrRecs(5,ifo)
f6 = arrRecs(6,ifo)
f7 = arrRecs(7,ifo) %>
<a name="#<%=f0%>"></a><table><tr bgcolor="<%=Border%>"><td width="528">
<table cellpadding="6" cellspacing="0" border="0"><tr><td bgcolor="<%=stCell%>"><table cellpadding="0" cellspacing="0" border="0"><tr><td width="460"><span class="minirubrik"><%=f5%></span></td><td><a href="default.asp?cat=forum&action=edit&aid=<%=f0%>">Redigera</a></td></tr></td></tr></table>
</td></tr><tr><td bgcolor="<%=stCell2%>"><%=fixmylinks(Replace(f6,vbCrLf,"<br>"))%>
<p><% If Len(f3)>0 Then %><a href="mailto:<%=f3%>" title="<%=f3%>"><% End If %><%=f2%><% If Len(f3)>0 Then %></a><% End If %>
| <%=Left(f7,16)%> | <span class="minirubrik">Id:</span> <%=f0%></td></tr></table></td></tr></table><p>
<% sftRowcount = sftRowcount + 1
Next
End If
End If %>
<% If sftAntal > 10 Then %>
<% For sftPagecounter = 1 to sftPageCount %>
<a href="default.asp?cat=forum&action=show&id=<%=Request.Querystring("id")%>&viewpage=<%=sftPagecounter%>"><%=sftPagecounter%></a>
<% Next %><% If Len(Request.Querystring("viewpage"))>0 Then %> | Du är på sida <span class="minitext"><%=Request.Querystring("viewpage")%></span><% End If %>
<% End If %>