Avatar billede loukas Mester
26. marts 2007 - 16:58 Der er 8 kommentarer og
1 løsning

Recordset does not support bookmarks

Jeg er ved at skifte fra Access til mySql og har i den forbindelse fået et problem med den måde jeg har lavet paging.
Håber nogen vil/kan hjælpe mig!

Fejlen:
ADODB.Recordset error '800a0cb3'

Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.

/lachica/viskategori1.asp, line 230


Og lidt af koden:
Set RS = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM varer WHERE VareKategoriID = "&Request.QueryString("kategori")&" AND underkategoriID < 2 AND slettet=0 ORDER BY vareid desc"

RS.open SQL, objConn, 1


If rs.EOF then
    'gør ingenting
Else
    rs.PageSize = 12
  rs.AbsolutePage = intPage    <------ LINIE 130 ----
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
Avatar billede keysersoze Ekspert
26. marts 2007 - 17:03 #1
Avatar billede madeindk Nybegynder
26. marts 2007 - 17:05 #2
Det skal bare se sådan her ud hvis det skal køre på MySQL :_)

Set RS = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM varer WHERE VareKategoriID = "&Request.QueryString("kategori")&" AND underkategoriID < 2 AND slettet=0 ORDER BY vareid desc"
   
rs.CursorLocation = 3
rs.Open SQL, objConn, 1   
       
If rs.EOF then
  'gør ingenting
Else
  rs.PageSize = 12
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
Avatar billede keysersoze Ekspert
26. marts 2007 - 17:15 #3
det _kan_ se sådan ud - den anden løsning er database-mæssigt mere optimalt ;)
Avatar billede loukas Mester
26. marts 2007 - 17:16 #4
Super, og tak for de hurtige svar.
Ren klip og klistrer.
Men hvad betyder det med rs.Curserlocation = 3 ?
Avatar billede loukas Mester
26. marts 2007 - 17:17 #5
OK, hvorfor er det bedre med den anden løsning?
Avatar billede keysersoze Ekspert
26. marts 2007 - 17:25 #6
fordi du kun selecter de nødvendige værdier ud fremfor det hele.
Avatar billede madeindk Nybegynder
26. marts 2007 - 18:52 #7
Ja, det er rigtigt. Men det er skam ganske glimrende det andet paging system, måske ikke verdens hurtigste - men det funger.
Avatar billede loukas Mester
28. marts 2007 - 15:29 #8
OK, du mener altså "SELECT varekategoriID, underKategoriID FROM varer"
i stedet for "SELECT * FROM varer"
??
Avatar billede keysersoze Ekspert
28. marts 2007 - 17:12 #9
nej - ikke helt.

først og fremmest - ja, begge dele fungerer glimrende, men det er ikke altid man kan "nøjes" med at ting virker, nogle gange er man også nødt til at kigge på performance og så mener jeg lige så godt at man kan vælge det bedst mulige fra starten.

det er rigtigt at fx "SELECT varekategoriID, underKategoriID FROM varer" er hurtigere end "SELECT * FROM varer" - men det var nu ikke den del jeg tænkte på her. Den måde du løser det på nu og som også madeindks gør er, at den vælger alle poster ud fra databasen og så bare viser de nødvendige - den måder jeg linker til vælger kun de nødvendige poster ud. Dvs har du 1000 poster vil du nu få valgt alle 1000 poster men kun vise de 12 - med løsningen fra mit link vil du kun få udvalgt de 12 nødvendige poster.
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