Kannst du das nicht mit den PageCount PageSize Propertys des RecordSets
machen?

http://www.chilisoft.com/caspdoc/36_aix_html/ch08_ado/ado_rec0.htm

http://www.chilisoft.com/caspdoc/36_aix_html/ch08_ado/ado_re25.htm


-----Urspr�ngliche Nachricht-----
Von: Dirk Hildebrandt [mailto:[EMAIL PROTECTED]] 
Gesendet: Donnerstag, 23. Mai 2002 20:57
An: ASP Datenbankprogrammierung
Betreff: [aspdedatabase] AW: RE: sql - limit MSsqlserver2000

danke f�r die schnellen reaktionen.
idee ist angekommen, aber nicht m�glich, da kein permanent aufsteigender
wert exisitert und nicht implementierbar ist.

ist es m�glich, die selectanweisung zu schachteln?
das heisst, das was nach dem TOP noch �brigbleibt als zweite
ausgangssituation der daten zu nutzen?

gr�sse
dirk

-----Urspr�ngliche Nachricht-----
Von: Claudius Ceteras [mailto:[EMAIL PROTECTED]]
Gesendet: Donnerstag, 23. Mai 2002 20:23
An: ASP Datenbankprogrammierung
Betreff: [aspdedatabase] RE: sql - limit MSsqlserver2000


Das hast Du richtig verstanden top x gibt nur die ersten x aus....
Paging kannst Du beim mssqlserver am performantesten implementieren,
wenn Du ein (am besten: int-)feld hast, nach dem Du sortieren kannst...
Es muss nicht mal l�ckenlos sein...
Dann kannst Du sowas machen:

Select top 10 * from tabelle order by feld where feld>100

Wenn obiges die aktuelle Page ist, dann muss es f�r die Seite davor so
heissen:
Select top 10 * from tabelle order by feld where feld<100

Und f�r die n�chste Seite:
Select top 10 * from tabelle order by feld where feld>*maxfeld*
..wobei *maxfeld* der inhalt von feld der letzen reihe in der aktuellen
seite..

Dabei muss man aufpassen in welche Richtung man bl�ttert... Danach
richtet sich es, ob man < oder > benutzt...

Hoffe, ich habe mich klar genug ausgedr�ckt...

Gruss,

Claudius

>
> hallo liste!
>
> ich habe bisher gern mit mysql gearbeitet und ben�tigte dort oft eine
> funktion, die den ergebnisbereich datenbankseitig begrenzt.
> das ist fix und
> belastet den server scripttechnisch wenig.
> SELECT * FROM tabelle WHERE a = b ORDER BY c LIMIT 50,10
> (gibt 10 datens�tze ab nr 50 aus)
>
> leider fehlt mir eine entsprechende funktion in der syntax
> des mssqlservers.
> die l�sung �ber den datenzeiger des recordsets ist recht aufw�ndig zu
> schreiben, zumal das sql-statement auch per �bergabeparameter
> dynamisch
> erzeugt werden kann und damit sehr einfach bl�tterbare
> ergebnislisten zu
> erzeugen sind.
>
> wer hat einen tip, wie sich der sql-server diesbez�glich
> ansprechen l�sst?
> die TOP variante hab ich entweder falsch verstanden, oder ich
> kann immer
> tats�chlich nur die jeweils ersten recordsets avisieren.
>
> gr�sse und dank
>
> dirk
>
>
> | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
>


| [aspdedatabase] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp


| [aspdedatabase] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp


| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp

Antwort per Email an