helyoWAP

PÁGINAS WML GERADAS DINAMICAMENTE EM AMBIENTE ASP
 
(10)
SQL - Structured Query Language  - Programa comentado bancow7.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.

 

WirelessBRASIL                 Portal helyoWAP                    Anterior                    Próxima