Avatar billede _petrucci Nybegynder
12. december 2001 - 09:50 Der er 15 kommentarer og
1 løsning

Paging i MS SQL?

Hejsa :)

Hvordan laver man paging på sin asp-side med MS SQL?

Har prøvet at lave en \"normal\" paging som vist på netcoders og activeserverpages men den kommer med en fejlbesked:

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

Hvordan fikses dette? :)
Avatar billede bennytordrup Nybegynder
12. december 2001 - 09:52 #1
Hvilken provider? Hvordan åbner du (cursorlocation, cursortype)?
Avatar billede _petrucci Nybegynder
12. december 2001 - 10:03 #2
jeg åbner med connect.execute(sql)
Avatar billede _petrucci Nybegynder
12. december 2001 - 10:05 #3
men kan så se at det sikkert ikke kan lade sig gøre på den måde. har prøvet at connecte med:

Set rs5 = Server.CreateObject(\"ADODB.Recordset\")
  rs5.CursorType = adOpenStatic
rs5.PageSize = 10
  rs5.Open(SQL5), myConn

men det er faktisk her fejlen opstår
Avatar billede bennytordrup Nybegynder
12. december 2001 - 10:25 #4
Hvordan åbner du MyConn?
Avatar billede _petrucci Nybegynder
12. december 2001 - 10:40 #5
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER=SQL Server;SERVER=navn;UID=uid;PWD=password;DATABASE=dbnavn;\"
    SQL5 = \"SELECT * FROM BRUGERE WHERE BRUGER_ID =\"& Session(\"BRUGER_ID\")
Avatar billede bennytordrup Nybegynder
12. december 2001 - 10:45 #6
AFAIR, hvis du åbner med conn.execute, så får du altid et forward-only recordset (og det supporterer ikke bookmarks, som er nødvendige for at navigere rundt på den måde).

Prøv i stedet at lave:

rs.open SQL5, myConn
Avatar billede _petrucci Nybegynder
12. december 2001 - 11:12 #7
ok det virker næsten nu...den viser ganske rigtigt de antal records som jeg specificerer MEN... følgende sætninger kan den godt nok ikke lide:

If Not rs5.EOF Then
    rs5.AbsolutePage = cINT(Page)
    rowCount = 0
  End If

Hvis disse linjer IKKE er med...viser den det hele correct. Men jeg skal bruge linjerne til at få links frem til side 2, side 3 osv. Ligesom eksemplet på http://www.netcoders.dk/articles.asp?mode=show_article&tech_id=1&article_id=50

How is that?
Avatar billede bennytordrup Nybegynder
12. december 2001 - 11:17 #8
Ovenstående er kun, hvis der ikke var nogle poster i recordsettet.

Hvad indeholder Page? Hvor er rowCount erklæret?
Avatar billede _petrucci Nybegynder
12. december 2001 - 11:27 #9
Page = Trim(Request(\"page\"))
  If Page = \"\" Then Page = 1

---
rowcount er erklæret i ovenstående post - den bliver så forøget med 1 for hver gang den looper gennem recordsettet.

sidelinks-koden:

If rs.PageCount <> 1 Then
  For i = 1 to rs.PageCount
    response.write \"<a href=\'paging.asp?page=\" & i & \"\'>\" & i & \"</a>\"
  Next
End If




Avatar billede bennytordrup Nybegynder
12. december 2001 - 11:31 #10
Angående rowCount: Ikke forstået
Avatar billede _petrucci Nybegynder
12. december 2001 - 11:34 #11
lader til at den går i kage ved

rs5.absolutepage

jeg har brugt det meste fra eksemplet i ovenstående url. hvis jeg sletter de linjer med sidelinks, kan den sagtens vise f.eks. de første 5 poster fra recordsettet...men skulle gerne kunne finde alle de andre poster ved at tilføje page=2 i querystring :)
Avatar billede _petrucci Nybegynder
12. december 2001 - 11:35 #12
Avatar billede bennytordrup Nybegynder
12. december 2001 - 11:37 #13
Understøtter SQL Server AbsolutePage?
Avatar billede _petrucci Nybegynder
12. december 2001 - 11:41 #14
Det ved jeg faktisk ikke...

Hvis ikke...kan man lave det på en anden måde så? Dur jo ikke at lave en paging hvis man ikke kan se flere records ved klik på \"næste side\" ;)
Avatar billede bennytordrup Nybegynder
12. december 2001 - 11:41 #15
Prøv at sætte rs5.CursorLocation=adUseClient
Avatar billede _petrucci Nybegynder
12. december 2001 - 11:50 #16
oooooh....nu virker det sgu. Brugte ikke dit sidste forslag men prøvede istedet at include adovbs.inc filen...og så ville den! Skulle nok have includet den i forvejen men det havde jeg sgu glemt ;)

Nå så kom vi videre - mange tak for hjælpen :)
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
Computerworld tilbyder specialiserede kurser i database-management

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