- ASP -
        Básico : Exibindo
        o conteúdo de suas tabelas na Internet
 
Então , você quer exibir
informações na Web ? Achou o artigo certo ! Vou mostrar, usando
um exemplo bem simples, como podemos exibir dados armazenados em
banco de dados em páginas dinâmicas usando ASP.  Criarei
um arquivo ASP chamado mostrar.asp
para exibir o conteúdo de uma tabela usando o acesso a banco de
dados via ADO
- ActiveX Data Object.
Nota: O
símbolo & que você verá usado no código deste artigo é o
E comercial.  Você pode usar qualquer editor de sua escolha
, até o Bloco de notas. 
    - Nossa aplicação consiste
        de um único arquivo:
- 1-) Mostrar.asp - Acessa
        um banco de dados e exibe os registros de uma tabela.
Vamos exibir o conteúdo da
tabela Authors do banco de dados Biblio.mdb.( Este
banco de dados vem junto com o Access; para o caso deste exemplo
meu banco de dados Biblio.mdb esta localizado na pasta c:\asp_db)
 O código do arquivo mostrar.asp
vem a seguir
    
        | 
            <html><head><TITLE>mostrar.asp</TITLE></head><body
                bgcolor="#00FFFF"><%  'Para acesso sem
                um DSN fazemos e usando um driver ODBCset
                conntemp=server.createobject("adodb.connection")conntemp.open "DBQ=C:\asp_db\biblio.mdb;DRIVER={Microsoft
                Access Driver (*.mdb)}" 'Vamos
                selecionar somente os primeiros registros da
                tabela'Para isto
                criaremos uma instrução SQL que selecione
                somente os autores com Au_id menor que 12aspSQL="select *
                from authors where Au_id <12 "set
                rstemp=conntemp.execute(aspSQL) contador=0 ' verifica se
                há dados no recordsetIf rstemp.eof thenresponse.write
                "Não há dados a exibir<br>"response.write
                aspSQL & "<br>Não retorna
                informação alguma..."connection.closeset
                connection=nothingresponse.endend if' Vamos usar
                código HTML para criar uma tabela e exibir
                nossos dados%><p><font
                color="#004080"
                size="5"><strong>Exibindo
                dados da tabela - Authors
                </strong></font></p><font
                color="#004080"
                size="3"><strong>(Códigos
                menores que
                12)</strong></font></p><hr><table border=2
                bgcolor="#FFFFFF"><%' Vamos dar nome
                aos cabeçalhos dos camposresponse.write
                "<tr>"'Percorremos os
                camposfor each item in
                rstemp.fieldsresponse.write
                "<td><B>" & item.name
                & "</B></TD>"nextresponse.write
                "</tr>" ' Agora iremos
                exibir os dados do Recordset gerado pela consulta
                SQL' Vamos
                percorrer o recordset até chegar no final do
                arquivo DO UNTIL rstemp.eof'atribuindo os
                valores dos campos as variáveisCodigo=rstemp("Au_ID")Nome=rstemp("Author")Nascimento=rstemp("Year
                born") ' escrevendo os
                campos em uma tabela para exibição via um
                Browserresponse.write
                "<tr>"response.write
                "<td>" & Codigo &
                "</td>"response.write
                "<td>" & Nome &
                "</td>"response.write
                "<td>" & Nascimento &
                "</td>" response.write
                "</tr>"'move-se para
                próximo registro do recordsetrstemp.movenextcontador=contador+1
                LOOP%></table><%' Fechamos o
                recordset e liberamos a memória usadarstemp.closeset rstemp=nothingconntemp.closeset
                conntemp=nothing%>Esta tabela
                possui <% =contador %> registros</body></html> | 
A página gerada pelo
processamento do código acima deve ser a seguinte:
    
        | 
             | 
    - OBS: Os arquivos
        ASP são executados sobre o HTTP, desta forma , você vai
        precisar abrir o seu navegador e digitar uma URL : http://nomedocomputador/nomedoarquivoasp.asp. Como o diretório
        padrão é X:\Inetpub\wwwroot , qualquer diretório
        criado abaixo dele pode ser acessado informando o nome do
        diretório na URL. Se você criar um diretório chamado
        teste (abaixo de Intepub\wwwroot),
        a URL fica assim: http://nomedocomputador/teste/nomedoarquivoasp.asp.
-  
- Tomando como base o código
        mostrado acima podemos extrair quaisquer informações de
        qualquer tabela. Vamos mostrar como fazer uma consulta
        genérica onde o usuário fornece os parâmetros para
        montar a consulta SQL que seleciona os dados. 
-  
- Criando uma
        consulta com opções do usuário
-  
- A SQL é muito flexível e
        fácil de trabalhar , com poucas declarações
        conseguimos fazer coisas que seriam necessário muitas
        linhas de código.
-  
- Vamos incrementar nossa
        página ASP criando ,com auxílio de formulários ,
        opções de consulta que o usuário poderá fazer. 
-  
- Vamos dar a opção ao
        usuário de selecionar os autores por data de nascimento
        e ordená-los por código ou por nome em ordem ascendente
        ou descendente.
-  
- Os formulários servem para
        coletar as informações que serão processadas pelas
        páginas ASP. Nosso exemplo usará dois arquivos :
- 1-) consulta.htm 
        arquivo com código html que irá gerar um formulário
        onde o usuário fará as opções de consulta 
- 2-) consulta.asp -
        arquivo de script ASP que irá processar a consulta
        selecionada pelo usuário. A aparência do formulário
        gerado por consulta.htm em execução será a
        seguinte:
-  
    
        | 
            
         | 
    
        | 
            Tela gerada pelo
                arquivo consulta.htm  com opções para o
                usuário montar a sua consulta | 
    - O código do formulário consulta.htm
        é puro código HTML e é mostrado a seguir
    
        | 
            <html><head><title>Formulário
                para pesquisa</title></head><body
                bgcolor="#00FFFF"><FORM
                ACTION="consulta.asp"
                METHOD="GET">Data de Nascimento:<INPUT
                TYPE="radio" NAME="opcao1"
                VALUE="OP1" CHECKED>Menor
                que</INPUT><INPUT
                TYPE="radio" NAME="opcao1"
                VALUE="OP2" CHECKED>Maior
                que</INPUT><INPUT
                TYPE="text" NAME="ano"
                VALUE="" SIZE=10></INPUT><BR>Ordernar por:<SELECT
                NAME="criterio"><OPTION
                VALUE="Au_ID">Au_ID<OPTION
                VALUE="Author">Author<OPTION
                VALUE="Year Born">Year Born</SELECT><SELECT
                NAME="ordem"><OPTION
                VALUE="">Crescente<OPTION
                VALUE=" DESC">Decrescente</SELECT><BR><INPUT
                TYPE="submit" VALUE="Executar
                Consulta" </INPUT></FORM></body> </html> | 
Observe que:
As tags <FORM>...</FORM> delimitam os elementos contidos no
formulário
A ação que o formulário irá
executar quando o usuário pressionar o botão 
Executar Consulta 
será chamar o arquivo consulta.asp passando a ele os
valores fornecidos nos elementos do formulário.
    - Nome e valores dos
        elementos que compõem o formulário:
Botões de
Rádio  nome: opcao1
, valores: OP1 e OP2
Caixa de Texto  nome: ano , valor:
"" vazio ( voce pode indicar um valor inicial)
Lista de
Seleção  nome: criterio
, valores: Au_ID, Author e Year Born
Lista de
Seleção para ordenação
 nome : ordem , valores: crescente e decrescente 
O código do arquivo consulta.asp
vem a seguir:
    
        | 
            <%'Declarando as
                variáveis que serao usadasDim DbConn , cmdDB
                , rsDBDim nItemDim nCampos , nLacoDim strOpcao, nAno,
                strCriterio , strOrdemDim Sql 'verificando a
                seleção do usuário para montar a instrução
                SQLstropcao =
                Request.Querystring("opcao1")Select Case
                stropcaoCase
                "OP1"strOpcao =
                "<"Case
                "OP2"strOpcao =
                ">"Case ElsestrOpcao =
                "<>"End Select nAno =
                Request.Querystring("ano")if isNumeric(nAno)
                thennAno = Clng(nAno)ElsenAno = 1900End If strCriterio =
                Request.Querystring("criterio")if strCriterio =
                "" then strCriterio = "Au_ID"if strCriterio =
                "Year Born" then strCriterio =
                "[Year Born]" strOrdem =
                Request.QueryString("ordem") 'Vamos mostrar a
                conexão sem usar um DSNset
                DBConn=server.createobject("adodb.connection")DBconn.open
                "DBQ=C:\asp_db\biblio.mdb;DRIVER={Microsoft
                Access Driver (*.mdb)}" 'Criaremos um
                objeto Command vinculado ao objeto ConnectionSet cmdDB =
                Server.CreateObject("ADODB.Command")cmdDB.ActiveConnection
                = Dbconn cmdDB.CommandText =
                "SELECT * FROM authors WHERE ([Year Born]
                " & stropcao & " " &
                nano & " )" & " _ ORDER BY
                " & strcriterio & strordem cmdDB.CommandType =
                1 'Agora vamos
                criar um recordset e via objeto command iremos
                retornar os valores da consulta.Set rsDB =
                Server.CreateObject("ADODB.Recordset")'O recordset
                será aberto como do tipo Forward-Only e no modo
                somente leitura - ready-onlyrsDB.Open cmdDB
                ,,,1%> <B>O
                resultado da consulta <%= cmdDB.CommandText
                %></B></BR> <BR><TABLE
                BORDER=1><THEAD><% For Each
                nItem in rsDB.Fields %><TH><%=
                nItem.Name %><% Next %></THEAD> <%'Percorrendo o
                recordset mostramos cada registro If not rsDB.EOF
                Then rsDB.Movefirst 'Verificamos
                qual o total de campos no arquivonCampos =
                rsDB.Fields.Count  1 'Percorrems o
                arquivo ate o finalDo While Not
                rsDB.EOF%><TR><% For nLaco = 0
                to nCampos %><TD><%=
                rsDB.Fields(nLaco) %></TD> <% Next %></TR><%rsDB.MoveNextLoop%></TABLE> <% rsDB.CloseSet rsDB = NothingSet cmdDB = NothingDBconn.closeset DBconn =
                Nothing%> | 
No código acima
destacamos:
1-)Recuperamos os valores dos
campos  opcao1, ano , critério e ordem - definidos
no formulário usando Request.QueryString(nome_do_campo)
porque usamos o método GET no formulário para submeter
os dados ao script mostrar2.asp,
e armazenamos os valores nas variáveis definidas no script. Elas
irão compor a instrução SQL.
2-)Utilizamos uma conexão
usando um driver ODBC:
Nota: É recomendável usar um provedor OLE DB ,
use um driver ODBC somente se o seu servidor não suportar um provedor OLE DB. Veja abaixo a
conexão ODBC e a conexão OLE DB:
    
        | Conexão
        ODBC    : DBconn.open
        "DBQ=C:\asp_db\biblio.mdb;DRIVER={Microsoft Access
        Driver (*.mdb)}" | 
    
        | Conexão
        OLE DB : DBconn.open 
        "Provider=Microsoft.Jet.OLEDB.4.0;Data
        Source=C:\asp_db\biblio.mdb" | 
    - 3-)Montamos a instrução
        SQL e exibimos os registros selecionados.. A instrução
        SQL é a seguinte::
- "SELECT * FROM
        authors WHERE ([Year Born] " & stropcao &
        " " & nano & " )" &
        " ORDER BY " & strcriterio & strordem
- onde:
- SELECT * FROM authors
        - seleciona todos os registros da tabela Authors
WHERE ([Year Born]"
& stropcao & " " & nano & ")"
- Onde a data de nascimento do autor (Year Born)
 como o campo Year Born apresenta um espaço entre
os nomes deve vir cercado por [Year Born] - for maior (
> ) ou menor (>) =stropcao  o usuário ira
selecionar  que o ano ( nano )  o usuário
seleciona o ano. 
ORDER BY " &
strcriterio & strordem  Ordena por (ORDER BY)
 o usuário seleciona o campo (Au_ID , Year Born ,
Author) para ordenação = strcriterio - em ordem (strordem)
 decrescente ( DESC ) ou crescente . Se o campo selecionado
para critério de ordenação for o campo Year Born , o
colocamos entre [ ] :
    - if strCriterio =
        "Year Born" then strCriterio = "[Year
        Born]" 
Para exibir os dados no código
acima usamos a sintaxe <%=variavel %> , ela é
equivalente a <% response.write variavel %>.
Simples e básico você acabou
de ver como é fácil exibir dados em páginas ASP na Web.
Aguarde a continuação da série ASP-Básico. 
Copyright
(c) - José Carlos Macoratti