ASP e ADO - Colocando seu banco de dados na WEB
O que é ASP ?
Se você já pensou em trabalhar com banco de dados na Web e não sabe como. Se você pensa em criar uma aplicação com acesso a banco de dados na Web e não sabe por onde começar . Você encontrou a resposta para os seus problemas . Ela se chama ASP (Active Server Pages). |
Supondo que você já tenha conhecimentos básicos de Visual Basic e HTML, ao usar ASP você vai poder facilmente criar conexões com banco de dados e fazer todo o tratamento que isto implica de uma maneira quase intuitiva pois a ASP usa a ADO (ActiveX Data Objects) para acessar base de dados e VBScript como linguagem de scripts. |
As páginas ASP são um ambiente para programação de páginas dinâmicas e interativas que usam os seguintes recursos.
1. HTML ( Hypertext Markup Language ou
Linguagem de marcadores de hipertexto) , a linguagem com a qual
escrevemos as páginas localizadas no servidores e que são
visualizadas pelos usuários
2. Linguagem de scripts como Vbscript ou JavaScript
que atuam no servidor
3. Acesso a base de dados que suportam a OBDC. (
Open Data Base Connectivity ) , suporte a ADO ( Active Data
Objects )
Você identifica um arquivo que contém código ASP
pela extensão .asp, ele contém basicamente código HTML
e scripts que irão rodar no servidor.(Se você já
acessou o site da Microsoft observe a quantidade de
arquivos de scripts com a extensão .asp usados.) O Vbscript é o mais utilizado como linguagem de scripts em arquivos asp, mas podemos usar JavaScript dentre outras. As páginas ASP contém basicamente código HTML , VBscript/JavaScript e texto. |
Ao utilizar ASP temos as seguintes vantagens:
1. Independência do Browser - Os
scripts rodam no servidor e somente os resultados são enviados
ao usuário , qualquer navegador pode visualizar as páginas ASP
2. Acesso a Base de Dados - ASP provê um fácil mecanismo para visualizar , atualizar e adicionar informações a base de dados que suportam OBDC e servidores SQL
3. Segurança do código fonte -
O cliente visualiza somente o resultado do processamento no
formato HTML
4. Administração do estado - Através de objetos internos da
ASP podemos controlar o estado do aplicativo com base no
usuário, no aplicativo e no servidor.
5. Se você conhecer o Visual Basic ou VBA , todo o seu
conhecimento é imediatamente aproveitado pois em ASP podemos
usar o Vbscript e ADO .
6. Fácil acesso a base de dados via ADO
O que é necessário para trabalhar
com ASP ? Para utilizar e trabalhar com páginas ASP devemos ter: 1. Um servidor com
Windows NT, Windows NT Workstation , Windows 95 ou
Windows 98. |
O windows 98 já vem com o Personal Web Server e você pode usá-lo como seu servidor da web. Voce deve então criar seu diretório virtual e , usando um editor criar seus arquivos ASP e salvá-los neste diretório.
Um arquivo ASP contém basicamente código HTML , texto e uma linguagem de scripts ( JavaScript , VBScript, etc..).
Como a ASP Funciona ?
O código ASP é colocado entre as tags
<% %> .Ela é utilizada
para delimitar os comandos de script. O servidor interpreta qualquer coisa delimitada pela tag <% %>, faz o processamento do código e envia somente o resultado para o cliente. Então todo o código ASP e vbscript a ser processado estará sempre as tags <% e %> . Assim <% For x=1 to 5 %> é a declaração para o loop For/Next usado em VBscript. Os delimitadores <% e %> indicam que a linha é um script e não código HTML. Para exibir e atribuir o conteúdo de uma variável a sintaxe é <%=variavel%>. Assim : <% imagem="carro.gif" % > - atribui a imagem carro.gif à variável imagem <img src=<% imagem %> - mostra o contéudo da variável imagem. No código abaixo temos HTML e script : <BODY> <Font size="4"> A data de hoje e : <%=Now%> </P> </BODY> As tags <BODY> , <FONT> e
<P> são retornadas ao Navegador
juntamente com o texto Mas vamos ao que interessa, acessar uma base de dados e mostrar seu conteúdo na WEB. |
Acessando
sua base de dados e exibindo os dados na WEB Antes
de realizar qualquer operação com um banco de dados
devemos acessá-lo tornando-o A tabela Authors tem a seguinte estrutura: <html><head> <TITLE>mostra_tabela.asp</TITLE> </head> <body bgcolor="aqua"> <% ' define o DSN , a identificação do usuário e a senha aspDSN="DSN=asp_db;uid=teste;pwd=teste" set conntemp=server.createobject("adodb.connection") conntemp.open aspDSN 'Para acesso sem um DSN fariamos 'set conntemp=server.createobject("adodb.connection") 'conntemp.open "DBQ=C:\asp_db\biblio.mdb;DRIVER={Microsoft Access Driver (*.mdb)}" 'Vamos selecionar somente os primeiros registros da tabela pois a tabela contem muitos registros 'Para isto criaremos uma instrução SQL que selecione somente os autores com Au_id menor que 12 aspSQL="select * from authors' where Au_id < 12" set rstemp=conntemp.execute(aspSQL) ' verifica se há dados no recordset If rstemp.eof then response.write "Não há dados a exibir<br>" response.write aspSQL & "<br>Não retorna informação alguma..." connection.close set connection=nothing response.end end if %> 'Vamos usar código HTML para criar uma tabela e exibir nossos dados <table border=1> <% ' Vamos dar nome aos cabeçalhos dos campos response.write "<tr>" 'Percorremos for each item in rstemp.fields response.write "<td><B>" & item.name & "</B></TD>" next response.write "</tr>" ' Agora iremos exibir os dados do Recordset gerado pela consulta SQL 'Vamos percorrer o recordset até chegar no final do arquivo DO UNTIL rstemp.eof 'atribuindo os valores dos campos as variáveis Codigo=rstemp("Au_ID") Nome=rstemp("Author") Nascimento=rstemp("Year born") ' escrevendo os campos em uma tabela para exibição via um Browser 'cellstart="<td align=""top"">" response.write "<tr>" response.write "<td>" & Codigo & "</td>" response.write "<td>" & Nome & "</td>" response.write "<td">" & Nascimento & "</td>" response.write "</tr>" 'move-se para próximo registro do recordset rstemp.movenext LOOP %> </table> <% ' Fechamos o recordset e liberamos a memória usada rstemp.close set rstemp=nothing conntemp.close set conntemp=nothing %> </body></html> |
Eis o resultado do processamento ASP. Lembre-se o usuário recebe o código HTML processado e não tem acesso ao seu código fonte. Dúvida ??? Então mande o Explorer exibir o código fonte....
No código acima notamos a utilziação do objeto Response que envia informação do servidor para o cliente e do objeto Request que recebe informação do cliente para o servidor.
ASP permite que você crie suas aplicações através de cinco objetos básicos, abaixo temos um resumo dos objetos ASP:
1-) Objeto Application
O objeto Application
pode ser usado para compartilhar informações entre todos os
usuários de
uma determinado aplicativo. O aplicativo é definido como todos
os arquivos .asp dentro do
diretório virtual e seus subdiretórios.
Sintaxe: Application.method
O objeto Application tem dois métodos, chamados Lock
e Unlock. Como os dados são compartilhados
entre os usuários, esses métodos permitem que você bloqueie e
desbloqueie efetivamente o acesso
ao objeto aplicativo, enquanto aplica alterações em suas
variáveis.
Lock não permite que outros clientes modifiquem
as propriedades do objeto Application.
Unlock permite que outros usuários modifiquem
as propriedades do objeto Application.
Ele também permite que sejam criadas variáveis que estarão disponíveis para todos os usuários ao acessarem sua aplicação.Exemplo:
Application.Lock Application("nome")= "Jose" Application.Unlock |
Lock bloqueia a aplicação e Unlock desbloqueia a aplicação durante uma atualização. |
2-) Objeto Session
O objeto Session é
semelhante ao objeto Application no sentido de que ele também
contém eventos
dentro do arquivo global.asa. Entretanto, ao contrário do objeto
Application , o objeto Session
armazena informacões de uma sessão de usuário em particular.
Esse objeto persiste para a sessão
inteira e proporciona assim uma solução elegante para o
problema comum da persistência do estado
- quando você precisa controlar um usuário de uma página da
Web para a seguinte.
O servidor Web cria automaticamente um objeto Session
quando uma página é requisitada pelo usuário
que ainda não tenha uma sessão. A sessão é destruida quando
for abandonada ou quando expirar.
Sintaxe:
Session|propriedade|metodo
A sintaxe para se definir uma variável dentro do objeto Session
é a seguinte:
Session("nome_variavel") = variavel
Você pode então fazer referência ao valor da variável como
segue:
MinhaVariavel =
Session("nome_variavel")
Define também as variáveis para usuários individuais. É muito
usado para armazenar valores informados em formulários, como o
pedido de compras, informações cadastrais, etc..Exemplo:
<FORM> <P><INPUT VALUE=<%=Session("Nome")%>>Nome:</P> <P><INPUT VALUE=<%=Session("Endereço")%>Endereço:</P> </FORM> |
Cria um formulário e solicita ao
usuário que informe o seu Nome e endereço. Os dados serão armazenados nas variavéis Nome e Endereço |
3-Objeto Request
Retorna os valores das requisições feitas pelo Navegador do
cliente ao servidor durante
uma requisição HTTP.
Sintaxe : Request[.Collection](variável)
Cada requisição pode ter diversos parâmetros em diferentes
categorias, e para tratar esta
quantidade de informação o objeto request utiliza as Coleções
(Collections) , que podem
ser vistas como vetores contendo um conjunto de informações.
Para acessar as informações de uma coleção podemos usar um
loop ( For Each... Next ).
Um exemplo de utilização de request usando a coleção Form é dada a seguir.
A coleção Form é utilizada
com os formulários HTML, os quais são uma coleção de campos
textos,
botões , caixas de seleção e outros controles que são usados
para que o usuário possa preencher
e assim fornecer informações.
Sintaxe:
Request.Form(parametro)[index][.count]
O parâmetro especifica o nome do elemento do formulário do qual
é retornado o valor.
Quando um usuário submete uma informação em um formulário ela
é controlada pela opção
action da tag Form (<form
action="Teste1.asp" method="POST">
) . A opção action é definida
para uma URL que aponta para um programa ou para um arquivo de
script que processará as
informações .
Como a informação é enviada dependerá do método usado na tag
form. Podemos usar o método GET
onde os nomes e valores dos campos são enviados como parâmetros
e assim podem ser recuperados
pela coleção QueryString, ou usamos o método POST e ai a
informação é embutida no objeto Request e esta disponível via
coleção Form.
Como exemplo podemos citar o preenchimento de um formulário onde
o usuário fornece tres valores
: Windows 98 , Linux e DOS para o parâmetro Sistemas. Para
retornar estes valores podemos usar
o script:
<%
For Each item In Request.Form("Sistemas")
Response.Write item & "<BR> "
Next
%>
A saída seria:
Windows98
Linux
DOS
O mesmo efeito seria obtido com o script:
<%
For I = 1 To Request.Form("Sistemas").Count
Response.Write Request.Form("Sistemas")(I) & "
< BR > "
Next
% >
4 - Objeto Response
O objeto response é usado para enviar imformacões a um
cliente e possuem apenas uma coleção ,
a coleção Cookies .
Sintaxe: Reponse.Coleção|propriedade|Metodo
A coleção Cookies do objeto Response determina o valor de um
cookie. Se o cookie especificado não existir ele é criado, se
existir o novo valor é atribuido ao cookie.
Sintaxe: Response.Cookies(cookie)[(chave)(.atributo] =
valor
Cookie é o nome do cookie.
Chave é opcional, se especificado cookie é um dicionário.
Vejamos um exemplo com o objeto Response usando o método Write
, o qual permite escrever textos na página gerada. Ex:
Response.Write(" Olá ") escreve o texto
- "Olá " na página gerada. Uma maneira simplificada
de obter o mesmo resultado é escrever: ="Olá"
Sintaxe: Response.Write variant
Variant representa os dados que serão
escritos. Pode ser qualquer tipo de dado suportado pelo
tipo de dado VARIANT do VBscript. Não pode conter o os
caracteres "%>".
Exemplo:
1-) O script abaixo envia uma mensagem ao cliente:
<p> Ola , como vai ? seu
nome e : <% Response.Write Request.Form("name")
%>
5- O objeto Server
O objeto Server fornece métodos e propriedades que
permitem interagir com a máquina em que seu
aplicativo está sendo executado - a saber, o servidor da Web.
Sintaxe: Server.method
O objeto Server tem uma propriedade ScriptTimeout e os quatro
métodos a seguir: CreateObject,
HTMLEncode, MapPath e URLEncode.
A propriedade ScripTimeout do objeto
Server especifica quantidade máxima de tempo que um script
pode rodar até terminar.
Sintaxe: Server.ScriptTimeout = numsegundos
Numsegundos determina o número máximo em segundos que o script
pode rodar até terminar. O valor
padrão é de 90 segundos.
Exemplo:
1-) No código abaixo o script termina se o servidor levar mais
que 30 segundos para processar
o script.
< % Server.ScriptTimeout = 30
%>
Atualizando dados: Inclusão, exclusão e atualização de dados.
Vamos abordar agora como atualizar, incluir e excluir registros de uma base de dados na WEB usando ASP e ADO.
1- Incluindo registros em um Recordset - Para incluir um novo registro para um recordset usando ADO, você pode usar os métodos AddNew e Update do objeto Recordset. É claro que primeiro você tem que criar um Recordset que permita atualizações (não pode ser um Recorset do tipo somente leitura - read-only). Com o Recordset criado o código necessário é o seguinte: ( rst - será o nome do nosso recordset criado )
rst.Addnew
rst("campo1") = valor1
rst("campo2") = valor2
....
rst.Update
Como podemos ver inclusão de um novo registro sempre envolve três etapas:
Num exemplo prático iremos mostrar como incluir registros usando uma base de dados access. Usaremos um arquivo chamado agenda.mdb e iremos incluir dados na tabela clientes cuja estrutura é a seguinte:
Usaremos dois arquivos : Um arquivo HTML (incluir.htm) para receber os valores a serem incluidos e um arquivo ASP(incluir2.asp) para incluir efetivamente as informações na tabela clientes.
O código do arquivo incluir.htm é dado a seguir:
|
A execução do codigo acima produz a seguinte página : (Estamos usando o Personal Web Server )
Você deve preencher o formulário e a seguir clicar no botão - Salvar Registro. Isto irá acionar o arquivo incluir.asp que usando os métodos AddNew e Update irá incluir os dados no arquivo. Vejamos o código de incluir2.asp:
|
Note que o arquivo agenda.mdb esta no diretório c:\asp_db. O formulário preenchido esta mostrado abaixo e quando o usuario clicar no botão Salvar Registro o arquivo incluir2.asp é processado.
O resultado do processamento do arquivo incluir2.asp é o seguinte:
Voltaremos a este assunto em outro artigo. Até lá... :-)
retorna