helyoWAP |
|
PÁGINAS
WML GERADAS DINAMICAMENTE EM AMBIENTE 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
Vamos 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.