Avatar billede sago Nybegynder
17. februar 2003 - 15:39 Der er 16 kommentarer og
1 løsning

Opdele SQL-kald i sider

Hej, jeg er ved at lave en link-database, og viser så indholdet på en side. Jeg vil gerne kunne begrænse det til f. eks. 20 links per side, så man kan trykke på "næste side" for at komme til links 21 - 40 osv.

Jeg har prøvet med dette:

    Dim Conn
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DSN=db", "username", "password"

    strSQL = "SELECT * FROM links WHERE category='" & request("kat") & "' AND approved='ja' ORDER BY name"
    Set rs = Conn.Execute(strSQL)

    rs.Pagesize = 5   
    intPage = Request.Querystring("intPage")
    If isNumeric(intPage) = False Or intPage < 1 Then
        intPage = 1

    rs.AbsolutePage = intpage

    End If
   
    If Not (rs.BOF Or rs.EOF) Then
        Response.Write "<table width='100%' cellspacing='2' cellpadding='0'>"
          Do While Not rs.EOF' And intRecCount > 0
            Response.Write "<tr><td valign=top width='100%' colspan=2 bgcolor=#e5e5e5><font size=2><b><a href=links.asp?mode=id&id=" & rs("id") & ">" & rs("name") & "</a></b></font></td></tr>"
            Response.Write "<tr><td valign=top width='80%' bgcolor=#efefef><font size=2>" & rs("description") & "</font></a></td>"
            Response.Write "<td valign=top width='20%' bgcolor=#e5e5e5><font size=2>&nbsp;Hits: " & rs("hits") & "</font></td></tr>"
              rs.MoveNext
          Loop
    End If
    Response.Write "</table>"

    Conn.Close
    Set Conn = Nothing

Men jeg får en fejl på linien:
rs.AbsolutePage = intpage

Jeg får denne fejl:

ADODB.Recordset error '800a0cb3'

Object or provider is not capable of performing requested operation.

Men jeg kan ikke gennemskue hvad der er galt, og hvordan jeg retter det? Eller er der en helt anden måde at gøre det på?
Avatar billede Slettet bruger
17. februar 2003 - 15:42 #1
Avatar billede sago Nybegynder
17. februar 2003 - 15:44 #2
Ja, den har jeg set, og jeg bruger samme metode - og det virker ikke.
Avatar billede longshanks Nybegynder
17. februar 2003 - 15:48 #3
Ikke alle databaser understøtter paging!!!
Avatar billede Slettet bruger
17. februar 2003 - 15:49 #4
hvilken db bruger du ?
Avatar billede sago Nybegynder
17. februar 2003 - 15:50 #5
Jeg bruger MS SQL, burde den ikke understøtte det?
Avatar billede longshanks Nybegynder
17. februar 2003 - 15:52 #6
Du kan prøve at åbne databasen med dynamisk cursor
Avatar billede longshanks Nybegynder
17. februar 2003 - 15:53 #7
Undskyld det er ikke alle databasedrivere der understøtter paging.....
Avatar billede sago Nybegynder
17. februar 2003 - 15:53 #8
Ok, og hvordan gør jeg det...?
Avatar billede longshanks Nybegynder
17. februar 2003 - 16:06 #9
Conn.Open "DSN=db", "username", "password", 1
Er ikke sikker på det, men prøv 1 tallet skulle tillade en cursor der kan bladre frem og tilbage, den er dog ikke "Dynamisk"
Avatar billede longshanks Nybegynder
17. februar 2003 - 16:09 #10
hvis den ikke virker så prøv med 3
Avatar billede sago Nybegynder
17. februar 2003 - 16:28 #11
Det virker desværre ikke, det er som om den ikke bliver åbnet, for længere nede får jeg en fejl, der siger at operationen ikke kan udføres på et lukket objekt.
Avatar billede longshanks Nybegynder
17. februar 2003 - 16:34 #12
prøv at skifte tallene ud med tekst istedet
1 = AdOpenKeyset
3 = AdOpenStatic

Prøv AdOpenStatic først
Avatar billede sago Nybegynder
17. februar 2003 - 17:19 #13
Jeg får en "type mismatch".
Avatar billede longshanks Nybegynder
17. februar 2003 - 17:23 #14
Jeg er lidt blank, men er ret sikker på at det er cursor typen du skal ændre til enten 3 eller AdOpenStatic

Om det er skrevet ind i din connection streng på den rigtige måde, er jeg ikke sikker på.....
Avatar billede longshanks Nybegynder
17. februar 2003 - 17:32 #15
denne conn streng skulle virke:
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType = adOpenStatic
rs.Open(Sql), Conn, 1, 3
Hvordan du fletter den sammen med din kode lader jeg dig om!
Avatar billede longshanks Nybegynder
17. februar 2003 - 17:32 #16
Hvis det virker, så er dette mit svar!
Avatar billede sago Nybegynder
17. februar 2003 - 18:36 #17
Det virker, mange tak! :)
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