G8Medlem sedan jan. 2001931 inlägg
stm = "SELECT tickets.id AS TID, tickets.datetime, tickets.username, tickets.priority, tickets.helptype, tickets.status, tickets.dateofstatuschange, "&_
"tickets.reviewed, tickets.assignedto, status.descr, users.id, users.name, users.admin FROM tickets INNER JOIN status ON tickets.status = status.id INNER JOIN "&_
"users ON users.id = tickets.assignedto WHERE status = '"&status&"' ORDER BY "&SORT&" "&ORDNING&""
I MySQL är det ju enkelt det här med paging, medans i MSSQL är det en aning mer komplicerat (om du frågar mig)
Har kollat runt här i forumet, hittar nått om rowcount men får inte till det.
Använde mig av exempelkod från http://www.aspfaq.com/show.asp?id=2120
Finns det något annat enkelt sätt att få till paging med MSSQL?
sidofråga: Nästa version av MSSQL kommer väl stödja LIMIT eller?
BrimbaMedlem sedan dec. 19992 966 inlägg
Jag skulle föreslå att du hämtar din data (dock begränsat till ett realistiskt antal) och cachar denna på servern (om du har möjlighet). Sedan utför du pagingen på servern. Då slipper du belasta databasen med ett nytt anrop för varje sidbyte.
Limit kommer inte i nästa version av mssql, det finns dock andra möjligheter så du kan uppnå likvärdigt resultat.
set rowcount anger antalet poster som skall returneras (liknande top (som jag visar nedan)).
Det som måste göras är att begränsa även vilka poster (vilken sida) man skall hämta just nu, exempel på detta nedan.
Första sidan.
declare @start int
set @start = 0
SELECT top 20 tickets.id FROM tickets WHERE ticketsId > @start
Andra sidan.
declare @start int
set @start= 20
SELECT top 20 tickets.id FROM tickets WHERE ticketsId > @start
G8Medlem sedan jan. 2001931 inlägg
Kan man inte göra en view eller stored procedure på servern och sedan kalla den varje gång man behöver den?