Hallo!

Ein paar Gedanken zu "LIMIT 10, 50" ...

Ich gebe zu, dass man mit diesem Befehl ein Paging sehr einfach
realisieren kann, aber g�be es den Befehl in Transact-SQL, ich w�rde ihn
nicht verwenden und auch meinen Mitarbeitern verbieten, den Befehl zu
benutzen.

Wenn man eine statische Tabelle hat, die nach einem eindeutigen Index
sortiert ist, liefert der Befehl auch immer eindeutige Werte. Sobald
aber eine Tabelle entweder laufend ver�ndert wird (INSERT, DELETE,
UPDATE von Index-Feldern) oder nicht nach einem eindeutigen Index
sortiert ist, bekommt man mit "LIMIT 10, 50" auch keine eindeutigen
Ergebnisse mehr. Bei "unkontrolliert" angewendetem "LIMIT 10, 50" ist es
nicht unwahrscheinlich, dass die �bersprungenen Datens�tze auch gelesen
werden m�ssen.

Mit "TOP 10" in Verbindung mit z. B. "WHERE Index-Feld > ..." hat man
immer eine performante L�sung. Deshalb sollte m. E. ein
Datenbankprogrammierer auch auf "LIMIT 10, 50" verzichten.

Um eine Tabelle �ber mehrere Seiten auszugeben, verwende ich "TOP 10 +
X" und zus�tzlich "WHERE ..." in Verbindung mit einem eindeutigen
Schl�ssel. Ich lese also z. B. 13 Datens�tze ein und breche die Ausgabe
bei 10 ab, es sei denn, dass mit dem 13. Datensatz das Dateiende
erreicht wird. So erreiche ich immer alle Datens�tze (auch bei
Ver�nderungen) und zus�tzlich verhindere ich, dass weniger als 3
Datens�tze auf einer Seite stehen.

Dass "TOP 10" bei nicht eindeutigem Sortierkriterium dann auch mal mehr
als 10 Datens�tze liefern kann ist ebenfalls sehr wichtig. Man stelle
sich nur mal eine Rangliste mit "TOP 10" vor, bei der Platz 8 bis 14 die
gleiche Punktzahl haben und dann Platz 8 bis 10 willk�rlich ausgew�hlt
w�rden. Das kann doch keiner ernsthaft wollen und deshalb sollte man
dabei auch immer eindeutige Sortierkriterien definieren.

Freundliche Gr��e
Joachim van de Bruck




| [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