Ir para conteúdo
Fórum Script Brasil
  • 0

Tutorial De Paginação


Guest Ajudando por gostar de ajudar

Pergunta

Guest Ajudando por gostar de ajudar

Paginação – tutorial completo com detalhes de arquitetura.

Comentário

No final deste tutorial está o script completo relacionado ao tutorial, contém alguns erros que podem ser corrigidos facilmente com o estudo do tutorial.

Os jovens programadores em ASP sempre sofrem muito em criar uma arquitetura de programação para seus scripts, em especial paginação, onde os recursos da linguagem ASP parecem limitados e/ou desconhecidos até o momento, uma tarefa para super programadores em ASP no ponto de vista de jovens programadores, um ponto de vista que não representa a realidade, os novatos podem fazer super páginas de buscas em sistemas diversos também, basta entender a arquitetura da programação em ASP e utiliza-la de forma correta e objetiva.

Resumo

Este tutorial aborda de forma prática e objetiva a criação de uma página de paginação que poderá ser utilizada em sistemas diversos para seleção ou de acordo com o projeto em si de cada programador.

Buscando solucionar duvidas freqüentes neste tema onde todos os iniciantes em ASP irão ter a oportunidade de aprender a desenvolver, uma oportunidade impar onde muitos descobrem que seu verdadeiro dom é a programação ASP ou não, porém muitos não recebem uma orientação e logo desistem de seus estudos, buscando ajudar estes estudantes este tutorial foi criado com regras e detalhes de raciocínio para que possa transmitir um pouco da essência da arquitetura da programação.

Parte I – Esta parte aborda qual conexão utilizar relacionada ao banco de dados de sua preferência, contendo cinco conexões(MySQL, ACCESS, PGSQL, SQL SERVER INTERBASE) diferentes.

Parte II – esta parte aborda a criação da string e/ou seus parâmetros onde irá fornecer informações e/ou conectar as mesmas por intermédio de determinada tecnologia para conexão de banco de dados, manipulando ou modificando de acordo com as necessidades de cada projeto.

Parte III – A terceira parte aborda a arquitetura da informação relacionada aos critérios de seleção para a busca em si, fornecendo informações para a string onde executará de acordo casa usuário.

Parte IV – aborda a apresentação de informações utilizando loop e restrições para; validar, bloquear, entre outros pontos onde um loop representa parte importante de uma paginação.

Parte V – aborda a criação da execução, onde um calculo em especifico é executado e retornará um determinado número de páginas para serem numeradas e organizadas.

Parte I

Muitos programadores confundem as diferentes tecnologias, provocando erros e descuidos que são verdadeiros quebra cabeças em um projeto.

Vamos abordar a criação de uma conexão a mais utilizada em testes e projetos em particular; MySQL, onde aprender como criar suas própria conexão ou até simplesmente entender como funciona sua estrutura.

Iremos iniciar com a conexão MySQL, uns dos bancos de dados mais utilizados em projetos em todo o mundo.

A conexão:

<% 
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_
& "SERVER=IP_DO_SERVIDOR;"_ 
& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_
& "UID=USUÁRIO;PWD=SENHA; OPTION=3"
conexao.Open
%>
Esta conexão está com quebra de linha para facilitar a visualização, iremos inicializar nossa própria conexão.
Set minha_conexão = Server.CreateObject("ADODB.Connection")
Neste ponto criamos o objetivo da conexão, indica que estamos utilizando a tecnologia ADODB. Quando nomeamos Set com “minha_conexão” indicamos que a referência de Set é “minha_conexão”, esta referência será utilizada de forma generalizada (para a indicação e execução de comandos no servidor indicado em uma segunda etapa desta conexão, a solicitação de conexão direta logo abaixo).
minha_conexão.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_
& "SERVER=IP_DO_SERVIDOR;"_ 
& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_
& "UID=USUÁRIO;PWD=SENHA; OPTION=3"
Nesta segunda parte da criação desta conexão abordamos os comandos que utilizaremos e os componentes necessários para que a solicitação de conexão com o servidor seja bem sucedida. Abaixo estamos criando uma execução de string, em particular conexão sobre string, está string contém elementos básicos para estabelecer uma conexão física com o servidor indicado é dividido em quatro etapas; driver, servidor, Banco de dados, usuário informações. Driver:
minha_conexão.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_
Servidor:
& "SERVER=IP_DO_SERVIDOR;"_
Banco de dados:
& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_
Usuário informações:
& "UID=USUÁRIO;PWD=SENHA; OPTION=3"
A primeira etapa, driver, orienta a string de conexão a utilizar o driver MySQL ODBC 3.51 Driver, este driver indica a versão do MySQL em particular. A segunda etapa, Servidor, indica a maquina física onde a conexão será solicitada. A terceira etapa, Banco de dados, indica qual banco de dados no servidor utilizando a tecnologia MySQL onde poderá conter vários bancos de dados ou não. A quarta etapa, usuário informações, indica as informações de acesso ao banco de dados indicado na terceira etapa. Todas as etapas são finalizadas por um único comando dentro desta coneção, onde permite permanecer a mesma aberta para execuções e comandos SQL e MySQL, segue abaixo o comando.
conexao.Open
Um comando individual e importantíssimo é o fechamento desta conexão após sua utilização, segue abaixo o comando.
conexao.close
set conexao = nothing
Este comando é geralmente utilizado ao final de cada execução, em casos de múltiplas execuções onde contem varias strings que efetuam diferentes tarefas em uma página em especifico, sendo incorporado a página de forma individual como no exemplo abaixo:
<% 
conexao.close
set conexao = nothing
 %>
Nota: O projeto contém as cinco mais utilizadas, fica ao seu critério qual conexão utilizar em seus testes e projetos. Parte II A segunda parte aborda a criação da conexão da paginação, umas das etapas mais importantes da paginação, onde define informações e filtragem e outros para termos um bom resultado de busca em determinada tabela em um banco de dados, à parte II em quatro etapas onde define com objetividade e clareza os critérios e filtros de busca. Primeira etapa: Define o número de itens por página e a string de conexão a tabela de forma primaria, a base relativa aos critérios que podem ser inseridos ou não, segue abaixo a primeira etapa:
<%
Const Pagina_Tamanho = 15
If  Request.QueryString("pagina") = "" Then
strPaginaAtual = 1
Else
strPaginaAtual = CInt(Request.QueryString("pagina"))
End If
SQL = "Select * From Produtos Where Ativo='1'"
%>
O script parcial acima cria o critério de paginação em si definindo o método usado para solicitar numerações de páginas onde a ordem de itens é superior ao indicado, iremos dividir por tema o script parcial acima para melhor entendermos, a divisão será em duas temas que são: Entrada e indicação:
Const Pagina_Tamanho = 15
A definição de indicação de números de itens a serem apresentados é pré-definidos utilizando a variável Const, que nada mais é que uma mapeação de variável publica onde pode limitar ou não para um determinado número de itens, neste caso 15 itens. Quando nomeamos Const com “Pagina_Tamanho” indicamos em particular que o mapeamento publico será de 15 itens por página somente, este número poderá ser alterado de acordo com suas necessidades ao seus projetos e/ou testes.
If  Request.QueryString("pagina") = "" Then
strPaginaAtual = 1
Else
strPaginaAtual = CInt(Request.QueryString("pagina"))
End If
A definição de entrada define qual o meto que será utilizado para obtermos dados utilizando a forma de request.QueryString, umas das formas mais utilizadas em paginação por ser prática e eficiente. Ao optarmos por utilizar QueryString, automaticamente sabemos que toda a arquitetura será feita em uma única página, facilitando o uso de Request de forma objetiva. Neste processo utilizamos a string PaginaAtual como referencia de indicação de número de página a ser apresentado, neste caso usamos If para filtrarmos este critério de uma forma objetiva e pratica, segue abaixo uma explicação lógica:
If  Request.QueryString("pagina") = "" Then
No inicio do IF citado acima indicamos que “pagina” representa a indicação a entrada de números de páginas geradas como um todo, 1,2,3,4,5 e assim por diante, ela é a referencia lógica de entrada, o inicio de todo o processo de filtragem.
strPaginaAtual = 1
Quando usamos a string “PaginaAtual” usamos como ponto de referencia variável para sim ou não, ou seja, uma filtragem onde não deixa margem para que a indicação de entrada “pagina” não esteja vazia, caso esteja vazia o else é executado.
Else
strPaginaAtual = CInt(Request.QueryString("pagina"))
End If
Quando utilizamos else e indicamos a Query diretamente indica que a entra “pagina” não está vazia e executa a mesma diretamente. A string raiz:
SQL = "Select * From Alunos Where Pago='1'"
Esta string SQL é considerada raiz por ser a indicação inicial de critérios para filtragem que podem sofrer novas indicações livremente, estas novas indicações são feitas pelo seguinte método: SQL = SQL & "nova string onde contém somente campos relacionados à tabela Alunos" Este método soma a string raiz, tornando sua filtragem mais rica e de acordo com as novas necessidades. parte III Utilizando If End IF como filtro de critério onde elimina erros de solicitação, umas das formas mais utilizadas, onde possibilita criar vários IF para melhor atender suas necessidades, as formas são bem comuns, iremos abordar as duas mais utilizadas. A primeira forma.
<% 
IF request("page") <> "" THEN
strpage= request("page")
SQL = SQL & " and Ativo='1'and  Aluno Like '%"&strpage&"%' or "
SQL = SQL & " Ativo='1' and Serie like '%"&strpage&"%'"
END IF
%>
Neste IF se usa duas técnicas simples, filtragem por IF e soma de string SQL, muito típicas nestes casos de filtragem com indicação de string soma a strng SQL raiz, onde utilizamos SQL = SQL & " " que somará a string raiz. Utilizando este tipo de filtragem em IF limitamos erros de entrada e tornamos mais robusta a busca e eficaz, utilizando todos os recursos possíveis, com este tipo de recurso podemos tornar a velocidade de busca muito mais eficiente, eliminando o que não foi solicitado, caso o campo “page” que representa “palavra chave” não seja preenchido, automaticamente ele é eliminado na solicitação tornando o script mais robusto e eficiente em termos de execução e velocidade de execução. Uma outra opção de IF muito valida em casos como este é a soma de string SQL direta por IF onde possibilita uma melhor indicação, segue abaixo um exemplo prático.
<%
IF request("Telefone ") <> "" THEN
strtelefone= request("Telefone")
SQL = SQL & " and Telefone = '"&strtelefone&"' "
END IF
%>
Desta forma se pode indicar campo a campo da tabela em caso, possibilitando uma maior arquitetura da informação no formulário da paginação. Da mesma forma ele pode ser solicitado ou não pelo usuário, caso não solicite a string SQL deste if não irá somar a string SQL raiz, contribuindo para uma maior velocidade na execução do script como um todo. Terceira forma: A terceira forma aborda o uso de case em filtragem, umas das formas mais recomendadas em filtragem onde os dados não são flutuantes e sim fixos como; números, datas entre outros que não sofrem atualizações ou alterações pelo sistema, segue abaixo um exemplo pratico:
<% 
IF request("Serie")<> "" THEN

Select Case (request("Serie"))
Case "1"
SQL = SQL & " and Serie = '1'"
Case "2"
SQL = SQL & " and Serie = '2'"
Case "3"
SQL = SQL & " and Serie = '3'"
End Select

END IF
%>
No exemplo acima vemos uma filtragem por If já abordada, ela possibilita a aviação ou não caso request esteja vazio ou não. A case em si, utiliza a mesma técnica de Ifs já mencionados acima, porém a case possibilita o uso de “menu de lista” está forma abre uns dos maiores leques em termos da arquitetura da informação em seu formulário. A case em si usa dos mesmos métodos citados acima, sua única diferença está na construção do menu de lista, que toma uma forma particular e pouco conhecida no ponto de vista iniciante, uma forma de usar Ifs em menu de lista, muito utilizada por programadores experimentes onde busca um melhor resultado, segue abaixo um exemplo de um menu de lista utilizando Ifs para podermos utilizar a case citada acima.
<select name=Serie size=1 class="campo-branco" id="Serie">
<option  value="" selected>Indiferente</option>
<option <%IF request("Serie") = "1" THEN%>selected<%END IF%>value="1">Primeira série
<option <%IF request("Serie") = "2" THEN%>selected<%END IF%>value="2">Segunda
 série
<option <%IF request("Serie") = "3" THEN%>selected<%END IF%>value="3">Terceira
série
</select>
Este exemplo representa de forma clara como utilizar Ifs em menu de lista, fácil e pratico em casos de dados fixos e não atualizáveis em um projeto. Quarta Forma: Contrariando o raciocínio lógico onde a grande maioria dos iniciantes tem o ponto de vista que o induz ao erro, uma forma muito comum de entender onde, quando e qual a melhor forma de criar a conexão onde irá representar a conexão em si da paginação como um todo. Muitos tomam como base pontos simples, porém fundamentas que podem ou não dificultar a finalização do trabalho, os parâmetros desta conexão influenciam em 99% no resultado final do trabalho. Iremos abordar a forma correta de criar está conexão e aprender que criar não é eliminar o necessário e sim manter de forma objetiva. Segue abaixo a parte principal de uma formação de conexão e seus critérios para execução.
<%
Set objAlunos = Server.CreateObject("ADODB.RecordSet")
objAlunos.PageSize  = Pagina_Tamanho
objAlunos.CacheSize = Pagina_Tamanho
objAlunos.CursorLocation = 3
objAlunos.Open sql, conexao
strRegistros = objAlunos.RecordCount
strPaginas   = objAlunos.PageCount 
%>
Neste script parcial podemos perceber a presença de Set, este Set é diferente do Set da conexão principal onde contém os parâmetros de conexão adequados ao banco de dados em caso, desta forma evitamos uma dupla execução. Tornado mais lento o sistema. Podemos perceber também a presença de novos itens na conexão secundária como: PageSize: Representa o número de itens a serem apresentados por cada página. CacheSize: Representa o número em cachê gerado por cada página. RecordCount: Representa o número de registro em determinada tabela. PageCount: Representa o número de página gerado. São itens fundamentais para uma melhor manipulação e criação da paginação em si, possibilitando indicações individuais ou não. As formas e arquitetura já foram abordas de forma ampla e objetiva anteriormente, o que buscamos informar é a forma correta de criação de uma conexão secundária onde a manipulação de dados torna-se mais flexível. Entender o script acima torna sua lógica mais objetiva e pratica no ponto de vista execução direta. Parte IV Nesta parte iremos abordar uns dos temas mais complicados para iniciantes, o loop. Contrariando a forma de raciocínio de iniciantes, o loop não é definido pelo números de dados e seu local em especial, ele é definido pela tabel em si, o que você gostaria de repetir e inserir, um ponto importante, loop indica apresentação de dados em serie, porem com informações diferentes, iremos apresentar todas as formas de loop em uma única tabel. Exemplo 1: Neste exemplo iremos utilizar o loop para duplicarmos somente <TD></TD>, com este loop podendo manipular a apresentação em serie de informações relacionadas.
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<%If strRegistros = 0 Then %>
<td>&nbsp;</td>
<%Else%>
<%
objAlunos.AbsolutePage = strPaginaAtual
Conta = 0
Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual
Conta = Conta + 1
%>
<td>&nbsp;</td>
<%
objAlunos.MoveNext
Loop
%>
</tr>
</table>
repare que o loop é inicializado depois do <TR> e finalizado antes do </TR>, isto indica que o loop será executado somente em <TD> </TD>. Neste momento podemos manipular melhor a informação, dividindo em partes o <TD> </TD>, formando novos campos dentro deste <TD> </TD> que poderá conter outros dados relacionados. Esta forma de loop é a mais utilizada, porém menos funcional em loops onde necessita de uma melhor manipulação de dados. Exemplo 2: Aborda o loop em <TR></TR>, esta forma de loop possibilita um número maior de informações dentro do loop em especial, possibilitando um menu de informação seguido de um loop, ou seja, lista de informações com um topo fixo e com o conteúdo variável.
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<%If strRegistros = 0 Then %>
<tr>
<td>&nbsp;</td>
</tr>
<%Else%>
<%
objAlunos.AbsolutePage = strPaginaAtual
Conta = 0
Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual
Conta = Conta + 1
%>
<tr>
<td>&nbsp;</td>
</tr>
<%
objAlunos.MoveNext
Loop
%>
</table>
este loop é muito usado em e mais funcional em dados onde necessitam de uma melhor arquitetura. Exemplo 3: Este exemplo utiliza uma tabel inteira no loop, possibilitando o Maximo em manipulação em dados sobre loop.
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<%If strRegistros = 0 Then %>
<% 
response.Write("Dados não encontrados")
%>
<%Else%>
<%
objAlunos.AbsolutePage = strPaginaAtual
Conta = 0
Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual
Conta = Conta + 1
%>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
<%
objAlunos.MoveNext
Loop
%>
</td>
</tr>
</table>
uma forma muito pratica e eficiente para manipular tabelas inteiras de banco de dados. Parte V Esta parte aborda umas das duvidas e dificuldades de iniciantes e avançados em ASP, onde a falta de atenção provoca erros e dificuldades constantes, aprender a criar de forma objetiva a paginação de dados por intermédio de dados fornecidos pela conexão secundária. Neste exemplo abaixo podemos ter todos os pontos de uma paginação bem executada, o exemplo irá abordar o funcional e objetivo. Exemplo 4:
<table width="90%" border="0" cellspacing="0" cellpadding="0"  align="center">
<tr bgcolor="#FFFFFF"> 
<% If strPaginaAtual > 1 Then %>
<td width='10%' height="37" align=center valign="middle"> 
<p class="a9">
<a class=12p href="<%= strEndereco %>?porque=<%=request("porque")%>&pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>
</p>
</td>
<%End If%>
<%If strPaginaAtual < strPaginas Then%>
<td width='76%' align=center><table width="50" border="0" cellspacing="0" cellpadding="4"  align="center"><tr bgcolor="#FFFFFF"> 
<%For I = 1 To strPaginas%>
<%If I = strPaginaAtual Then%>
<td>
<font class=12p>
<b>
<font size="-1" class=a9>
<%=I%>
</font>
</b>
</font>
</td>
<%ELSE%>
<td>
<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>
</td>
<%End If%>
<%Next%>
</tr>
</table>
</td>
<td width='14%' align=center valign="middle">
<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>"><font size="-1">Próxima</font></a>
</td>
<%End If%>
<%End If%>
</tr>
</table>
Neste exemplo iremos abordar vários pontos funcionais que será listados e com duas devidas descrições.
<% If strPaginaAtual > 1 Then %>
Este pondo define se a paginação é necessária ou não, um ponto muito importante onde possibilita uma maior velocidade de apresentação em casos de itens abaixo da mede página. Utilizando um dos recursos da conexão secundária, strPaginaAtual.
<a class=12p href="<%= strEndereco %>? page=<%=request("page")%>&pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>
este ponto é o ponto de retorno, podemos perceber que a um comando onde possibilita esta execução, pagina=<%=strPaginaAtual-1%>, este comando retrocede para menos 1 página.
<%End If%>
<%If strPaginaAtual < strPaginas Then%>
Neste ponto podemos perceber a filtragem de comparação de números de páginas geradas e páginas indicadas, onde strPaginas representa o número de páginas gerados e strPaginaAtual representa a página indicada, possibilitando a avaliação e comparação que se trata de uma única página, eliminando a necessidade de paginação.
<%For I = 1 To strPaginas%>
<%If I = strPaginaAtual Then%>
Neste ponto podemos perceber a geração números de páginas utilizando for to, desta forma podemos gerar um número limitado ou ilimitado de páginas a serem apresentadas após o número.
<%=I%>
podemos ver o que será indicado dentro Next, o conteúdo em si sta sendo representado por I.
<%ELSE%>
<td>
<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>
</td>
<%End If%>
<%Next%>
neste ponto podemos perceber que as informações que foram filtradas utilizam um número de páginas superior a 1, neste caso as informações são repassadas ao link para indicar ao clicar no número de página os parâmetros de busca em si, um exemplo “page” representado por; page=<%=request("page")%>.
<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>"><font size="-1">Próxima</font></a>
</td>
<%End If%>
<%End If%>
neste ponto podemos perceber que se trata de uma indicação a próxima página, percebemos a presença de “pagina=<%=strPaginaAtual+1%>” onde indica um movimento para mais. As duvidas que surgem nesta parte são básica e predominante. Uma delas é de qual forma podemos inserir novos request para indicar novos campos no formulário de busca. Esta duvida é importantíssima, para inserirmos novos critérios de consulta deve entender três pontos: Formulário: Ao entender que o formulário trabalha de forma repetitiva, ou seja, usa requst aberto para manter os dados selecionados e alimentar constantemente a string SQL raiz e suas secundárias que somam a raiz. Forma de captura de informações: A forma de captura de informações se da em dois casos destinto; QueryString e Request. SQL string: Quando entendemos que as string em SQL são somatórias entre si, podemos entender que uma única string raiz poderá manter o básico para a funcionabilidade do sistema, as string que somam a string raiz são opcionais por seleção. Filtragem: Entendendo melhor a filtragem do sistema que se da por ifs e case com alcilio de string SQl somatórias a string SQL raiz, podemos criar e entender melhor a paginação. Ao criar um novo campo no formulário da paginação ele deve ser incluído em todos os processos, segue abaixo um guia para isto. Novo campo: Campo de texto; Deve-se criar o campo de texto no formulário nomeá-lo (Aluno, um exemplo).
<input name= Aluno id="Aluno" size="25">
Deve-se criar seu critério de filtragem na string SQL secundária. Exemplo:
<% 
IF request("Aluno") <> "" THEN
strpage= request("Aluno")
SQL = SQL & " and Aluno = '1'"
END IF
%>
Deve-se declarar o item na paginação, em todos os links de paginação, como uma referência. Inserindo &Aluno=<%=request("Aluno")%> após page=<%=request("page")%> Exemplos: Primeiro link:
<a class=12p href="<%= strEndereco %>?page=<%=request("page")%>&Aluno=<%=request("Aluno")%> &pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>
Segundo link:
<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&Aluno=<%=request("Aluno")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>
Terceiro link:
<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>&Aluno=<%=request("Aluno")%>"><font size="-1">Próxima</font></a>
O exemplo relacionado a Ifs pode ser utilizado em cases também de forma ampla. Espero que o tutorial possa ajudar muitos a entenderem como funciona de forma um pouco detalhada. O nome da página será busca.asp O script:
<!-- Primeira parte -->
<% 
'CONEXÃO MySQL
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_
& "SERVER=IP_DO_SERVIDOR;"_ 
& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_
& "UID=USUÁRIO;PWD=SENHA; OPTION=3"
conexao.Open
%>
<%
'CONEXÃO ACCESS
diver = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("BANCO_DE_DADOS_NOME.mdb")
set conexao = CreateObject("ADODB.Connection")
conexao.open diver
%> 
<%
'CONEXÃO PGSQL
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.ConnectionString = "DRIVER={PostGreSQL};"_
& "SERVER=IP_DO_SERVIDOR;"_ 
& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_
& "UID=USUÁRIO;PWD=SENHA; OPTION=3"
conexao.Open
%>
<%
'CONEXÃO SQL SERVER
Dim banco_de_dados
banco_de_dados = "Provider=SQLOLEDB; Data Source=IP_DO_SERVIDOR;Network Library=DBMSSOCN; Initial Catalog=<NOME_DO_BANCO_DE_DADOS>; User Id=<USUÁRIO>; Password=<SENHA>"
set conexao = server.createobject ("adodb.connection")
conexao.open banco_de_dados
%>
<%
'CONEXÃO INTERBASE
conexao.ConnectionString = "DRIVER={Firebird/Interbase(r) driver};"_ 
& "DBNAME=IP_DO_SERVIDOR:/DIRETÓRIO_FISÍCO/NOME_DO_BANCO_DE_DADOS.gdb;"_ 
& "UID=USUÁRIO;PWD=SENHA"
conexao.Open
%>

<!-- Segunda parte -->
<%
Const Pagina_Tamanho = 15
If Request.QueryString("pagina") = "" Then
strPaginaAtual = 1
Else
strPaginaAtual = CInt(Request.QueryString("pagina"))
End If
SQL = "Select * From Alunos Where Pago='1'"
%>
<% 
IF request("page") <> "" THEN
strpage= request("page")
SQL = SQL & " and Pago='1'and  Aluno Like '%"&strpage&"%' or "
SQL = SQL & " Pago='1' and Serie like '%"&strpage&"%'"
END IF
%>

<% 
IF request("Serie")<> "" THEN
Select Case (request("Serie"))
Case "1"
SQL = SQL & " and Serie = '1'"
Case "2"
SQL = SQL & " and Serie = '2'"
Case "3"
SQL = SQL & " and Serie = '3'"
End Select
END IF
%>
<%
Set objAlunos = Server.CreateObject("ADODB.RecordSet")
objAlunos.PageSize  = Pagina_Tamanho
objAlunos.CacheSize = Pagina_Tamanho
objAlunos.CursorLocation = 3
objAlunos.Open sql, conexao
strRegistros = objAlunos.RecordCount
strPaginas   = objAlunos.PageCount 
%>


<!-- Terceira parte -->
<form name="form1" method="post" action="busca.asp">
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="100">
<div align="center">
<input name=page id="page" size="25">
</div></td>
<td width="100">
<div align="center">
<select name=Serie size=1 class="campo-branco" id="Serie">
<option  value="" selected>Indiferente</option>
<option <%IF request("Serie") = "1" THEN%>selected<%END IF%>  value="1">Primeira série
<option <%IF request("Serie") = "2" THEN%>selected<%END IF%>  value="1">Segunda série
<option <%IF request("Serie") = "3" THEN%>selected<%END IF%>  value="1">Terceira série
</select>
</div></td>
<td width="100">

<div align="center"></div></td>
<td width="100">

<div align="center"></div></td>
</tr>
</table>
</form>

<!-- Quarta parte -->
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="51"><div align="center">Titulo1</div></td>
<td><div align="center">Titulo2</div></td>
<td><div align="center">Titulo3</div></td>
<td><div align="center">Titulo4</div></td>
<td><div align="center">Titulo5</div></td>
</tr>
<tr>
<td height="76" colspan="5">
<!-- --------------------------------------------------------------------------------------------------------------- -->
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<%If strRegistros = 0 Then %>
<tr>
<td>Frase onde indica que a busca n&atilde;o encontrou absulutamente nada.</td>
</tr>
<%Else%>
<%
objAlunos.AbsolutePage = strPaginaAtual
Conta = 0
Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual
Conta = Conta + 1
IF Conta = 1 THEN
Cores = "#C9E4E9"
ELSE
Conta = 0
Cores = "#D6F1F8"
END If
End if
%>
<tr>
<td bgcolor="<%=Cores%>">Frase onde indica que a busca encontrou algo relacionado.</td>
</tr>
<%
objAlunos.MoveNext
Loop
%>
</table>
<!-- ---------------------------------------------------------------------------------------------------------- -->
</td>
</tr>
<tr>
<td height="30" colspan="5"><div align="center">Espa&ccedil;o reservado para futuras atualiza&ccedil;&otilde;es do sistema</div></td>
</tr>
</table>
<!-- Quinta parte -->


<div align="center"></div>
<table width="90%" border="0" cellspacing="0" cellpadding="0"  align="center">
<tr bgcolor="#FFFFFF"> 
<% If strPaginaAtual > 1 Then %>
<td width='10%' height="37" align=center valign="middle"> 
<p class="a9">
<a class=12p href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>
</p>
</td>
<%End If%>
<%If strPaginaAtual < strPaginas Then%>
<td width='76%' align=center><table width="50" border="0" cellspacing="0" cellpadding="4"  align="center"><tr bgcolor="#FFFFFF"> 
<%For I = 1 To strPaginas%>
<%If I = strPaginaAtual Then%>
<td>
<font class=12p>
<b>
<font size="-1" class=a9>
<%=I%>
</font>
</b>
</font>
</td>
<%ELSE%>
<td>
<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>
</td>
<%End If%>
<%Next%>
</tr>
</table>
</td>
<td width='14%' align=center valign="middle">
<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>"><font size="-1">Próxima</font></a>
</td>
<%End If%>
<%End If%>
</tr>
</table>

<% 
conexao.close
set conexao = nothing
 %>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...