Um eine Webanwendung zu erstellen, ist die Pagination -Browserfunktion unerlässlich. Dieses Problem ist in der Datenbankverarbeitung sehr häufig. Tatsächlich gilt diese Pagierungsmethode nur für eine kleine Datenmenge. Folgen wir dem Herausgeber des falschen neuen Technologiekanals, um mehr zu erfahren!
Ideenquelle:
Nehmen Sie die Aufzeichnungen von Nth bis MTH von der Veröffentlichungstabelle heraus:
Wählen Sie Top M-N+1 *
Von der Veröffentlichung
Wo (id nicht in
(Wählen Sie Top N-1 ID
Von der Veröffentlichung)))
Das Folgende ist das gespeicherte Verfahren:
Die Codekopie lautet wie folgt:Verfahrenspagination erstellen3
@tblname varchar (255), - Tabellenname
@strGetfields varchar (1000) = '*', - Spalten, die zurückgegeben werden sollen
@fldname varchar (255) = '', - Feldname sortieren
@PageSize int = 10, - Seitengröße
@PageIndex int = 1, - Seitenzahl
@docount bit = 0, - Gibt die Gesamtzahl der Datensätze zurück, gibt zurück, wenn ein Wert nicht 0 ist
@Ordertype bit = 0, - Setzen Sie den Sortyp ein und wenn der Wert nicht 0 ist, steigen Sie zur Abstiegsordnung
@Strwhere VARCHAR (1500) = '' - Abfragebedingungen (Hinweis: Fügen Sie nicht hinzu, wo)
ALS
deklarieren @Strsql varchar (5000) - Betreffanweisung
Declare @STRTMP VARCHAR (110) - Temporäre Variable
deklarieren @Strorder varchar (400) - Sortieren Sie den Typ
Wenn @DoCount! = 0
Beginnen
Wenn @Strwhere! = ''
set @strsql = 'Wählen Sie Count (*) als Gesamtsumme von [' + @tblname + '] WO' + @STRWHY
anders
Setzen Sie @Strsql = 'Wählen Sie Count (*) als insgesamt von [' + @tblname + ']'
Ende
-Der obige Code bedeutet, dass die Gesamtzahl ausgeführt wird, wenn der @DoCount übertrifft, nicht 0 ist. Alle folgenden Codes sind ein Fall, in dem @DoCount 0 ist:
anders
Beginnen
Wenn @Ordertype! = 0
Beginnen
Setzen Sie @Strtmp = '<(SELECT MIN' SELECT '
set @strorder = 'order von [' + @fldname + '] desc'
-Wenn @Ordertype nicht 0 ist, führen Sie dann eine absteigende Reihenfolge durch. Dieser Satz ist sehr wichtig!
Ende
anders
Beginnen
Setzen Sie @strtmp = '> (Select max'
set @Strorder = 'order von [' + @fldname + '] asc'
Ende
Wenn @pageIndex = 1
Beginnen
Wenn @Strwhere! = ''
set @strsql = 'Select Top' + str (@pageSize) + '' + @strGetfields + 'von [' + @tblname + '] wobei' + @stry + ' + @strorder
anders
set @strsql = 'Select Top'+ str (@pageSize)+ ''+ @strGetfields+ 'von ['+ @tblname+ ']'+ @Strorder
-Wenn es die erste Seite ist, führen Sie den oben genannten Code aus, der die Ausführungsgeschwindigkeit beschleunigt
Ende
anders
Beginnen
set @Strsql = 'Select Top' + str (@pageSize) + '' +@strGetfields + 'von ['
+ @tblname + '] wobei [' + @fldname + ']' + @strtmp + '(['
+ @fldname + ']) von (SELECT TOP' + STR ((@pageIndex-1)*@pageSize) + '['
+ @fldname + '] von [' + @tblname + ']' + @Strorder + ') als tbltmp)'
+ @Strorder
Wenn @Strwhere! = ''
set @Strsql = 'Select Top' + str (@pageSize) + '' +@strGetfields + 'von ['
+ @tblname + '] wobei [' + @fldname + ']' + @strtmp + '(['
+ @fldname + ']) von (SELECT TOP' + STR ((@pageIndex-1)*@pageSize) + '['
+ @fldname + '] von [' + @tblname + '] wobei' + @Strwhere + '' '
+ @Strorder + ') als TBLTMP) und' + @Strwhere + '' + @Strorder
Ende
Ende
exec (@strsql)
-Print @Strsql
GEHEN
Durch den vom Herausgeber des 未分 neuen Technologiekanals eingeführten Inhalte glaube ich, dass jeder ein gewisses Verständnis hat. Wenn Sie mehr technische Inhalte wissen möchten, achten Sie bitte weiter auf den 未分 neuen Technologiekanal!