Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


GetRows med Paging

Postades av 2002-10-20 18:07:39 - Martin Söderlund, i forum asp - allmänt, Tråden har 2 Kommentarer och lästs av 452 personer

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?


<code><% '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>Redigera</td></tr></td></tr></table>
</td></tr><tr><td bgcolor="<%=stCell2%>"><%=fixmylinks(Replace(f6,vbCrLf,"<br>"))%>
<p><% If Len(f3)>0 Then %><% End If %><%=f2%><% If Len(f3)>0 Then %><% 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 %>
&viewpage=<%=sftPagecounter%>"><%=sftPagecounter%>
<% Next %><% If Len(Request.Querystring("viewpage"))>0 Then %> | Du är på sida <span class="minitext"><%=Request.Querystring("viewpage")%></span><% End If %>
<% End If %></code>


Svara

Sv: GetRows med Paging

Postades av 2002-10-20 19:17:58 - Andreas Hillqvist

Du kan ju testa:
<code>
<%
'Detta kodstycket är en fortsättning på listningen av alla poster i en specifik tråd
Dim sftCn
Dim sftRs
Dim viewPage
Dim sftRowCount
Dim sftPageCounter
Dim arrRecs
Dim ifo, f0, f1, f2, f3, f4, f5, f6, f7
Dim sftAntal
Dim PageCount
Const PageSize=10
Const adUseClient = 3

viewPage = Request.Querystring("viewPage")
If viewPage="" Then viewPage=1

Set sftCn = Server.CreateObject("ADODB.Connection")
sftCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum/db_forum.mdb") & ";Persist Security Info=False"

Set sftRs = Server.CreateObject("ADODB.Recordset")
sftRs.CursorLocation = adUseClient
sftRs.Open "SELECT * FROM tbl_answers WHERE TopicId=" & Request.Querystring("id"), sftCn

If sftRs.EOF Then
sftRs.Close
Set sftRs = Nothing

sftCn.Close
Set sftCn = Nothing

If Forum_NoId <> "No" Then
Response.Write "Inga svar än.. Skriv svar nedan."
End If
Else
PageCount = (sftRs.Recordcount \ PageSize) + 1
Select Case viewPage
arrRecs = sftRs.GetRows(PageSize, PageSize * viewPage)

sftRs.Close
Set sftRs = Nothing

sftCn.Close
Set sftCn = Nothing
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>Redigera</td></tr></td></tr></table>
</td></tr><tr><td bgcolor="<%=stCell2%>"><%=fixmylinks(Replace(f6,vbCrLf,"<br>"))%>
<p><% If Len(f3)>0 Then %><% End If %><%=f2%><% If Len(f3)>0 Then %><% End If %>
| <%=Left(f7,16)%> | <span class="minirubrik">Id:</span> <%=f0%></td></tr></table></td></tr></table><p>
<%
sftRowcount = sftRowcount + 1
Next
End If
If sftPageCount > 1 Then
For sftPagecounter = 1 to sftPageCount
%>&viewpage=<%=sftPagecounter%>"><%=sftPagecounter%><%
Next
%> | Du är på sida <span class="minitext"><%=viewPage%></span><%
End If
%>
</code>


Svara

Sv: GetRows med Paging

Postades av 2002-10-21 09:55:09 - Martin Söderlund

Det fungerar inte! Jag får 800a03ea-fel (för HTML-parsing?). Det närmsta jag kom var att Select Case-satsen inte hade någon End Select så den tog jag bort. Jag gjorde om lite i koden, helst använder jag inte Const Pagesize då jag har en likadan paging högre upp i koden. Felmeddelandet är:

ADODB.Recordset fel '800a0bb9'

Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt.

och felet är vid arrRecs = sftRs.GetRows(PSize, PSize * viewPage)


Koden som den är nu:

<code>
<%
'Detta kodstycket är en fortsättning på listningen av alla poster i en specifik tråd
Dim sftCn
Dim sftRs
Dim viewPage
Dim sftRowCount
Dim sftPageCounter
Dim arrRecs
Dim ifo, f0, f1, f2, f3, f4, f5, f6, f7
Dim sftAntal
Dim PageCount
Const PSize=10
Const adUseClient = 3

viewPage = Request.Querystring("viewPage")
If viewPage="" Then viewPage=1

Set sftCn = Server.CreateObject("ADODB.Connection")
sftCn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("forum/db_forum.mdb") & ";pwd=" & Password & ";"

Set sftRs = Server.CreateObject("ADODB.Recordset")
sftRs.CursorLocation = adUseClient
sftRs.Open "SELECT * FROM tbl_answers WHERE TopicId=" & Request.Querystring("id"), sftCn

If sftRs.EOF Then
sftRs.Close
Set sftRs = Nothing

sftCn.Close
Set sftCn = Nothing

If Forum_NoId <> "No" Then
Response.Write "Inga svar än.. Skriv svar nedan."
End If
Else
PageCount = (sftRs.Recordcount \ PSize) + 1

arrRecs = sftRs.GetRows(PSize, PSize * viewPage)

sftRs.Close
Set sftRs = Nothing

sftCn.Close
Set sftCn = Nothing
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>Redigera</td></tr></td></tr></table>
</td></tr><tr><td bgcolor="<%=stCell2%>"><%=fixmylinks(Replace(f6,vbCrLf,"<br>"))%>
<p><% If Len(f3)>0 Then %><% End If %><%=f2%><% If Len(f3)>0 Then %><% 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 sftPageCount > 1 Then
For sftPagecounter = 1 to sftPageCount
%>&viewpage=<%=sftPagecounter%>"><%=sftPagecounter%>
<% Next %> | Du är på sida <span class="minitext"><%=viewPage%></span>
<% End If %></code>


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 812
27 960
271 761
514
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies