helyoWAP |
|
PÁGINAS
WML GERADAS DINAMICAMENTE EM AMBIENTE ASP |
Autores: Helio Fonseca Rosa e Andrea de Mello Rosa
Esta página contém 4 figuras grandes. Aguarde a carga se a conexão estiver lenta.
O programa abaixo realiza a substituição do código do fornecedor (Supplier ) visto no simulador que apresentava o resultado do programa bancow3.asp.
A sentença SQL que propociona essa substituição é bastante "esotérica" para os não iniciados nesta linguagem, mas há um modo muito prático de construí-la utilizando uma ferramenta gráfica do Microsoft Access . Os comentários estão após esta listagem, que é uma adaptação daquela do programa bancow3.asp.
Programa bancow7.asp
<%
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/>
**ACCESS/NORTHWIND**<br/>
<%
DIM conNorthwind
DIM recProducts
DIM pssql
const cntCaminho = "c:\inetpub\wwwroot\asp\northwind.mdb"
Set conNorthwind = Server.CreateObject("ADODB.Connection")
Set recProducts = Server.CreateObject("ADODB.Recordset")
conNorthwind.Open "driver={Microsoft Access Driver (*.mdb)};dbq="
& cntCaminho
set recProducts.activeconnection = conNorthwind
pssql = "SELECT Products.ProductName, Suppliers.CompanyName
"
pssql = pssql & " FROM Suppliers "
pssql = pssql & " INNER JOIN Products ON Suppliers.SupplierID =
Products.SupplierID "
pssql = pssql & " GROUP BY Products.ProductName, "
pssql = pssql & " Suppliers.CompanyName"
recProducts.Open pssql
%>
Produto :
<%
Response.Write recProducts.Fields("ProductName")
%>
<br/>
Fornecedor :
<%
Response.Write recProducts.Fields("CompanyName")
recProducts.Close
conNorthwind.Close
%>
</p>
</card>
</wml>
Vamos por partes.
O programa bancow3.asp retirava dados de uma única
tabela já encontrada no "Northwind", a tabela
"pronta" Products, com finalidade didática; assim
como todas as demais do banco Northwind, foi gerada também por uma sentença
SQL construida pelo autor do banco.
O programa bancow7.asp
acima utiliza duas tabelas (Products e
Suppliers) para montar uma outra tabela (o "recordset" recProducts)
de onde o Response.Write vai retirar os dados para impressão .
Ao abrir o Northwind encontra-se em primeiro plano a tela abaixo:
A tela mostra as tabelas "prontas" que fazem parte do banco e servem para a construção de exemplos. Vamos dar uma olhada no contúdo das duas. Ressaltamos "Products" e clicamos em "Open" e depois fazemos o mesmo com "Suppliers". Abaixo, uma visão parcial das duas tabelas:
Estamos particularmente interessados na tabela Suppliers que contém o nome da companhia CompanyName (nome do fornecedor) e seu código (SupplierID).
Qual nosso objetivo?
Reunir as duas tabelas em uma única ( o recordset recProducts).
"Quem " faz isto?
Uma sentença Select escrita na linguagem SQL.
"Alguém" pode escrevê-la para mim?
Sim, uma ferramenta gráfica de consulta do Microsoft Access -
a seguir.