|
O acesso a bancos de dados é um dos recursos mais
utilizados nas páginas ASP, a facilidade com que se pode criar
um site dinâmico fica claro neste artigo no qual veremos os conceitos
básicos sobre conexão a bancos de dados.
Introdução As páginas ASP
com acesso a dados permitem interagir com a informação de uma base de dados
seja para obter informação e mostrá-la ao usuário ou para atualizar seu conteúdo.
São muitas as aplicações deste conceito nos
sistemas de informação atuais por exemplo, uma empresa que vende seus artigos
pela Internet deve dispor de páginas nas que se visualizem os dados de seus
produtos, disponibilidade, preço, etc.. e armazenar os pedidos de seus clientes.
Por tratar-se de informação em contínua atualização e um grande número de consultas
a necessidade de uma base de dados é indispensável.
Para conectar-se à uma base de dados, as páginas ASP utilizam a tecnologia ADO (ActiveX Data Objects) que pode acessar sistemas de administração de
bancos de dados compatíveis ODBC (entre os quais SQL Server, Access, Informix ou
Oracle.) Conexão
Podem utilizar-se dois sistemas de conexão às bases de dados: Com DSN
Este sistema
consiste em definir um identificador da conexão mediante o driver ODBC acessível no
Painel de Controle. Posteriormente, já nas páginas ASP, se faz o acesso mediante uma
string de
conexão que inclui o identificador anteriormente citado.
Para criar um DSN no Windows, clicar no botão inicio e selecione a opção
Painel de Controle do menu Configuração. Estando no Painel de Controle selecione
Fontes de dados ODBC e vá para a pasta DSN do Sistema. Selecione
a base de dados que quer incluir e defina um nome para a conexão e a localização
física da base de dados Sem DSN
Este sistema requer que seja colocado o arquivo da base de
dados (habitualmente Access) num diretório do servidor. Desta forma,
na conexão será utilizada uma string um pouco mais complexa já que devem identificar-se
tanto o driver como o diretório físico completo de base de dados.
Estes são os 3 passos para realizar a conexão
-
Criar o objeto para conectar-se à base de dados mediante a
instrução Server.CreateObject("ADODB.Connection")
- Definir a conexão (com/sem DNS), mediante a instrução
objConn.ConnectionString
- Abrir a
conexão mediante a instrução: objConn.Open
Instruções de conexão à uma base de
dados
<%
<font size="2"> Dim objConn
' Criação do objeto que realiza a conexão à base de dados
Set objConn = Server.CreateObject("ADODB.Connection")
' Fornecer ao objeto a informação correspondente à conexão ODBC a utilizar mediante DNS
objConn.ConnectionString = "DSN=bdProgramacao"
' Sem DNS
objConn.ConnectionString = "DBQ=C:\meus documentos\program.mdb;DRIVER={MS Access (*.mdb)}"
' Abrir a conexão
objConn.Open </font>
%>
|
A linguagem SQL
Mediante a linguagem SQL (Structured Query Language) podemos interagir com
os gerenciadores de base de dados relacionais para obter e modificar a informação
armazenada na base de dados.
A informação numa base de dados é armazena em tabelas que por
sua vez se compõe de colunas ou campos. Para realizar uma consulta à uma tabela
deve-se utilizar a instrução SELECT. Em uma consulta básica na clausula
SELECT se indicam as colunas a visualizar, na clausula FROM, a tabela da qual obter
os dados e por último a clausula WHERE se indicam as restrições a aplicar.
Instruções SQL de CONSULTA
SELECT * FROM clientes WHERE cidade="Brasília"
SELECT nome FROM produtos WHERE preço > 2000
|
As operações de incluir, atualizar e excluir informação da base de dados
também se realizam mediante instruções SQL concretamente utilizaremos
INSERT, UPDATE y DELETE respectivamente.
Por exemplo, a sentença UPDATE é composta da clausula SET para indicar
o novo valor dos campos e WHERE para indicar os registros nos que se deseja realizar a atualização.
Instruções SQL de modificação: INSERT
INSERT INTO Produtos (nome, preço, distribuidor)
VALUES ("Auriculares", 1730, "batech")
|
Instruções SQL de modificação: UPDATE
UPDATE Produtos SET preço = preço + (0,02 * preço) WHERE distribuidor="ACME"
|
Instruções SQL de modificação: DELETE
DELETE FROM Produtos WHERE distribuidor="ACME"
|
Acesso aos dados
A continuação, temos as instruções para que desde uma página ASP possamos acessar a informação
da base de dados e mostrá-la no navegador do usuário.
Suponha que temos uma tabela de produtos com as seguintes colunas: nome,
preço e distribuidor.
na página ASP a ser criada aparecerão aqueles produtos cujo preço seja inferior à 30 reais
e para realizar esta consulta utilizaremos o objeto ADODB.Recordset
Instruções de acesso aos dados;
<%
Dim objConn
Dim objRS
Dim strSQL
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=gestão"
' Inicialização do objeto Recordset Set
objRS = Server.CreateObject("ADODB.Recordset")
' Construção da consulta com SQL
strSQL = "SELECT nome, preço FROM produtos WHERE preço < 30"
' Execução da consulta
objRS.Open strSQL, objConn
%>
|
Como resultado do código acima, o servidor obtém um conjunto de registros procedentes da base
de dados e posiciona o cursor no primeiro deles. O objeto recordset proporciona mecanismos para
acessar aos diferentes campos e mover o cursor entre os diferentes registros. O código abaixo mostra como faze-lo.
Visualização dos dados
Nome
Preço |
<%
' Loop até encontrar EOF (fim do cursor)
Do Until objRS.EOF = True
Response.Write "<tr>"
' objRS("nome") y objRS("preço") contém os valores
' dos campos nome e preço da base de dados
Response.Write "<td>Nome= " & objRS("nome") & "</td>"
Response.Write "<td>Preço = " & objRS("preço") & "</td>"
Response.Write "</td></tr>"
' mover o cursor para o próximo registro.
' quando estiver no último registro EOF será True.
objRS.MoveNext
Loop
%>
|
Encerrar as conexões
É uma prática recomendável fechar e eliminar os objetos recordset e de conexão criados na
página ASP. Para isto utilizamos o código indicado a continuação:
Encerrar Conexão
<%
' Fechar o objeto Recordset
objRS.Close
' Eliminar o objeto Recordset
Set objRS = Nothing
' Fechar o objeto da conexão
objConn.Close
' Eliminar o objeto da conexão
Set objConn = Nothing
%>
|
adovbs.inc
ADOVBS.INC é um arquivo que vem junto com o servidor Internet Information Server e no qual se
definem todas aquelas constantes utilizadas com os objetos do ADO.
A inclusão de arquivos é muito útil para podermos ter um código legível e reutilizável duas características
imprescindíveis em páginas de acesso a dados.
Para isto utilizamos a instrução include virtual que pertence ao grupo de instruções
do protocolo HTTP e cuja sintaxe é a seguinte:
<!-- #include virtual="/adovbs.inc" -->
Neste caso o arquivo ADOVBS.INC deverá estar armazenado
no diretório raíz da sua aplicação.
|