Um programa meu de paginação asp + sqlserver: A característica deste programa é colocar os registros da página atual na página. O desempenho é bom e não há necessidade de procedimentos armazenados. Como o código não é encapsulado, é muito fragmentado. Para utilizá-lo em seu programa, é necessário lê-lo brevemente. Em seguida, preste atenção ao significado dos lugares que você precisa definir. Alguns podem ser omitidos. Algumas passagens de parâmetros também podem ser omitidas.
O código é o seguinte:
'''' A ferramenta de paginação Snow do Saibei (sql server) não requer procedimentos armazenados --------------------------- ---
'Há # nos comentários ## requer configurações do usuário
'Há uma descrição da passagem de parâmetros** no comentário a ser passado através de parâmetros.
'Definir variáveis
dim tOption 'condições de consulta
dim tOrder 'Classificar strings
dim tOrderField 'O campo pedido pode ser obtido através dos parâmetros: order_field
dim tOrderDirection 'A direção de classificação pode ser obtida através dos parâmetros: order_direction
dim tPageSize 'Tamanho da página
dim tTotalCount 'O número total de registros pode ser obtido através dos parâmetros: t_count
dim tPageCount 'Número de páginas
dim tCurPage 'O número da página atual pode ser obtido através dos parâmetros: page
dim tTableName 'Nome da tabela ou visualização
dim tFieldAlias 'alias do número da linha
dim tFieldList 'Lista de campos de consulta
dim tPageField 'Campo utilizado para paginação
dim r_count' Número de registros encontrados
set rs=server.createobject("adodb.recordset") 'Objeto do conjunto de registros
' processamento de classificação
tOrderField=Request("order_field") 'Obtém o campo de classificação (passagem de parâmetro**)
tOrderDirection=Request("order_dir") 'Obtém a direção de classificação (passagem de parâmetro**)
if(tOrderField="") then tOrderField="item_code" ' ### Define o campo de classificação padrão
if(tOrderDirection="") then tOrderDirection="asc" ' ### Define a direção de classificação padrão
'www.downcodes.com
tOrder="ordenar por " & tOrderField & " " & tOrderDirection & " " 'Gerar string de classificação
'Definir parâmetros
tPageSize=find_rs_count ' ### Definir tamanho da página
tTableName="view_select1" ' ### Define e consulta a tabela ou visualização
tFieldList=" * " ' ### Lista de campos a serem consultados
tPageField="item_code" ' ### Define uma chave primária ou um campo de índice exclusivo para cálculos de paginação
'Processamento de página
tCurPage=Request("page") 'Obtém a página atual (passagem de parâmetros**)
tTotalCount=Request("t_count") 'Obtém o número total de páginas (passagem de parâmetros**)
if(tCurPage="") then tCurPage=1
if(cint(tCurPage)=0) então tCurPage=1
if(tPageCount="") então tPageCount =1
if(cint(tPageCount)=0) then tPageCount=1
' Construa condições de consulta, que definitivamente serão diferentes dependendo do programa específico. Mas a última condição deve ser “onde???”
tOption=" issue_flag='Y'" ' ### Definir condições
if f_c<>"" then tOPtion= tOPtion & f_c ' ### Define as condições
if trim(tOption)="" then
tOption = " where 1=1 " 'Se não houver nenhuma condição, adicione uma você mesmo.
outro
tOption= "onde" & tOPtion
terminar se
'Construa a string de consulta, o núcleo deste programa de paginação. Esta string de consulta é o registro que precisamos para baixar apenas a página atual.
if(tCurPage>1) então
conStr = "selecione o topo " & tPageSize & " " & tFieldList & " de " & tTableName & tOption
conStr =conStr & " e " & tPageField & " não está em (selecione top " & tPageSize*(tCurPage-1) & " " & tPageField & " de " & tTableName & tOption & " " & tOrder & ") " & tOrder
outro
conStr = "selecione o topo " & tPageSize & " " & tFieldList & " de " & tTableName & tOption & " " & tOrder
terminar se
'Execute a consulta principal e obtenha o conjunto de registros correspondente
Chame ConnDataBase() ' ### Estabeleça uma conexão com o banco de dados
rs.cursorlocation=3
rs.open conStr,conn,3,1 'Executa consulta
r_count = rs.recordcount
'Quando o número total de registros não foi consultado e o número total de registros excede o tamanho da página, consulte o número total de registros nas condições atuais
if(r_count>=tPageSize ou tCurPage>1) e tTotalCount=0 então
set rr=conn.execute("selecione contagem(*) de " & tTableName & " " & tOption)
tTotalCount=rr(0)
rr.fechar()
setrr = nada
terminar se
if(cint(tTotalCount)=0) then tTotalCount=r_count 'Se o total de registros for 0, defina o número de registros nos registros de diferença atuais definidos como o número total de registros, indicando que o número total atual de registros é menor que o tamanho da página
'Calcule o número de páginas usando o tamanho da página e o número total de registros
if(cint(tTotalCount)>cint(tPageSize)) então
tPageCount=cint((cint(tTotalCount) cint(tPageSize)))
if(cint(tTotalCount) mod cint(tPageSize))>0 então
tPageCount =tPageCount +1
terminar se
terminar se
tCurPage=cint(tCurPage)
tPageCount=cint(tPageCount)
'------------------------------------------------ - -------------------
Este é o código completo. Amigos interessados podem estudá-lo ou encapsulá-lo e adicionar navegação de paginação e outros métodos. De qualquer forma, espero que este código possa ser útil a todos.