quinta-feira, 8 de maio de 2003

Paginação

<%
'----------------------------------
' Script: Paginação Simples
' Autor: Régis Soares
' E-mail: regis_soares@hotmail.com
' ICQ: 161916543
'----------------------------------


' Definindo o caminho do banco de dados
caminho = "paginacao.mdb"


' Fazendo a conexão com o banco de dados (paginacao.mdb)
set conn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(caminho)
conn.Open DSN


' String SQL para consulta
SQL = "SELECT * FROM nomes ORDER BY nome"


' Abrindo o registro
SET RS = Server.CreateObject("ADODB.Recordset")
RS.Open SQL,conn,3


' Se não encontrar nada escreve a mensagem
' Senão lista os registros
If RS.EOF Then
 Response.Write("Nenhum registro foi encontrado")
Else
 ' Definindo o número de registros por página
 RS.PageSize = 2
 
 ' Recupera o valor da variável pagina
 pagina = Request.QueryString("pagina")
 
 ' Se a variável pagina for vazio, indica que a página sera a primeira
 ' Senão a variável pagina recebe o valor da página corrente, definida acima
 If pagina = "" Then
  RS.AbsolutePage = 1
  pagina = 1
 Else
  RS.AbsolutePage = pagina
 End If
 
 ' Imprime o número de registros, o total de páginas e a página atual
 Response.Write("<p align='center'>Foram encontrados <b>" & RS.RecordCount & "</b> registros" & vbcrlf )
 Response.Write("<br>Mostrando página <b>" & pagina & "</b> de <b>" & RS.PageCount & "</b></p>" & vbcrlf )
 
 While Not RS.EOF AND cont < RS.PageSize
  Response.Write( rs("nome") & "<br>" & vbcrlf )
  cont = cont + 1
  RS.MoveNext
 Wend
 
 ' Criando a barra de navegação
 
 ' Se a variável pagina for maior que 1 então imprime o botão Anterior com link
 ' Senão imprime sem link
 If CInt(pagina) > 1 Then
  Response.Write("<p align='center'><a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & pagina-1 & "'>Anterior</a> ")
 Else
  Response.Write("<p align='center'>Anterior")
 End If
 
 ' Lista todas as páginas encontradas
 For i = 1 To rs.PageCount
  response.write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & i & "'>" & i & "</a> ")
 Next
 
 ' Se a variável pagina for menor que o total de páginas então imprime o botão Próxima com link
 ' Senão imprime sem link
 If CInt(pagina) < rs.PageCount Then
  Response.Write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & pagina+1 & "'>Próxima</a></p>")
 Else
  Response.Write("Próxima</p>")
 End If
End If


' Fecha e destroi os objetos RS e conn
RS.Close : conn.Close
Set RS = Nothing : Set conn = Nothing
%>



Esta matéria foi postada originalmente no ASP4Developers por Régis da Silva Soares, que na época era "Programador ASP e PHP". Hoje, vai saber...

0 comentários: