Avatar billede killer_r Nybegynder
05. juni 2005 - 21:15 Der er 1 kommentar og
1 løsning

Pageing med MySQL

Jeg er ved at skifte fra MS Access som database til MySQL.
Før i tiden lavede jeg en pageing vha. følgende kode:

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "select * from Forum order by id desc", Conn, 1
if not (rs.BOF or rs.EOF) then
    rs.PageSize = 25
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    intPage = Request.QueryString("page")
    rs.AbsolutePage = intPage ' <----- Her meldes fejlen

    Do While Not rs.EOF And intRecCount > 0
        Response.Write rs("overskrift") & "<br>"
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
end if

Men nu (med MySQL) får jeg fejlen:

ADODB.Recordset error '800a0cb3'
Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.


Hvordan retter jeg det til så det virker...?

/Killer_R
Avatar billede cool_casper Nybegynder
05. juni 2005 - 23:30 #1
Da MySQL ikke understøtter bookmarks ligesom Access gør skal du lave det på en anden måde. I Mysql findes der en kommando der hedder LIMIT som du kan bruge i dit sql kald.
Et eks:
SELECT feltnavn FROM tabel LIMIT 5 - her henter vi data ud som normalt dog vil vi kun have 5 records ud.
Der findes så en parameter mere til LIMIT kommandoen. En såkaldt offset. Her kan du bestemme hvornår du vil starte med at trække records ud.
Et eks:
SELECT feltnavn FROM tabel LIMIT 10,5 - her henter vi data ud som normalt dog vil vi kun have 5 records ud OG vi starter fra record nummer 10.
På den måde kan du lave en paging-funktion, men du skal have skrevet hele din kode om.
F.eks. på side 1 vil du have dette sql kald:
SELECT feltnavn FROM tabel LIMIT 0,5 - her henter vi de første 5 records ud (startende ved 0)
På side 2 vil du så bruge dette kald:
SELECT feltnavn FROM tabel LIMIT 5,5 - her henter vi de næste 5 records ud (startende ved nr. 5)

Kan du følge ideen?

Du kan læse mere om select og limit her: http://dev.mysql.com/doc/mysql/en/select.html
Du kan finde et eksempel på paing med ASP og mysql her: http://activedeveloper.dk/artikler/default.asp?articleid=279
Avatar billede killer_r Nybegynder
12. juni 2005 - 15:13 #2
takker!
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