AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi 10Records vor- und zurückblättern (Paging)
Thema durchsuchen
Ansicht
Themen-Optionen

10Records vor- und zurückblättern (Paging)

Ein Thema von heri · begonnen am 27. Mai 2008 · letzter Beitrag vom 28. Mai 2008
 
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: 10Records vor- und zurückblättern (Paging)

  Alt 28. Mai 2008, 09:54
Also, wenn Du durch eine lange Tabelle blättern willst, dann :
Erstelle einen CLUSTERED(!!!) INDEX auf der Spalte, nach der sortiert werden soll. Wir nennen die jetzt mal 'SEQ' (für Sequenz).

Dann:
In Delphi deklarierst du zwei Variablen: 'TopSeq' und 'BottomSeq'.

So, jetzt der Code:
Init:
'Select Top 10 * from MyTable Order by SEQ'
Du bekommst maximal 10 Zeilen. Der Wert 'SEQ' der 1.Zeile kommt in TopSeq, der der letzten Zeile in 'BottomSeq'

Nächste Seite laden:
'Select Top 10 * from MyTable Where SEQ > :BottomSeq order by SEQ'
Du bekommst maximal 10 Zeilen. Der Wert 'SEQ' der 1.Zeile kommt in TopSeq, der der letzten Zeile in 'BottomSeq'

Vorherige Seite laden:
'select * from (Select Top 10 * from MyTable Where SEQ > :TopSeq order by SEQ Desc) x order by SEQ'
Du bekommst maximal 10 Zeilen. Der Wert 'SEQ' der 1.Zeile kommt in TopSeq, der der letzten Zeile in 'BottomSeq'

Der Trick ist der Clustered Index, denn dann verbraucht die Sortierung keine Zeit (die Daten sind bereits sortiert abgelegt). Du wirst bei dieser Lösung keine Verzögerung bemerken, egal wie groß die Tabelle ist.

Unter SQL 2005 gehts vielleicht auch noch einfacher, aber so hab ich mir seit 10 Jahren beholfen und es funzt sehr gut.

Die Frage, die Du dir stellen solltest, lautet aber:
Zitat von Die Frage:
"Wieso soll jemand durch unmengen von Daten scrollen wollen ?"
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz