/ Forside/ Teknologi / Udvikling / SQL / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Paging via en stored procedure?
Fra : engo
Vist : 695 gange
40 point
Dato : 27-12-00 16:23

Hej jeg sidder her og skal lave en paging function til et site på nettet, som jeg udvikler i ASP.

Det er nemt at lave i asp, men jeg har lagt alt min logik med hensyn til data ind i MS SQL, så nu vil jeg godt også kunne lave en page function via en stored procedure.

F.eks : sp_getPage( pagenr, pagemax)

Er der nogen som har prøvet dette, jeg ved ikke om det overhovedet kan lade sig gøre.

>> Engo


 
 
Accepteret svar
Fra : pawel

Modtaget 50 point
Dato : 27-12-00 17:15

Jeg antager at pagenr variablen er den som fortaler hvilken side du vil have og
pagemax er den som fortaler antal records pr. side.
Pagenr starter ved 1 (one-based)
Den følgende kode er blot en skitse og du skal udfylde det med noget af dit kode.

create procedure sp_getPage( @pagenr int, @pagemax int)
as
SET NOCOUNT ON
-- først lidt administration af sider
DECLARE @FirstRec int, @LastRec int
SET @FirstRec = (@pagenr - 1) * @pagemax
SET @LastRec = (@pagenr * @pagemax + 1)

-- nu laver vi en temp tabel
CREATE TABLE #TempItems
(
ID int IDENTITY,
etellerandet varchar(50)
)
-- som skal indeholde de data vi gerne vil hente
insert into #TempItems (etellerandet)
select noget from dintabel where betingelse > 0

-- nu udvælger vi det rigtige afsnit
select *
from #TempItems
where ID > @FirstRec and ID < @LastRec
SET NOCOUNT OFF

Du kan selvfølgelig sofistikere selecten med f.eks. en order by osv.

/pawel

Godkendelse af svar
Fra : engo


Dato : 27-12-00 17:19

Tak Pawel,

Genialt svar, lige det jeg skulle bruge.

>> engo

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste