Avatar billede jps6kb Novice
25. marts 2006 - 10:24 Der er 7 kommentarer og
1 løsning

Spm. om paging på web10

Hej,

Jeg vil frygtelig gerne lave paging på en side der hostes på web10, men jeg får en

ADODB.Recordset error '800a0cb3'
Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.
/index.asp, line 47

Jeg har kigget lidt rundt og prøvet lidt forskelligt for an fixe dette, men jeg har ikke kunne finde en løsning.

Er der nogen her, som har et paging eksempel som virker på web10 eller ved hvordan jeg klarer det?

Takker. :)
Avatar billede jps6kb Novice
25. marts 2006 - 10:32 #1
Ahh ja..

47:  rs.AbsolutePage = intPage
Avatar billede eagleeye Praktikant
25. marts 2006 - 10:36 #2
Denne fejl kommer fordi man bruger nogle funktioner i recordsetet som gør der skal bruges bookmarks (bogmærke). Ofte kommer fejlen når man vil havde paging på sin side og man bruger denne måde at åbne recordsetet:

Set rs = Conn.Execute(SQL)


For at undgå fejlen skal man bruge recordsetet .Open metode sådan her:

rs.Open SQL, Conn, 1


Samt huske at definere rs som et recordset Objekt, så denne linie skal også med og skal sættes ind før rs.Open (hivs den ikke er der i forvejen):

Set rs = Server.CreateObject("ADODB.Recordset")
Avatar billede jps6kb Novice
25. marts 2006 - 10:46 #3
Jeg har prøvet den løsning.. og har lige prøvet det igen. Men det er som om det ikke rigtig spiller.
Måske jeg har lavet en fejl? Min kode er:

-------------------------------------------

<%
    ' CONTROLLER START!
    strSQL = "SELECT * FROM [Blog] ORDER BY id DESC"
    if request("kategori") <> "" Then
        kategori = request("kategori")
        kategori = Replace(kategori, "'", "''")
        strSQL = "SELECT * FROM [Blog] WHERE kategori = '" & kategori & "' ORDER BY id DESC"
        end if
    if request.form("soeg") <> "" Then
        soeg = request("soeg")
        soeg = Replace(soeg, "'", "''")
        strSQL = "SELECT * FROM [Blog] WHERE tekst LIKE '%" & soeg & "%' ORDER BY id DESC"
    end if
    if request("maaned") <> "" AND request("aar") <> "" Then
        strSQL = "SELECT * FROM [Blog] WHERE mm = " & request("maaned") & " AND yyyy = " & request("aar") & " ORDER BY id DESC"
    end if
    if NOT strSQL = "" then
       
    end if
    'CONTROLLER SLUT!
    response.write "strSQL : " & strSQL & "<br/>"
    Set conn = Server.CreateObject("ADODB.connection")
        conn.Open = "DBQ=" & server.mappath("noerd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"
    Set rs = Server.CreateObject("ADODB.Recordset")
        rs.Open strSQL, conn, 1
    if rs.EOF then
        response.write "Ingen indlæg"
    end if
   
    'PAGING BIT
    intPage = Request("page")
    If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
    end if
   
   

    while NOT rs.EOF

    'PAGING BIT
        rs.PageSize = 10
        rs.AbsolutePage = intPage
        intRecCount = rs.PageSize
        intPageCount = rs.PageCount
        Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
        Do While Not rs.EOF And intRecCount > 0

        set res = Myconn.execute("SELECT count(*) as varCount FROM [Kommentar] WHERE blogid = " & rs("id") & "")
%>
                        <table class="tblBlog" cellpadding="0" cellspacing="0">
                            <tr>
                                <td class="tdHeadline">
                                    <% = rs("overskrift") %>
                                </td>
                            </tr>
                            <tr>
                                <td class="tdDate">
                                    Skrevet
<%
    strDate = rs("dd") & "-" & rs("mm") & "-" & rs("yyyy")
    strNewDate = FormatDateTime(strDate,1)
    strWeekday = Weekday(strDate,2)
    dag = "1"

    select case strWeekday
        case 1
            dag = "mandag"
        case 2
            dag = "tirsdag"
        case 3
            dag = "onsdag"
        case 4
            dag = "torsdag"
        case 5
            dag = "fredag"
        case 6
            dag = "lørdag"
        case 7
            dag = "søndag"
    End select
   
    tid = ""
    if rs("tid") <> "" Then
        tid = " kl. " & rs("tid")
    end if
   
    response.write dag & ", " & strNewDate & tid & ", af <a href=""mailto:post@kimbang.dk"">Kim Bang</a>"
   
%>
<br/>
Kategori: <% = rs("kategori") %>&nbsp;&nbsp;&nbsp;<a href="kommentar.asp?id=<% = rs("id") %>">Kommentar (<% = res("varCount") %>)</a>
                                </td>
                            </tr>
                            <tr>
                                <td class="tdBlog">
<%
    if rs("billede") <> "" Then
%>
                                    <img src="upload/<% = rs("billede") %>" alt="<% = rs("billede") %>" class="imgmargin"/>
<%
    end if
%>
                                    <% response.write replace(rs("tekst"),vbCrLf,"<br/>")  %>
                                   
                                </td>
                            </tr>
                        </table>
                        <br/><br/>
<%
    'PAGING END
        intRecCount = intRecCount - 1
    Loop
    rs.MoveNext
    Wend
%>
                        <br/><br/>
<%
    'PAGING LINKS
    If Clng(intPage) > 1 Then
  Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>&nbsp;"
Else
  Response.Write "&lt;&lt;"
End If
' makes numeral link
For intNum = 1 To intPageCount
  Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next


Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=paging.asp?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If
%>

-----------------------------------
Avatar billede eagleeye Praktikant
25. marts 2006 - 10:54 #4
Når du skriver: "Men det er som om det ikke rigtig spiller"

Hvad sker der så?

Umiddelbart kan jeg se et par ting. Denne linie:

    while NOT rs.EOF


Skal være:

    if NOT rs.EOF



Disse linier:

    'PAGING END
        intRecCount = intRecCount - 1
    Loop
    rs.MoveNext
    Wend
%>

Skal rettes til dette:

    'PAGING END
        intRecCount = intRecCount - 1
        rs.MoveNext
    Loop
  End If
%>



Der ud over bruger du en connection myconn som ikke er defineret noget sted:

set res = Myconn.execute("SELECT count(*) as varCount FROM [Kommentar] WHERE blogid = " & rs("id") & "")
Avatar billede eagleeye Praktikant
25. marts 2006 - 10:55 #5
hov der mangler lige then på den if sætning jeg viste, såda her:

    if NOT rs.EOF then
Avatar billede eagleeye Praktikant
25. marts 2006 - 10:56 #6
Det er muligt du har noget mere koden inden det du har vist hvor Myconn bliver defineret og så det jo ok.
Avatar billede jps6kb Novice
25. marts 2006 - 11:14 #7
MyConn bliver inkluderet i en fil inden den viste kode.. jeg prøver lige det du skrev. ;)
Avatar billede jps6kb Novice
25. marts 2006 - 11:21 #8
Det virker jo bare.. jeg siger mange tak :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester