helyoWAP

PÁGINAS WML GERADAS DINAMICAMENTE EM AMBIENTE ASP
 
(06)
Programas comentados: bancolivro01.asp - bancolivro02.asp

Autores: Helio Fonseca Rosa e Andrea de Mello Rosa

Esta página contém 3 figuras grandes. Aguarde a carga se a conexão estiver lenta.


Um banco de dados para uso didático

Nesta página, vamos estudar as interações entre um uma mini-page ASP (escrita em WML e VBScript) e um banco de dados.
Estou lendo (e gostando muito ) um livro chamado "FAÇA UM SITE ASP Orientado por projeto" de Carlos A. J. Oliviero (Editora Érica) que se propõe a ensinar ASP durante a construção de uma EDITORA ON-LINE. 
Para tanto o autor solicita que seja baixado de sua página WEB  (http://www.oliviero.com.br) um kit de trabalho que contém um conjunto de ferramentas e um banco de dados "pronto", construído com o ACCESS da Microsoft.
Esta referência é feita a título de crédito ao autor do livro e como orientação para o "interleitor" que não conhecia e vai se motivar a estudar ASP rapidamente (como é o meu caso, que continuo estudando).

Na seqüência, utilizaremos  um banco de dados , também "pronto", chamado NORTHWIND que acompanha o Microsoft ACCESS, para treinamento de seus usuários. 

Então, mãos à obra.

Vamos fazer o download do banco construído pelo Carlos A. J. Oliviero.

1.    Crie em seu drive C uma pasta chamada "SerieWeb"

2.    Visite o site http://www.oliviero.com.br

3.    Na coluna "Navegação" clique em:
      "Faça o Download dos Kits de trabalho com o material necessário para o acompanhamento dos livros".  

4.    Abre-se uma página em que se solicita o preenchimento de um formulário. 
       O preenchimento não é obrigatório. 
       Para ler diretamente as instruções para o download, clique em :
       "Para iniciar o download  sem se cadastrar, clique aqui",   bem  no final da página.

5.    Abre-se uma página com instruções.
       Em resumo, role a página até encontrar a figura do livro "ASP".
       Clique na figura e será iniciado o download.

6.    Após o download, faça a descompactação na pasta "SerieWeb" que você já havia criado no drive C (item 1 acima). 

7.    Como resultado da descompactação, encontraremos na pasta "SerieWeb" uma pasta chamada "Images"
       e um arquivo chamado "Cadlivro.mdb". Este arquivo é o banco de dados (gerado pelo autor do livro - Carlos A. J. Oliviero - com o software ACCESS da Microsoft), que será utilizado em alguns dos exemplos deste tutorial..

8.    Neste tutorial o autor decidiu armazenar o banco Cadlivro.mdb numa nova pasta chamada "asp", criada no interior da pasta padrão do servidor PWS.  Se o leitor desejar fazer o mesmo, este é o momento. Crie a pasta "asp" de tal modo que seu endereço seja "C --> Inetpub --> wwwroot --> asp"

9.   O banco Cadlivro.mdb pode ter sido gerado numa versão anterior do ACCESS que está no computador do
       leitor, o que é bastante provável. 
       Isto será identificado no momento em que o banco for aberto pela primeira vez, após o download..
       Para abrir o banco, clique duas vezes no arquivo Cadlivro.mdb, que deverá ainda estar na pasta "SerieWeb".
       Se você estiver usando uma versão mais nova, uma mensagem na tela indicará um procedimento simples a ser seguido
       para a atualização (é opcional, mas recomendado).
       O processo é automático e gera um banco com um novo nome, mas com opção de trocá-lo e armazená-lo em novo local. 
       
10.  No meu caso, abriu-se uma janela da pasta "Meus documentos" com a sugestão de um novo nome : db1.mdb.
Conforme explicado acima, naveguei no campo do endereço (Janela "Salvar em") até encontrar a pasta "asp" (C --> Inetpub --> wwwroot --> asp) e troquei o nome de db1.mdb para o nome original Cadlivro.mdb.

11. Vamos "dar uma olhada" no banco Cadlivro.mdb
Independentemente do modo como está gravado fisicamente, um banco de dados pode ser visualizado como uma enorme lista ou tabela de "registros" sobre um determinado assunto. Neste caso, cada "registro" se refere a um determinado livro, contendo informações como título, autor, preço, etc.
Todos os registros do banco têm uma mesma estrutura ou organização.
Clique duas vezes em Cadlivro.mdb. Abre-se  uma página do ACCESS com uma janela interior chamada "Cadlivros: Banco de Dados". 
Ressalte a pasta "Livros".
Clique em  "Abrir" na barra de ferramentas.
Abre-se uma janela "Livros: Tabela".  Esta tabela é uma imagem do banco e cada linha representa um registro. 
Os registros contém várias informações. Cada uma dessas informações ocupa um "campo", que na tabela é visualizado como uma "coluna".
Na figura abaixo vê-se um pequeno recorte da mesma.

 

Programa bancolivro01.asp

Transferindo dados do banco para uma mini-page ASP

O objetivo do programa é exibir na tela do simulador os campos (colunas) Código, NomeLivro e NomeAutor do primeiro registro (linha) da tabela Livros do banco Cadlivros.

 

A estrutura do programa WML mesclado com comandos VBScript é basicamente a mesma já vista anteriormente. As novidades estão entre os delimitadores  <%...%> ; no entanto, estes scripts são exatamente os mesmos utilizados em um programa HTML para acesso a um banco de dados, "via ASP".

Vejamos a listagem , o resultado na tela do simulador e a seguir, os comentários. 
Desde já , um alerta: decidimos não alterar os registros do banco criado pelo Carlos Oliviero; deste modo os dados aparecem truncados na tela do simulador que não "entende" acentos, tils e cedilhas.

bancolivro01.asp (código)

<%
Response.ContentType = "text/vnd.wap.wml" 
%>

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
  <card>
     <p>
      ***** HELYOWAP *****<br/>
      ***EDITORA ON-LINE**<br/>
<%
DIM conCadLivro
DIM recLivros
const cntCaminho = "c:\inetpub\wwwroot\asp\cadlivro.mdb"
Set conCadLivro = Server.CreateObject("ADODB.Connection")
Set recLivros = Server.CreateObject("ADODB.Recordset")
conCadLivro.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & cntCaminho
recLivros.Open "Livros",conCadLivro
%>

Codigo :
<%
Response.Write  recLivros.Fields("Codigo")
%>

<br/>
Titulo :
<%
Response.Write  recLivros.Fields("NomeLivro")
%>

<br/>
Autor :
<%
Response.Write  recLivros.Fields("NomeAutor")
recLivros.Close
concadLivro.Close
%>

</p>
</card>
</wml>

Este programa foi gravado com o nome de bancow2.asp, opção "somente texto", na pasta c:/inetpub/wwwroot/asp
Lembrando o problema do truncamento acima citado, o resultado na tela do simulador é:


Comentários:

Para fins didáticos, podemos separar o script em duas partes:
1. Preparação, estabelecimento da  conexão e fechamento(em cor vermelha na listagem);
2. Consulta ao banco (em cor azul).

O esquema da "preparação/estabelecimento" é o seguinte:


1. Declaração da variável de conexão com o banco:
O nome desta variável é formado assim : "con" + "nome do banco". 
Neste caso o nome  da variável de conexão será conCadLivro
Conforme visto anteriormente, esta variável precisa ser "declarada"  e o código para tal é: DIM conCadLivro.
Este é o processo explícito de criação da variável conCadLivro. 
Mais adiante veremos que como era de se esperar,  esta variável vai receber um "valor" ou "conteúdo".


Claro, o objetivo da conexão é o acesso à uma determinada tabela.


2. Declaração da variável de abertura da tabela :
O nome desta variável é formado assim: "rec" + "nome da tabela".
Neste caso, vamos usar a tabela "Livros" (já vista numa figura anterior, mais acima, nesta página) e o nome da variável será recLivros.
A "declaração" desta variável será DIM recLivros.


3. Declaração de uma constante contendo o endereço do banco de dados:
O longo endereço do banco será "armazenado" em uma constante que chamaremos de cntCaminho.
A declaração de uma "constante" é feita com a instrução "const".
Como o banco está na pasta "asp" de "wwwroot", a declaração da constante "cntCaminho" será : 
const cntCaminho = "c:\inetpub\wwwroot\asp\cadlivro.mdb"
.


4. Preparando  a conexão com o banco.
Nos itens 1. e 2. acima definimos as variáveis a serem usadas na conexão.
Agora vamos efetivar a conexão. 
O ASP possui alguns Objetos Internos para facilitar o trabalho . 
O Objeto "ADODB.Connection" representa uma Conexão.
A sintaxe da conexão é: "Set variavel_de_conexão = Server.CreateObject ("ADODB.Recordset") .
Neste caso teremos : Set conCadLivro = Server.Create.Object ("ADODB.RecordSet").

5. Preparando  uma conexão com a tabela.
O Objeto de conexão com a tabela é "ADODB.recordset".
A sintaxe da conexão é: "Set variavel_da_tabela = Server.CreateObject ("ADODB.recordset)
No caso teremos : Set recLivros = Server.CreateObject ("ADODB.recordset") .

6. Abrindo a conexão com o banco.
O  software usado para criar o banco  é o  Microsoft Access Driver.
O endereço do banco já foi gravado na constante cntCaminho.
A sintaxe é : 
variavel_de_conexão.Open  "driver ={Microsoft Access Driver  (*.mdb)};dbq="  &  cntCaminho
                                          ^                                                    ^                        ^   ^
Os espaços em branco podem causar muitos erros na execução e devem ser observados com atenção. 
No caso teremos:
conCadLivro.Open  "driver={Microsoft Access Driver  (*mdb)};dbq=" & cntCaminho   

7. Abrindo a tabela de dados
A conexão com o banco está feita. Vamos abrir a tabela.
Lembrando: o nome da tabela é "Livros" e a variável de conexão é conCadLivro .
A sintaxe é : variavel_da_tabela.Open  "nome_da_tabela", variavel_da_conexão .
No caso teremos: recLivros.Open "Livros", conCadLivro .

8. Enviando um dado do banco para o mini-browser 
V
amos utilizar o já conhecido método Write do Objeto Response.
Lembrando da estrutura de um registro do banco de dados : entre outros, encontramos três campos denominados "Codigo" , "NomeLivro" e "NomeAutor".
As informações serão enviadas pelo PWS para o mini-browser pelo Response.Write, como abaixo:
Response.Write recLivros.Fields("codigo")
Response.Write recLivros.Fields("NomeLivro"). 
Response.Write recLivros.Fields("NomeAutor")

9. Fechamento
O que foi aberto (Open) deve agora ser fechado (Close):
recLivro.Close
conCadLivro.Close


Programa bancolivro02.asp

A seguir, está a mesma listagem anterior, mas com uma sintaxe diferente das instruções que fazem a consulta ao banco. Estude com atenção pois é auto-explicativo.  
No meu caso, chamei este programa de  bancolivro02.asp, gravado com a opção "somente texto" na pasta "asp" (C --> Inetpub --> wwwroot --> asp ):

bancolivro02.asp (código)

<%
Response.ContentType = "text/vnd.wap.wml" 
%>

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
  <card>
     <p>
      ***** HELYOWAP *****<br/>
      ***EDITORA ON-LINE**<br/>

<%
DIM conCadLivro
DIM recLivros
const cntCaminho = "c:\inetpub\wwwroot\asp\cadlivro.mdb"
Set conCadLivro = Server.CreateObject("ADODB.Connection")
Set recLivros = Server.CreateObject("ADODB.Recordset")
conCadLivro.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & cntCaminho
recLivros.Open "Livros",conCadLivro

Response.Write "Codigo : " & recLivros.Fields("codigo") &    "<br/>" & 
"Titulo : " & recLivros.Fields("NomeLivro") & "<br/>" & 
"Autor : " & recLivros.Fields("NomeAutor")
 
recLivros.Close
concadLivro.Close
%>

      </p>
  </card>
</wml>

Na continuação, veremos um pouco mais de VBScript, interação com bancos de  dados e SQL, sempre utilizando um simulador de celular.

WirelessBRASIL                 Portal helyoWAP                    Anterior                    Próxima