Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de ASP
SEÇÕES
Manuais relacionados
+Workshop de ASP
Categorias
+Scripts em ASP

Índice do Manual Workshop de ASP
+ Melhorar o registro em buscadores
+ Include. Incluir arquivos ASP
+ Crie seu próprio buscador
+ O objeto RecordSet
+ Paginar resultados em ASP
+ Global .ASA
+ Contar usuários ativos
+ Percorrido arrays e coleções
+ Mais sobre cookies
+ Detector de navegador
+ Trabalho com o buffer da página
+ Utilização ou não do Cache
+ Objeto Server
+ Leitura e escritura de arquivos em ASP
+ Cálculo de dias que faltam para uma data
+ Componentes do servidor ASP
+ AspUpload
+ Exportar dados de MySQL a Microsoft Access
+ Exportar dados de Access a MySQL
+ Mandar e-mails pelo ASP
+ Criar banco de dados Access com ASP
+ Passagem de variáveis pela URL
+ Uso de CDONTS para script de recomendar a um amigo em ASP
+ Servidores nos EUA e o asp
+ Como fazer zonas aleatórias em asp
+ Selects dependentes com ASP e banco de dados
+ Sistema de Recomendação em ASP com CDONTS
+ Encaminhar o navegador a uma URL com ASP detalhado
+ Uso de cookies
+ Galeria de imagens em ASP
+ Escrever um arquivo Excel através de ASP
+ Tratar erros em sentenças SQL executadas em ASP
+ Validar uma data com ASP
+ Arredondar decimais em ASP
+ Devolver um arquivo de Word através de uma página ASP
+ Um Chat em ASP
+ Averiguar o endereço IP de um visitante e bloquear IPs, em ASP
+ Lista dos arquivos de um diretório com ASP
+ Percorrido genérico por um recordset com ASP
+ Intranets com ASP
+ Restringir o acesso a páginas com ASP
+ Saídas em formato compatível Excel
+ Variáveis de servidor em ASP
+ GeoLite Country para ASP. Conhecer o país de um IP
+ Um Sistema de postais Virtuais em ASP I
+ Um Sistema de postais Virtuais em ASP II
+ Messenger através de BD em ASP
+ Objeto Datagrid de ASP.NET em ASP
+ Percorrer campos de formulário complexos em ASP
+ Percorrer valor do campo auto-numérico depois de inserir em ASP
+ O Objeto Browser Capabilities
+ Buscador simples em ASP melhorado

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Paginar resultados em ASP

Aprenda a paginar os resultados obtidos ao consultar uma base de dados. Lista e descrição do script que poderá fazer um fusão com o buscador deste mesmo workshop.


Em artigos anteriores vimos quais são as propriedades e métodos principais do objeto RecordSet, agora falta somente coloca-los em prática para consolidar nossos conhecimentos.

Neste capítulo propomos e descrevemos um script que divide em distintas páginas os registros obtidos a partir de uma consulta à base de dados mediante a exploração do objeto RecordSet.

Trata-se de um derivado do clássico script que podemos encontrar em qualquer tipo de buscador. De fato, este script pode ser muito facilmente fusionado com o protótipo de buscador proposto neste mesmo workshop de forma a providenciar a construção de uma sentença SQL que, despois de sua execução poderá ser paginada por meio deste script.

A seguir apresentamos a lista que, para maior clareza, utiliza uma única sentença SQL. Deixamos por sua conta a fusão deste script com o do buscador.

<html>
<head>
   <title>Repaginador de resultados</title>
</head>
<%
sSQL="select o que quiser"
'esta sentenca SQL pode ser criada a partir de um buscador como o que vimos em outro artigo
'e armazenada em um sessao para emprega-la sucessivas vezes no script: session("ssql")=ssql

'atualizamos numero de pagina
If Request.QueryString("pag")<>"" Then
   Session("pagina")=Request.QueryString("pag")
Else
   Session("pagina")=1
End If

'constantes ADO VBScript
Const adCmdText = &H0001
Const adOpenStatic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Set Command = Server.CreateObject("ADODB.Command")
Set RS =Server.CreateObject("ADODB.RecordSet")
Conn.Open "nome de sua base de dados"
RS.Open sSQL,Conn,adopenstatic,adcmdtext

'resultados por pagina a escolher arbitrariamente
num_registros = 5

'Dimensionamos as paginas e determinamos a pagina atual
RS.PageSize=num_registros
RS.AbsolutePage=Session("pagina")
%>

<body>
<div align="center">
Número de página actual: <b><%=Session("pagina")%></b>
<br>
Número de páginas total: <b><%=RS.PageCount%></b>
<br>
Número de registros por página: <b><%=RS.PageSize%></b>
<br>
Número de registros selecionados: <b><%=RS.RecordCount%></b>
</div>
<br><br>

<table cellspacing="2" cellpadding="2" border="1" align="center">
<%
'Contamos o número de campos
num_campos=RS.Fields.Count For campo=0 to num_campos-1%>
   <td align="center"><%=RS(campo).Name%></td>
<%
Next
registros_mostrados = 0
While (Not RS.eof And registros_mostrados < num_registros)
   registros_mostrados = registros_mostrados +1
%>
   <tr>
   <%For campo=0 to num_campos-1 %>
     <td align="center"><%=RS(campo)%></td>
   <%Next%>
</tr>
<%
   RS.MoveNext
Wend
%>
<tr>
<td colspan="<%=num_campos%>" align="center">
<%
   i=0
While i<RS.PageCount
   i=i+1
%>
   <b><a href="paginar.asp?pag=<%=i%>"><%=i%></a></b>
<%
Wend
%>
</td>
</tr>
</table>
<%
RS.Close
Conn.Close
%>
</body>
</html>


O primeiro passo foi definir a sentença SQL cujos resultados vamos paginar. Se quisermos fusionar este script ao do buscador deveremos salvar a ordem gerada por nossas funções em uma variável session para não perdê-la cada vez que clicamos sobre um dos links para irmos a outra página com resultados.

A seguir definimos a página na qual nos encontramos. Esta será a primeira por padrão ou terá um valor definido (passado por URL) se o internauta se encontra navegando pelos resultados.

A abertura do objeto RecordSet deve ser feito neste caso de uma forma distinta de como vimos em casos anteriores. Uma série de parâmetros em forma de constantes são requeridos para sua correta abertura. Não vamos entrar em detalhes sobre o que isso significa unicamente diremos que estes pârametros fazem parte de uma coleção de constantes ADO. Diremos também que esta é a forma clássica de abertura que nos permite selecionar os registros mediante SQL e movermos em todos os sentidos com o ponteiro do objeto RecordSet.

Executada a senteça SQL nos falta por dimensionar as páginas. Deveremos especificar o número de registros para mostrar em cada uma (PageSize) e em qual delas nos encontramos (AbsolutePage). O objeto se encarregará de calcular outra série de propriedades como são o número de páginas total (PageCount) e o número de registros presentes em nosso objeto (RecordCount).

Quisemos aproveitar este artigo para apresentar duas propriedades Hemos querido aprovechar este artículo para presentar dos propiedades úteis para a gestão de campos: A coleção Fields, que nos dá acesso ao conjunto de campos cujo número pode ser facilmente computado (RS.Fields.Count) e, por outro lado, a propriedade Name que nos permite extrair o nome de tais campos tal como podemos ver no primeiro loop for.

A forma de mostrar os resultados na tela não difiere do que foi visto em outros scripts. Somente há que lembrarmos de introduzir uma condição suplementária no loop While e é que a quantidade de registros mostrados não sobrepasse o número de registros por página previamente definido.

Finalmente, antes de fechar os objetos, geramos dinamicamente os links que apontam para esta mesma página pelos quais passamos o número de página que queremos visualizar. Este loop, simplificado ao máximo, pode ser complementado com um loop à página anterior, outro à seguinte, um à primeira e outro à última. Podemos também gerar o número de página atual não em forma de link, mas sim em forma de texto simples visto que isso permite ao visitante ver rapidamente em que página se encontra e se evita de mostrar um link que aponta ao mesmo conteúdo que se está vendo.

Outras melhoras possíveis são: Calcular o intervalo de resultados que está sendo mostrado na página (A frase típica: "Aqui estão os resultados de x a y"), umma mensagem de "Nenhum resultado obtido" para casos nos que o Recordset está vazio (RS.Eof), apresentar um formulário para efetuar uma nova busca sem sair da página...

Esperamos que possam aproveitar este script para seus websites.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de ASP
Seguinte: Global .ASA

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Scripts em ASP


Comentário sem rever
Entre os comentários não revistos podem ter alguns interessantes que tenham sido enviado recentemente.
 Foram econtrados 2 comentários sem rever

VerVer os comentários não revistos



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites