Vous êtes sur la page 1sur 36

Manuais e recursos para desenvolvimento web www.criarweb.

com

Programao em ASP

Autores do manual Este manual foi criado pelos seguintes colaboradores de Criarweb.com: Rubn Alvarez Pedro Rufo Martin
(19 captulos) http://www.asptutor.com/ (7 captulos)

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Introduo programao em ASP


Tal como explicamos, ASP (Active Server Pages) a tecnologia para a criao de pginas dinmicas do lado do servidor, desenvolvida por Microsoft. Os tipos de servidores que empregam esta linguagem so aqueles que funcionam com sistema operativo da famlia de Windows NT. Felizmente, tambm podemos visualizar pginas ASP sobre Windows 95/98, mas isto ser visto mais adiante. Para escrever pginas ASP utilizamos uma linguagem de scripts, que se colocam na mesma pgina web junto com o cdigo HTML. Normalmente esta linguagem de scripts Visual Basic Script, que deriva do conhecido Visual Basic, embora tambm podem escrever os scripts ASP em outra linguagem: JScript, que deriva por sua vez do conhecido Javascript. Existe uma verso de Visual Basic Script no lado cliente e outra no lado do servidor. Nos dois casos, como seu nome indica, a linguagem de base Visual Basic pelo qual sua aprendizagem pode ser perfeitamente coordenada, j que as sentenas e as sintaxes so praticamente as mesmas. Em ASP, ao estar programando pginas do lado do servidor, utilizaremos Visual Basic Script do lado do servidor e neste manual nos centraremos neste ponto. Este manual est destinado queles que querem comear do zero a aprendizagem desta linguagem e que buscam nela a aplicao direta a seu projeto de site ou a melhora de seu site HTML. Os captulos so extremamente simples, buscando ser acessveis maioria. Eles sero complementados posteriormente com outros artigos de maior nvel, destinados a webmasters mais experientes. Antes de comear a ler este manual altamente aconselhvel, seno imprescindvel, ter lido previamente o manual sobre pginas dinmicas no qual se explica por alto o que o ASP, alguns conceitos teis sobre o modo de trabalhar com pginas dinmicas ao mesmo tempo que nos introduz alguns elementos bsicos da programao como podem ser as variveis e as funes. Nossa inteno de ir publicando paulatinamente diferentes captulos de modo que pedimos um poco de pacincia queles que esto esperando a continuao. Tudo ir chegando. Esperamos que este manual seja de seu agrado e que corresponda a nossas expectativas: O poder aproximar esta linguagem a todos aqueles amantes do desenvolvimento de webs que querem dar o passo em direo as webs "profissionais". Se lhe interessa trabalhar com um editor especfico de ASP lhe recomendamos o MS Visual Interdev. Outra possibilidade o Drumbeat de Macromedia embora para comear nenhum dos dois absolutamente indispensvel. Tambm podemos escolher Homesite, um editor que no especfico para as ASP, mas que se comporta bastante bem e oferece ajudas interessantes. Artigo por Rubn Alvarez

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Passos prvios I : Instalao do PWS


Em captulos anteriores explicamos que, dada a natureza das linguagens de lado servidor, impossvel trabalhar offline como fazamos no caso das pginas HTML que armazenvamos em nosso disco rgido. Tambm dissemos que isto no era completamente certo j que podamos resolver este eventual problema instalando em nosso PC um servidor prprio. Este servidor distribudo por Microsoft tem duas verses diferentes que so utilizadas dependendo da mquina que estivermos utilizando. Para os usurios de W95 o W98, a verso disponvel chama-se Personal Web Server (PWS). Se trabalharmos sob o sistema Windows NT, ou s verses Profissional e Server de Windows 2000 e XP, o servidor a instalar o Internet Information Server (IIS). Os usurios de W95 tm vrias possibilidades para fazer com o PWS: Baix-lo do site Microsoft , a partir de uma antiga verso de Frontpage 98, instalando-o pela opo pack de W-NT 4.0 o pelo CD de instalao de W98 (diretrio add-ons/pws). Os usurios de Windows ME no tm suporte para PWS, embora podem provar uma srie de passos para conseguir utiliz-lo no sistema. Este documento de Microsoft explica melhor este assunto. Por outro lado, os usurios de Windows 2000 devem utilizar IIS 5.0, que se encontra na instalao. recomendvel que voc tambm leia as notas dos visitantes no p da pgina, porque encontrar muitos mais dados sobre problemas em distintas verses e compatibilidades com outros sistemas que vo aparecendo. PWS poderia ser considerado como uma verso "light" do IIS4. Na verdade em PWS no suficientemente verstil para exercer de servidor de um site de um tamanho mediano embora sim que poderia em um dado momento se encarregar de um site de tamanho reduzido e no muito concorrido. De qualquer forma, a utilidade do PWS radica, sobretudo em que nos permite realizar as provas do site que vamos desenvolver em "local" sem a necessidade de pendurar nossos arquivos no servidor que hospeda nosso site cada vez que quisermos fazer uma prova sobre uma pequena modificao introduzida. Isto totalmente prtico, sobretudo, para principiantes que precisam fazer provas com uma relativa freqncia permitindo poupar muito tempo. Dado que a maioria dos possveis leitores deste manual trabalha com W95 e 98, neste captulo nos limitaremos descrio do PWS deixando o IIS4 para futuros captulos. Entretanto, as explicaes que damos podem ser igualmente teis para quem tenha que utilizar este ltimo, o qual apresenta um funcionamento bsico anlogo. O uso do PWS extremamente fcil. Uma vez instalado, podemos observar a introduo de um novo cone na barra de tarefas assim como no menu de incio correspondente aplicao. A partir de qualquer deles podemos ter acesso pgina principal ou derivada. O seguinte passo criar um diretrio virtual dentro do qual hospedaremos nossa pgina. Chamamos de diretrio virtual devido a que nossa pgina pode estar hospedada em qualquer parte de nosso disco rgido, onde parecer melhor para ns e com um nome de diretrio que tambm no tem porque ser parecido ao que incluiremos na URL quando quisermos executar a pgina. De fato, a URL que devemos introduzir no navegador para visualizar nossa pgina ASP do tipo: http://localhost/nome_do_diretorio virtual/arquivo.asp Como se pode observar, neste tipo de endereo no se especifica o caminho no disco rgido onde se encontram nossos arquivos.
Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 3

Manuais e recursos para desenvolvimento web www.criarweb.com

Voltando criao de nosso diretrio virtual, para faz-lo devemos clicar sobre o cone "Avanado" o qual nos d acesso s opes avanadas do PWS. Uma vez a, o seguinte passo "Agregar" um diretrio virtual. Uma janela na qual teremos que introduzir o nome de tal diretrio virtual e especificar em que pasta do disco duro temos guardados os arquivos.

Como pode ser visto, a coisa fcil. Agora no falta nada mais que introduzir no navegador o tipo de URL mencionada anteriormente para executar os scripts criados. Uma opo interessante no menu avanado a seleo do tipo de arquivo que ser executado por padro. Aqui poderamos colocar arquivos com nome index.html ou index.asp ou tambm com o nome default ou home... Artigo por Rubn Alvarez

Passos prvios II: Conexo ao BD


O seguinte passo, uma vez instalado o servidor que nos permite trabalhar em local, criar os vnculos com as bases de dados que exploraremos em nossos scripts. Em efeito, a utilizao de pginas dinmicas est freqentemente associado com o emprego da bases de dados. Uma base de dados simplesmente um conjunto de tabelas nas quais armazenamos distintos registros (artigos de uma loja virtual, provedores ou clientes de uma empresa, filmes em cartaz no cinema...). Estes registros so catalogados em funo de distintos parmetros que os caracterizam e que representam uma utilidade na hora de classifica-los. Assim, por exemplo, os artigos de uma loja virtual poderiam se catalogar a partir de distintos campos como pode ser um nmero de referncia, nome do artigo, descrio, preo, provedor... As bases de dados so construdas servindo de tais aplicaes como o Microsoft Access ou o MySQL, as quais so bastante simples de utilizar com uns conceitos mnimos. Nosso objeto aqui no explicar a forma de explor-las e sim, como estabelecer uma conexo entre a base de dados, armazenada em qualquer lugar do disco rgido e nossa pgina web hospedada tambm em qualquer parte e reconhecida por nosso servidor pessoal a partir do diretrio virtual. Para criar este vnculo, nos servimos dos conectores ODBC (Open DataBase Connectivity) os
Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 4

Manuais e recursos para desenvolvimento web www.criarweb.com

quais estabelecem o link com a base de dados.

O primeiro passo para criar esta conexo ir ao painel de configurao e abrir o cone ODBC 32bits. Dentro dele, deveremos criar um DSN (Data Source Name) do tipo sistema ou usurio. Para isso, colocamos na aba correspondente (DSN sistema ou DSN usurio) e selecionamos "Acrescentar". A seguir nos pedir para selecionar os controladores da aplicao que utilizamos para criar a base de dados, o nome que quisermos lhe atribuir (aquele que empregamos em nossos scripts) e o caminho para encontra-la em nosso disco rgido. Esta DSN permite na verdade definir a base de dados que ser interrogada sem a necessidade de passar pela aplicao que tivermos utilizado para constru-la, ou seja, com simples chamadas e ordens desde nossos arquivos ASP poderemos obter os dados que buscamos sem a necessidade de executar o Access ou o MySQL os quais, evidentemente, no tero porque se encontrarem no servidor onde trabalhamos. Artigo por Rubn Alvarez

Incio programao em ASP


Ao longo dos captulos precedentes ficou claro que o ASP uma linguagem orientada s aplicaes em rede criada por Microsoft que funciona do lado servidor. na verdade, o servidor quem se ocupa de executa-lo, interpreta-lo e envia-lo ao cliente (navegador) em forma de cdigo HTML. ASP principalmente utilizado servindo-se da linguagem Visual Basic Script que no mais do que uma verso light do Visual Basic. Entretanto, possvel programar pginas ASP em Java Script. O nico que h de fazer especificar na prpria pgina que tipo de linguagem estamos utilizando. Dado que a linguagem ASP est muito freqentemente embebida dentro do cdigo HTML, importante poder marcar ao servidor que partes esto escritas em uma linguagem e quais em outra. por isso que todas as partes do arquivo que esto escritas em ASP estaro sempre delimitadas pelos smbolos: <% e %>.

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Deste modo, quando realizarmos nossos scripts, o primeiro que devemos definir o tipo de linguagem utilizado, o qual se faz da seguinte forma: <% @ LANGUAGE="VBSCRIPT" %> No caso de programarmos em Visual Basic Script <% @ LANGUAGE="JSCRIPT" %> Se nos servimos do Java Script em servidor para programar em ASP Os scripts que sero apresentados neste manual estaro baseados no VBS, o qual apresenta uma srie de prestaes que os tornam sem dvida mais acessvel e apto para ASP. No a toa que o prprio Microsoft quem criou ambos. Com os elementos que apresentamos at agora, j estamos em situao de poder escrever nosso primeiro programa em ASP. Vamos criar um programa que calcule o 20% de impostos que teria que acrescentar a uma srie de artigos. Para concretizar o conceito de funo, explicado no manual de pginas dinmicas, vamos definir uma funo "imposto" que empregaremos sucessivas vezes. O programa poderia ser algo assim:
<% @ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Funo imposto</TITLE> </HEAD> <BODY> <%Function imposto(preo_artigo) preo_final=preo_artigo+preo_artigo*20/100 Response.Write preo_final End Function%> Um livro de $35,00 ficar em um preo de <% imposto(35) %> <br> Um sapato de $60,00 ter um preo final de <% imposto(60) %> <br> Um CD de msica de $20,00 custaria <% imposto(20) %> </BODY> </HTML>

Como pode ser visto, o script contm duas partes fundamentais: Uma primeira na qual definimos a funo que chamamos imposto que depende unicamente de uma varivel (preo_artigo). Imposto permite acrescentar um 20% ao preo do artigo e imprimir o resultado na tela (Response.Write). Na segunda parte nos servimos da funo para realizar os clculos necessrios e mostr-los na tela, acompanhados de texto. muito interessante uma vez executado o script, ver o cdigo fonte. Como se pode ver, o cdigo HTML que mostra o browser no coincide com o que ns escrevemos. Algo que no deve nos surpreender, j que, como j explicamos, o servidor se encarrega de processa-lo e torna-lo compreensvel ao navegador. Artigo por Rubn Alvarez

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Loops e condies I
A programao exige em muitas ocasies a repetio de aes sucessivas ou a escolha de uma determinada seqncia e no de outra dependendo das condies especficas da execuo. Como exemplo, poderamos fazer aluso a um script que execute uma seqncia diferente em funo do dia da semana no qual nos encontramos. Este tipo de ao pode ser realizado graas a uma paleta de instrues presentes na maioria das linguagens. Neste captulo descreveremos sumariamente algumas delas propostas pelo VBS e que so de evidente utilidade para o desenvolvimento de pginas ASP. Para evitar complicar o texto, nos limitaremos a introduzir as mais importantes deixando de lado outras tantas que podero ser facilmente assimiladas a partir de exemplos prticos. As condies: IF Quando quisermos que o programa, chegado a um certo ponto, tome um caminho determinado em determinados casos e outro diferente se as condies de execuo diferem, nos servimos do conjunto de instrues If, Then e Else. A estrutura de base deste tipo de instrues a seguinte: IF condio THEN Instruo 1 Instruo 2 ... ELSE Instruo A Instruo B ... END IF Chegado a este ponto, o programa verificar o cumprimento ou no da condio. Se a condio certa as instrues 1 e 2 sero executadas. Do contrrio (Else), as instrues A e B sero realizadas. Uma vez finalizada a estrutura, deveremos fechar com um End If. Esta estrutura de base pode complicar-se um pouco mais, se temos em conta que no necessariamente tudo branco ou negro e que muitas possibilidades podem se dar. por isso que outras condies podem se colocar dentro da condio principal. Falamos, portanto, de condies aninhadas que teriam uma estrutura do seguinte tipo: IF condio THEN Instruo 1 Instruo 2 ... ELSE IF condio2 THEN Instruo A Instruo B ...

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

ELSE Instruo X ... END IF END IF Deste modo poderamos introduzir tantas condies quantas quisermos dentro de uma condio principal. Neste tipo de estruturas importante fechar corretamente cada um dos IF com seus END IF correspondentes. De grande ajuda a instruo ELSE IF que permite em uma s linha e sem necessidade de acrescentar um END IF introduzir uma condio aninhada. O uso desta ferramenta ser claro com um pouco de prtica. Colocamos um exemplo simples de utilizao de condies. O seguinte programa permitiria detectar a lngua empregada pelo navegador e visualizar uma mensagem em tal lngua.
<% @ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Detector de Lngua</TITLE> </HEAD> <BODY> <% 'Antes de nada introduzimos mensagens em forma de variveis espanhol="Hola" ingles="Hello" portugues="Ol" 'Agora lemos do navegador qual a sua lngua oficial idioma=Left(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"),2) 'Formulamos as possibilidades que podem dar If idioma="es" Then Response.Write espanhol ElseIf idioma="pt" Then Response.Write portugues Else Response.Write ingles End If %> </BODY> </HTML>

Para poder ver o funcionamento deste script necessrio mudar o idioma preferido o qual pode ser realizado a partir do menu de opes do navegador. Como pode ser visto, as variveis que contm texto so armazenadas entre aspas. Para ler a lngua aceitada pelo navegador o que fazemos definir uma varivel (idioma) que recorre as duas primeiras letras comeando da esquerda do idioma aceitado pelo navegador ("HTTP_ACCEPT_LANGUAGE"). Este idioma aceitado pode ser requerido como uma varivel do objeto ServerVariables. Por agora deixaremos isto tal como est, e j nos encarregaremos de v-lo mais detalhadamente em outros captulos. A terceira de script se encarrega de ver se o navegador est em portugus (pt), espanhol (es), ou em qualquer outro idioma que no seja nenhum destes dois, e imprimir cada uma das mensagens que proceda em cada caso. Outro ponto a comentar o fato de poder comentar os programas. Como se pode observar, dentro do script introduzimos umas mensagens que nos serve para l-las mais facilmente. Estas mensagens no exercem nenhuma influncia no desenvolvimento do mesmo. Para
Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 8

Manuais e recursos para desenvolvimento web www.criarweb.com

introduzi-las necessrio escreve-las detrs de uma apstrofe: ' Os comentrios so de grande utilidade quando tratamos com programas muito extensos e complicados.Nestes casos, so de grande ajuda na hora de depurar falhos ou introduzir modificaes. altamente aconselhvel acostumar-se a utiliz-los. Artigo por Rubn Alvarez

Loops e condies II
Os loops FOR Em muitas ocasies necessrio executar um conjunto de instrues um nmero definido de vezes. Isto pode ser realizado a partir da instruo FOR/NEXT. A estrutura clssica: FOR contador=nmero inicial to nmero final STEP incremento Instruo 1 Instruo 2 ... NEXT A partir deste tipo de estruturas executamos as instrues contidas entre o FOR e o NEXT um certo nmero de vezes definido pelo nmero inicial, final e o incremento. O incremento de 1 por padro. Colocamos um exemplo:
<% @ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Loop for/next</TITLE> </HEAD> <BODY> <%For i=1 to 5%> <font size=<%Response.Write i%>>Volta nmero <%Response.Write i%></font><br> <%Next For i=5 to 1 Step -1%> <font size=<%Response.Write i%>>Contamos atrs: <%Response.Write i%></font><br> <%Next%> </BODY> </HTML>

Este script composto de dois loops conta primeiro de 1 a 5. A varivel i toma portanto todos os valores inteiros compreendidos entre estes dois nmeros e pode ser utilizada dentro do loop como o fazemos neste caso para aumentar o tamanho da letra. O segundo loop realiza o processo inverso (o incremento negativo) produzindo uma diminuio do tamanho da letra.

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

Manuais e recursos para desenvolvimento web www.criarweb.com

Se quiser ver o efeito que produz clique aqui O que pode ser interessante para ver at que ponto o programar pginas dinmicas pode fazer pouparmos texto em relao a mesma pgina programada em cdigo HTML, ver o cdigo fonte da pgina a partir do navegador. Artigo por Rubn Alvarez

Loops e condies III


Os loops DO WHILE/LOOP Outra forma de realizar este tipo de seqncias loop a partir da instruo DO WHILE. Neste caso o que especificamos para fixar a extenso do loop no o nmero de voltas e sim, o que se cumpre ou no uma condio. A estrutura deste tipo de loops anloga a dos loops FOR/NEXT: DO WHILE condio Instruo 1 Instruo 2 ... LOOP O loop se dar enquanto a condio proposta seguir sendo vlida. Como ser visto em exemplos posteriores, este tipo de loops muito prtico para a leitura de bases de dados. Todo este tipo de controladores de fluxo, (condies e loops) podem ser necessrios e otimizados a partir do uso de operadores lgicos. Assim, podemos escolher que sejam duas as condies que dem para realizar um conjunto de instrues: IF condio 1 AND condio 2 THEN ... Tambm podemos requerer que seja uma das duas: IF condio 1 OR condio 2 THEN... Da mesma forma, possvel escolher que a condio de um loop DO seja a inversa enunciada: DO WHILE NOT condio Concluindo, um conjunto de recursos bsicos para controlar o desenvolvimento de programas. Sua utilidade ser mais que patente e seu uso ir tornando-se intuitivo medida que nos familiarizarmos com a linguagem. Artigo por Rubn Alvarez

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

10

Manuais e recursos para desenvolvimento web www.criarweb.com

Os objetos ASP
O ASP uma linguagem desenhada para a criao de aplicaes na internet. Isto quer dizer que existe toda uma srie de tarefas bastante correntes, as quais deve se dar um tratamento fcil e eficaz. Referimo-nos por exemplo ao envio de e-mails, acesso a arquivos, gesto de variveis do cliente ou servidor como podem ser seu IP ou a lngua aceitada... A linguagem VB propriamente dita no d uma soluo fcil e direta a estas tarefas, e sim invoca aos denominados objetos que no so mais que uns mdulos incorporados linguagem que permitem o desenvolvimento de tarefas especficas. Estes objetos realizam de uma maneira simples toda uma srie de aes de uma complexidade relevante. A partir de uma chamada ao objeto, este realizar a tarefa requerida. De certa forma, estes objetos nos poupam ter que fazer compridos programas para operaes simples e habituais. Alguns destes objetos esto incorporados no prprio ASP, outros devem ser incorporados como se se tratasse de componentes acessrios. De fato, no poderamos executar corretamente um script no qual tivssemos que chamar a um objeto que no estivesse integrado no servidor. Estes tipos de "plug-in" so geralmente comprados pelo servidor a empresas que os desenvolvem. Como todo objeto do mundo real, os objetos do mundo informtico tm suas propriedades que os definem, realizam um certo nmero de funes ou mtodos e so capazes de responder de uma forma definvel antes certos eventos. Dado o nvel desta obra, a descrio da totalidade de objetos com seus mtodos e propriedades certamente fora de lugar. Vamos, portanto, nos contentar com ir descrevendo os mais freqentemente utilizados e exemplifica-los da maneira mais prtica deixando a numerao exaustiva em forma de apndice. Artigo por Rubn Alvarez

Objeto Request I
Loops e condies so muito teis para processar os dados dentro de um mesmo script. Entretanto, em um site na internet, as pginas vistas e os scripts utilizados so numerosos. Muitas vezes necessitamos que nossos distintos scripts estejam conectados uns com outros e que se sirvam de variveis comuns. Por outro lado, o usurio interage por meio de formulrios cujos campos ho de ser processados para poder dar uma resposta. Todo este tipo de fatores dinmicos ho de ser eficazmente regulados por uma linguagem como o ASP. Como veremos, todo este tipo de aspectos interativos podem ser providenciados a partir do objeto Request. O objeto Request nos devolve informaes do usurio que foram enviadas por meio de formulrios, por URL ou a partir de cookies (veremos de que se tratam a seguir). Tambm nos informa sobre o estado de certas variveis do sistema, como pode ser a lngua utilizada pelo navegador, o nmero IP do cliente...

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

11

Manuais e recursos para desenvolvimento web www.criarweb.com

Transferir variveis por URL Para passar as variveis de una pgina a outra, podemos faze-lo introduzindo tal varivel no endereo URL da pgina destino dentro do link hipertexto. A sintaxe seria a seguinte: <a href="destino.asp?variavel1=valor1&variavel2=valor2&..."></a> Para buscar a varivel na pgina destino, devemos fazer por meio do objeto Request com o mtodo Querystring: Request.querystring("variavel1") Request.querystring("variavel2") As duas pginas seriam assim:
<HTML> <HEAD> <TITLE>Pgina origem.asp</TITLE> </HEAD> <BODY> <a href="destino.asp?saudacao=ol&texto=Isto uma varivel texto">Passo variveis saudao e texto pgina destino.asp</a> </BODY> </HTML>

<HTML> <HEAD> <TITLE>destino.asp</TITLE> </HEAD> <BODY> Varivel saudao: <%Response.Write Request.Querystring("saludo")%><br> Varivel texto: <%Response.Write Request.Querystring("texto")%><br> </BODY> </HTML>

Se quiser ver o efeito que produz clique aqui. Artigo por Rubn Alvarez

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

12

Manuais e recursos para desenvolvimento web www.criarweb.com

Objeto Request II
Transferir variveis por formulrio O processo similar ao explicado para as URLs. Primeiramente, apresentamos uma primeira pgina com o formulrio a preencher e as variveis so recolhidas em uma segunda pgina que as processa:
<HTML> <HEAD> <TITLE>formulario.asp</TITLE> </HEAD> <BODY> <FORM METHOD="POST" ACTION="destino2.asp"> Nome<br> <INPUT TYPE="TEXT" NAME="nome"><br> Sobrenome<br> <INPUT TYPE="TEXT" NAME="sobrenome"><br> <INPUT TYPE="SUBMIT"> </FORM> </BODY> </HTML> <HTML> <HEAD> <TITLE>destino2.asp</TITLE> </HEAD> <BODY> Varivel nome: <%=Request.Form("nome")%><br> Varivel sobrenome: <%=Request.Form("sobrenome")%> </BODY> </HTML>

Se quiser ver o efeito que produz clique aqui. Outras utilidades de Request: as ServerVariables O objeto Request nos d acesso a outras informaes relativas ao cliente e ao servidor, as quais podem ser de uma grande utilidade. Estas informaes so armazenadas como variveis as quais so agrupadas em uma coleo chamada ServerVariables. Dentro desta coleo temos variveis to interessantes como: HTTP_ACCEPT_LA Informa a lngua preferida pelo navegador NGUAGE HTTP_USER_AGE NT Indica qual o navegador utilizado.

PATH_TRANSLATE Devolve o path fsico do disco rgido do servidor no qual se encontra D nosso script SERVER_SOFTWA Diz que tipo de software utiliza o servidor RE

Para visualizar na tela algumas dessas variveis, devemos escrever algo como: Response.write request.servervariables("nome da varivel")

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

13

Manuais e recursos para desenvolvimento web www.criarweb.com

Uma forma rpida de visualizar todas estas variveis a partir de um script com esta seqncia:
<% For Each elemento in Request.ServerVariables Response.Write elemento&" : "&Request.ServerVariables(elemento)& "<br>" Next %>

Isto nos daria por um lado o nome da varivel e do outro o seu valor. Este tipo de loop For Each/Next se parece a outros j vistos. Neste caso, o loop se realiza tantas vezes como elementos que tiver a coleo (ServerVariables) que no mais que o conjunto de elementos compreendidos na extenso do objeto (Request). Este tipo de loop aplicvel a outras colees deste e de outros objetos como, por exemplo, os Request.Form ou Request.Querystring ou as cookies. Desta forma seramos capazes de visualizar o nome e o contedo de tais colees sem a necessidade de enuncia-las uma por uma. Artigo por Rubn Alvarez

Objeto Response
Tal como vimos, o objeto Request providencia tudo que relativo a entrada de dados ao script por parte do usurio (formulrios), provenientes de outra URL, do prprio servidor ou do browser. Resta-nos explicar como o script pode "responder" a estes estmulos, ou seja, como, depois de processar devidamente os dados, podemos imprimir estes na tela, inscreve-los nas cookies ou enviar ao internauta a uma pgina ou outra. Definitivamente, falta definir a forma na qual o ASP regula o contedo que enviado ao navegador. Esta funo encarregada pelo objeto Response o qual foi ligeiramente mencionado em captulos precedentes concretamente em associao ao mtodo Write. Na prtica, sentenas do tipo: <%Response.Write "Uma cadeia de texto"%> o bien, <%Response.Write variable%> Tm como cometido imprimir no documento HTML gerado uma mensagem ou valor de varivel. Este mtodo geralmente to utilizado que existe uma abreviao do mesmo de forma a facilitar sua escritura: <% = variable %> anlogo a <%response.write variable%> importante ressaltar o fato que imprimir no documento HTML no significa necessariamente visualizar na tela j que poderamos nos servir destas etiquetas para criar determinadas

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

14

Manuais e recursos para desenvolvimento web www.criarweb.com

etiquetas HTML. Temos aqui um exemplo do que pretendemos dizer: <% path="http://www.meusite.com/graficos/imagem.gif" %> <img src="<% =path %>"> Este fragmento de script nos geraria um cdigo HTML que seria recebido no navegador da seguinte forma: <img src="http://www.meusite.com/graficos/imagem.gif"> Outro elemento interessante deste objeto Response o mtodo Redirect. Este mtodo nos permite enviar automaticamente o internauta a uma pgina que ns tivermos decidido. Esta prtica funo, pode ser empregada em scripts que enviamos ao visitante de nosso site a uma pgina ou outra em funo do navegador que utiliza ou da lngua que prefere. Tambm muito til para realizar pginas "escondidas" que realizam uma determinada funo sem mostrar nem texto nem imagens e nos enviam a seguir a outra pgina que na realidade a que ns recebemos no navegador. Aqui pode ser visto uma seqncia de script que nos permitiria usar este mtodo para o caso em que tivermos pginas diferentes para distintas verses de navegadores. Nela empregaremos um objeto que deve nos parecer familiar j que o acabamos de ver (Request.ServerVariables): <% tipo_navegador = Request.ServerVariables("HTTP_USER_AGENT") If Instr(1, tipo_navegador, "MSIE 3", 1) <> 0 then Response.Redirect "MSIE3.asp" ElseIf Instr(1, tipo_navegador, "MSIE 4", 1) <> 0 then Response.Redirect "MSIE4.asp" ElseIf Instr(1, tipo_navegador, "MSIE 5", 1) <> 0 then Response.Redirect "MSIE5.asp" ElseIf Instr(1, tipo_navegador, "Mozilla/4", 1) <> 0 then Response.Redirect "Netscape4.asp" Else Response.Redirect "qualquer.asp" %> Obviamente, acompanhando este script, devemos ter os correspondentes arquivos MSIE3.asp, MSIE4.asp, MSIE5.asp... Cada um deles com as particularidades necessrias para a boa visualizao de nossa pgina em tais navegadores. Artigo por Rubn Alvarez

Exemplo simples de ASP


Vamos ver um simples exemplo realizado em ASP que serve para ilustrar o trabalho desenvolvido at o momento no manual da tecnologia. Este exemplo muito bsico, embora experimenta vrias das utilidades vistas at agora, como o trabalho com loops e os objetos
Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 15

Manuais e recursos para desenvolvimento web www.criarweb.com

request e response, que servem para receber dados e imprimi-los na pgina. O exemplo em concreto se trata de um gerador de tabelas de multiplicar. princpio, quando se acessa ao arquivo, mostra-se a tabela do zero e um formulrio onde podemos selecionar outro nmero e ver sua tabela de multiplicar. Ao enviar o formulrio se acessa a mesma pgina, embora agora apareceria a tabela de multiplicar do nmero selecionado no formulrio. Formulrio para selecionar um nmero Vejamos agora o formulrio que mostra um campo de seleo com os nmeros do 1 ao 10. Este formulrio servir para que o visitante possa selecionar a tabela que deseja ver.
<form name=tb action=tb.asp method=post> <P align=center>Selecione uma opo <SELECT align=center name=tab style="WIDTH: 40px"> <OPTION selected>1</OPTION> <OPTION >2</OPTION> <OPTION >3</OPTION> <OPTION >4</OPTION> <OPTION >5</OPTION> <OPTION >6</OPTION> <OPTION >7</OPTION> <OPTION >8</OPTION> <OPTION >9</OPTION> <OPTION >10</OPTION> </SELECT> <br> <INPUT type=submit value="Ver tabela" > </P> </form>

Temos que observar que a pgina que vai receber o formulrio chama-se tb.asp, segundo se indica no atributo action. O nico campo do formulrio que se envia chamado "tab", e salva o nmero que tenha sido selecionado. Cdigo para mostrar a tabela de multiplicar correspondente Comeamos recebendo o dado do formulrio que nos indica a tabela que o usurio quer visualizar. princpio, no se recebe nenhum dado do formulrio (at que no se envie o formulrio no se sabe que tabela se deseja ver e portanto, havamos dito que se mostraria a tabela do zero). Sendo assim, se no recebo nada, inicio a zero a varivel i, que salva o nmero da tabela de multiplicar a ser mostrada. No caso de que receba algo do formulrio, se inicia a varivel i ao valor recebido no campo "tab".
'se no se est recebendo dados do formulrio if request.form("tab")="" then 'inicio a tabela a mostrar a zero i=0 else 'inicio a tabela a mostrar ao dado recebido no formulrio i=Request.Form ("tab") end if

Agora veremos um loop que mostra a tabela de multiplicar do valor recebido por formulrio. Este loop faz uma repetio desde 1 ao 10 e vo se realizando as multiplicaes e mostrando os resultados.
'mostro a tabela do nmero que recebo do formulrio Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 16

Manuais e recursos para desenvolvimento web www.criarweb.com

Response.Write "Tabela do " & i%><br><br><% 'realizo um loop do 1 ao 10 para mostrar a tabela correspondente for a=1 to 10 Response.Write i &" x " & a & " = " & i*a%> <br> <% next %>

Cdigo completo O cdigo completo do exemplo pode ser visto a seguir. Espero que sirva de ajuda para as pessoas que comeam a dar seus primeiros passos com ASP.
<%@ Language=VBScript %> <HTML> <HEAD><title>Tabelas de Multiplicar....</title> </HEAD> <BODY bgColor=skyblue> <div align="center"> <form name=tb action=tb.asp method=post> <P align=center>Selecione uma opo <SELECT align=center name=tab style="WIDTH: 40px"> <OPTION selected>1</OPTION> <OPTION >2</OPTION> <OPTION >3</OPTION> <OPTION >4</OPTION> <OPTION >5</OPTION> <OPTION >6</OPTION> <OPTION >7</OPTION> <OPTION >8</OPTION> <OPTION >9</OPTION> <OPTION >10</OPTION> </SELECT> <br> <INPUT type=submit value="Ver tabela" name=submit1 > </P> </form> <% 'se no se est recebendo dados do formulrio if request.form("tab")="" then 'inicio a tabela a mostrar a zero i=0 else 'inicio a tabela a mostrar ao dado recebido no formulrio i=Request.Form ("tab") end if 'mostro a tabela do nmero que recebo do formulrio Response.Write "Tabela do " & i%><br><br><% 'realizo um loop do 1 ao 10 para mostrar a tabela correspondente for a=1 to 10 Response.Write i &" x " & a & " = " & i*a%> <br> <% next %> </div> </BODY> </HTML> Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao. 17

Manuais e recursos para desenvolvimento web www.criarweb.com

Artigo por Rubn Alvarez

As famosas cookies Sem dvida este termo ser familiar para muitos. Alguns o leram ou escutaram, mas no sabem do que se trata. Entretanto, outros sabero que as cookies so umas informaes armazenadas por um web site no disco rgido do usurio. Esta informao armazenada em um arquivo do tipo texto que se salva quando o navegador acessa ao site web. possvel, claro, ver estes arquivos. Para os abrir h que ir ao diretrio C:\Windows\Cookies para os usurios de IE 4+ ou a C:\...\Netscape\Users\defaultuser para usurios de Netscape. Como se pode comprovar, na maioria dos casos a informao que se pode obter indecifrvel. A utilidade principal das cookies a de poder identificar ao navegador quando este visitar o site pelas segunda vez e assim, em funo do perfil do cliente dado em sua primeira visita, o site pode se adaptar dinamicamente a suas preferncias (lngua utilizada, cores de tela, formulrios preenchidos total ou parcialmente, re-endereamento a determinadas pginas...). Para criar um arquivo cookies, modificar ou gerar uma nova cookie o podemos fazer a partir do objeto Response com uma sintaxe como a seguinte: Response.Cookies("nome da cookie") = valor da cookie O valor da cookie pode ser uma varivel, um nmero ou uma cadeia delimitada por aspas. importante saber que as cookies tm uma durao igual sesso, ou seja, a menos que o especifiquemos, o arquivo texto gerado se apagar desde o momento em que o usurio tenha abandonado o site por um tempo prolongado (geralmente uns 20 minutos) ou que o navegador tenha sido fechado. Podemos consertar este suposto inconveniente mediante a propriedade Expires: Response.Cookies("nome da cookie").expires = #01/01/2002# Isto nos permite decidir qual a data de vencimento da cookie. H que ter em conta que isto no mais que hipottico j que o usurio livre de apagar o arquivo texto quando quiser. Por outro lado, interessante assinalar que o fato de que definir uma cookie j existente implica o apagamento da antiga. Do mesmo modo, o criar uma primeira cookie traz a gerao automtica do arquivo texto. Para ler as cookies, nada mais fcil que usar o objeto Request da seguinte forma: variable = Request.Cookies("nome da cookie") Se por exemplo quisssemos recuperar do arquivo txt a cookie correspondente lngua do cliente e armazen-lo em nosso script para futuros usos, poderamos escrever: lngua=Request.Cookies("lngua") As cookies so uma ferramenta fantstica para personalizar nossa pgina, mas h que ser cauteloso j que, por uma parte, nem todos os navegadores as aceitam e por outra, se pode deliberadamente impedir ao navegador a criao de cookies. por isso que um complemento e no uma fonte de variveis infalveis para nosso site. Artigo por Rubn Alvarez

Objeto Session Nos programas que vimos at agora, utilizamos variveis que s existiam no arquivo que era executado. Quando carregvamos outra pgina distinta, os valores destas variveis se perdiam, ao menos que no nos incomodssemos de passa-los pela URL ou inscreve-los nas cookies ou em um formulrio para sua posterior explorao. Estes mtodos, embora teis, no so todo prticos que poderiam em determinados casos, nos quais a varivel que queremos

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

18

Manuais e recursos para desenvolvimento web www.criarweb.com

conservar h de ser utilizada em vrios scripts diferentes e distantes uns dos outros. Poderamos pensar que esse problema pode ser resolvido com as cookies j que se trata de variveis que possam ser invocadas em qualquer momento. O problema, como j foi falado, que as cookies no so aceitas nem pela totalidade dos usurios, e nem pela totalidade dos navegadores, o qual implica que uma aplicao que se servisse das cookies para passar variveis de um arquivo a outro no seria 100% infalvel. ento necessrio, o poder declarar certas variveis que possam ser reutilizadas tantas vezes quantas quisermos dentro de uma mesma sesso. Imaginemos um site multilingue, no qual cada vez que quisermos imprimir uma mensagem em qualquer pgina necessitamos saber em qual idioma deve fazer. Poderamos introduzir um script identificador da lngua do navegador em cada um dos arquivos ou ento, declarar uma varivel que fosse vlida para toda a sesso e que tivesse como valor o idioma reconhecido em um primeiro momento. Estas variveis que so vlidas durante uma sesso e que logo so "esquecidas" so definidas com o objeto Session da seguinte forma: Session("nome da varivel") = valor da varivel Uma vez definida, a varivel Session, ser armazenada em memria e poder ser empregada em qualquer script do site web. A durao de uma sesso vem definida por padro em 20 minutos. Isto quer dizer que se em 20 minutos no realizamos nenhuma ao, o servidor dar por finalizada a sesso e todas as variveis Session sero abandonadas. Esta durao pode ser modificada com a propriedade Timeout: Session.Timeout = n de minutos que quisermos que dure Uma forma de apagar as variveis Session sem necessidade de esperar que passe este prazo a partir do mtodo Abandon: Session.Abandon Deste modo todas as variveis Session sero apagadas e a sesso ser finalizada. Este mtodo pode ser prtico quando estivermos fazendo provas com o script e necessitarmos reiniciar as variveis. O que se costuma fazer criar um arquivo no qual se apagam as cookies e se abandona a sesso. Este arquivo ser executado quando quisermos apagar e fazer uma conta nova:
<% @ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Posta a zero</TITLE> </HEAD> <BODY> <% For Each biscoito in Response.Cookies Biscoito="" Next Session.Abandon %> Apagar e conta nova!!<br> <a href="url da pgina de incio">Voltar ao princpio</a> </BODY> </HTML>

Artigo por Rubn Alvarez

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

19

Manuais e recursos para desenvolvimento web www.criarweb.com

Trabalhar com bases de dados em ASP Uma das principais vantagens que apresenta trabalhar com pginas dinmicas poder armazenar os contedos em bancos de dados. Desta forma, podemos organiz-los, atualiz-los e busc-los de uma maneira muito mais simples. ASP nos oferece uma forma muito eficaz de interagir com estes bancos de dados graas ao uso do componente ADO (ActiveX Data Objects) o qual permite acessar a tais bancos de uma forma simples. Este ADO no mais que um conjunto de objetos que, utilizados em conjunto, nos permitem explorar de uma forma muito verstil os bancos de dados de nossa aplicao. No entraremos por este momento em consideraes tericas a respeito. Por outra parte, os scripts ASP devem estabelecer um dilogo com o banco de dados. Este dilogo se realiza a partir de um idioma universal: o SQL (Structured Query Language) o qual comum a todos os bancos de dados. Esta linguagem muito potente e fcil de aprender. Neste manual de ASP nos limitaremos a utilizar as instrues bsicas que sero aprendidas a medida que explicamos as diferentes formas de agir sobre um banco de dados a partir de pginas ASP. O banco de dados que foi utilizado nestes exemplos MS Access. claro que no o nico, mas o mais corrente em pequenos PCs e absolutamente operacional sempre que as tabelas no sejam astronomicamente grandes. Esperamos poder lhes oferecer proximamente tambm um pequeno curso de Access no qual explica os princpios rudimentares necessrios para poder nos servir dele. No obstante, esta aplicao suficientemente fcil e intuitiva como para poder prescindir de tal curso por este momento. Sendo assim, para mergulharmos nos captulos seguintes, temos que cumprir os seguintes requisitos tcnicos: -Instalar o PWS -Linkar o banco de dados com ODBC -Instalar o MS Access (vem dentro do pack Office) -Dispor de um browser e um editor (MS IE e Home Site so nossas humildes recomendaes) Artigo por Rubn Alvarez

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

20

Manuais e recursos para desenvolvimento web www.criarweb.com

Selees em uma tabela Dentro de um banco de dados, organizado por tabelas, a seleo de uma tabela inteira ou de um certo nmero de registros uma operao rotineira. A partir desta seleo pode-se posteriormente efetuar toda uma srie de mudanas ou ento, realizar uma simples leitura. O seguinte script nos permite realizar a leitura da tabela clientes, contida em nosso banco de dados. primeira vista tudo pode nos parecer um pouco complexo, mas nada mais longe da realidade.
<HTML> <HEAD> <TITLE>Leitura de registros de uma tabela</TITLE> </HEAD> <BODY> <h1><div align="center">Leitura da tabela</div></h1> <br> <br> <% 'Antes de mais nada h que instanciar o objeto Connection Set Conn = Server.CreateObject("ADODB.Connection") 'Uma vez instanciado Connection podemos abri-lo e lhe atribumos ao banco de dados onde vamos efetuar as operaes Conn.Open "Meubanco" 'Agora criamos a instruo SQL que nos servir para falar ao BD sSQL="Select * From Clientes Order By nome" 'Executamos a ordem set RS = Conn.Execute(sSQL) 'Mostramos os registros%> <table align="center"> <tr> <th>Nome</th> <th>Telefone</th> </tr> <% Do While Not RS.Eof %> <tr> <td><%=RS("nome")%></td> <td><%=RS("telefone")%></td> </tr> <% RS.MoveNext Loop 'Fechamos o sistema de conexo Conn.Close %> </table> <div align="center"> <a href="insertar.html">Acrescentar um novo registro</a><br> <a href="actualizar1.asp">Atualizar um registro existente</a><br> <a href="apagar1.asp">Apagar um registro</a><br> </div> </BODY> </HTML>

Se o que desejamos interrogar um banco de dados, o primeiro que h que fazer obviamente estabelecer a conexo com ele. Isto se faz a partir do objeto Connection o qual "invocado" ou mais tecnicamente dito instanciado por meio da primeira instruo na qual o objeto toma o nome arbitrrio da variable Conn . O passo seguinte abrir o objeto e atribuir ao banco de dados com o qual deve entrar em contato. Neste caso, chamamos o banco de Meubanco. Este deve de ser o mesmo nome com o qual a batizamos quando configuramos os conectores ODCB, ademais, este nome no tem porque coincidir necessariamente com o nome do arquivo.

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

21

Manuais e recursos para desenvolvimento web www.criarweb.com

Uma vez criada a conexo ao nosso banco de dados, o passo seguinte fazer nossa petio. Esta petio pode ser formulada primeiramente e armazenada em uma varivel (sSQL) para, a seguir, ser executada por meio da instruo seguinte. A petio que realizamos neste caso a de selecionar todos os campos que existem nas tabela clientes (* um asterstico) e ordenar os resultados por ordem alfabtica em relao ao campo nome. O resultado de nossa seleo armazenado na varivel RS em forma de tabela. Para ver a tabela o que h que fazer agora "passear" por esta tabela "virtual" RS a qual possui uma espcie de cursor que, a menos que se especifique outra coisa, aponta ao primeiro registro da seleo. O objetivo agora fazer deslocar-se ao cursor ao longo da tabela para poder l-la em sua totalidade. A forma de faz-lo a partir de um loop Do While o qual foi explicado anteriormente e que o nico que faz executar as instrues compreendidas entre o Do e o Loop sempre que a condio proposta (Not RS.Eof) seja verdadeira. Isto se traduz como "Executar este conjunto de instrues enquanto a tabela de resultados (RS) no chegar ao final" (Eof, End of File). As instrues includas no loop so, por um lado, a impresso no documento dos valores de determinados campos ( =RS("nome do campo")) e por outro, saltar de um registro ao outro mediante a instruo RS.MoveNext. Todo este conjunto de instrues ASP vem em combinao com um cdigo HTML que permite sua visualizao em forma de tabela. Ademais, foram includos uns links que apontam para outra srie de scripts que veremos mais adiante e que formaro em conjunto uma aplicao. interessante ver o cdigo fonte resultante deste script. Neste caso o cdigo que v o cliente sensivelmente mais simples. Artigo por Rubn Alvarez

Criao de um novo registro Neste caso o que buscamos criar, a partir dos dados recebidos de um formulrio, um novo registro em nossa tabela clientes. Teremos ento, dois arquivos diferentes, um que poderia ser um HTML puro no qual introduzimos o formulrio a preencher e que nos envia ao segundo, um script muito parecido ao previamente visto para realizar uma seleo. Aqui esto os dois scripts:

<HTML> <HEAD> <TITLE>Inserir.html</TITLE> </HEAD> <BODY> <div align="center"> <h1>Inserir um registro</h1> <br> <FORM METHOD="POST" ACTION="inserir.asp"> Nombre<br> <INPUT TYPE="TEXT" NAME="nome"><br> Telfono<br> <INPUT TYPE="TEXT" NAME="telefone"><br> <INPUT TYPE="SUBMIT" value="Inserir"> </FORM> </div> </BODY> </HTML>

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

22

Manuais e recursos para desenvolvimento web www.criarweb.com

<HTML> <HEAD> <TITLE>Inserir.asp</TITLE> </HEAD> <BODY> <% 'Recolhemos os valores do formulrio nome=Request.Form("nome") telefone= Request.Form("telefone") 'Instanciamos e abrimos nosso objeto conexo Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Minhabase" 'Agora criamos a sentena SQL sSQL="Insert Into Clientes (nome,telefone) values ('" & nome & "','" & telefone & "')" 'Executamos a ordem set RS = Conn.Execute(sSQL) %> <h1><div align="center">Registro Inserido</div></h1> <div align="center"><a href="lectura.asp">Visualizar o contedo da base</a></div> <% 'Fechamos o sistema de conexo Conn.Close %> </BODY> </HTML>

Como pode ser visto, a forma de operar idntica vista anteriormente para o display de uma tabela. Neste caso introduzimos um link a este primeiro script de leitura para ver como as mudanas se tornaram efetivas. A construo da sentena SQL se faz por fuso dos distintos elementos constitutivos. A forma de fundi-los mediante o smbolo &. Tudo que seja texto tem que ir entre aspas. Seria interessante introduzir uma linha suplementaria em seu cdigo para imprimir a sSQL formada. A linha seria do seguinte tipo: Response.Write sSQL Esta linha seria situada evidentemente depois de haver construdo a sentena. Artigo por Rubn Alvarez

Atualizao de um registro existente Para mostrar como se atualiza um registro presente em nossa base de dados, vamos faze-lo a partir de um caso um pouco mais complexo para comearmos a nos familiarizar com estas operaes. Realizaremos dois scripts que permitem mudar o numero de telefone das distintas pessoas presentes em nossa base. O nome destas pessoas, assim como o novo nmero de telefone, sero recolhidos por meio de um formulrio.

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

23

Manuais e recursos para desenvolvimento web www.criarweb.com

O arquivo do formulrio vai ser desta vez um script ASP no qual efetuaremos uma chamada a nossa base de dados para construir um menu desdobrvel onde apaream todos os nomes. A coisa ficaria assim:
<HTML> <HEAD> <TITLE>Atualizar1.asp</TITLE> </HEAD> <BODY> <div align="center"> <h1>Atualizar um registro</h1> <br> <% 'Instanciamos e abrimos nosso objeto conexao Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Minhabase" %> <FORM METHOD="POST" ACTION="atualizar2.asp"> Nombre<br> <% 'Criamos a sentena SQL e a executamos sSQL="Select nome From clientes Order By nome" set RS = Conn.Execute(sSQL) %> <select name="nome"> <% 'Geramos o menu desdobravel Do While not RS.eof%> <option><%=RS("nome")%> <%RS.movenext Loop %> </select> <br> Telefone<br> <INPUT TYPE="TEXT" NAME="telefone"><br> <INPUT TYPE="SUBMIT" value="Atualizar"> </FORM> </div> </BODY> </HTML>

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

24

Manuais e recursos para desenvolvimento web www.criarweb.com

A maneira de operar para construir o menu desdobrvel a mesma que para visualizar a tabela. De novo empregamos um loop Do While que nos permite mostrar cada uma das opes. O script de atualizao ser muito parecido ao de insero:
<TITLE>Atualizar2.asp</TITLE> </HEAD> <BODY> <% 'Recolhemos os valores do formulrio nome=Request.Form("nome") telefone= Request.Form("telefone") 'Instanciamos e abrimos nosso objeto conexao Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Minhabase" 'Agora criamos a sentena SQL sSQL="Update Clientes Set telefone='" & telefone & "' Where nome='" & nome & "'" 'Executamos a ordem set RS = Conn.Execute(sSQL) %> <h1><div align="center">Registro Atualizado</div></h1> <div align="center"><a href="lectura.asp">Visualizar o conteudo da base</a></div> <% 'Fechamos o sistema de conexao Conn.Close %> </BODY> </HTML>

Nada a comentar a respeito, salvo a estrutura da sentena SQL que neste caso realiza um Update no lugar de um Insert. Aconselhamos, como para o caso precedente imprimir o valor de sSQL de forma a ver como fica a sentena uma vez construda. Artigo por Rubn Alvarez

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

25

Manuais e recursos para desenvolvimento web www.criarweb.com

Excluir um registro Outra das operaes fundamentais que podem ser realizadas sobre uma base de dados o apagar um registro. Para faz-lo, SQL nos prope sentenas do tipo Delete. Vejamos com um exemplo, aplicado a nossa agenda. Primeiro, criaremos um menu desdobrvel dinmico como para o caso das atualizaes:
<HTML> <HEAD> <TITLE>Apagar1.asp</TITLE> </HEAD> <BODY> <div align="center"> <h1>Apagar um registro</h1> <br> <% 'Instanciamos e abrimos nosso objeto conexao Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Minhabase" %> <FORM METHOD="POST" ACTION="apagar2.asp"> Nome<br> <% 'Criamos a sentena SQL e a executamos sSQL="Select nome From clientes Order By nome" set RS = conn.execute(sSQL) %> <select name="nome"> <% 'Geramos o menu desdobravel Do While not RS.eof%> <option><%=RS("nome")%> <%RS.movenext Loop %> </select> <br> <INPUT TYPE="SUBMIT" value="Apagar"> </FORM> </div> </BODY> </HTML>

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

26

Manuais e recursos para desenvolvimento web www.criarweb.com

O seguinte passo fazer efetiva a operao a partir da execuo da sentena SQL que construmos a partir dos dados do formulrio:
<HTML> <HEAD> <TITLE>Apagar2.asp</TITLE> </HEAD> <BODY> <% 'Recolhemos os valores do formulario nome=Request.Form("nome") 'Instanciamos e abrimos nosso objeto conexao Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Minhabase" 'Agora criamos a sentena SQL sSQL="Delete From Clientes Where nome='" & nome & "'" 'Executamos a ordem set RS = Conn.Execute(sSQL) %> <h1><div align="center">Registro Apagado</div></h1> <div align="center"><a href="leitura.asp">Visualizar o conteudo da base</a></div> <% 'Fechamos o sistema de conexao Conn.Close %> </BODY> </HTML>

Artigo por Rubn Alvarez

ActiveX Data Object Uma das caractersticas mais interessantes de ASP sua facilidade para o manejo de banco de Dados que residem no servidor. Isto o conseguimos mediante o uso de ADO (ActiveX Data Object) de uma forma fcil, rpida e com um mnimo consumo de recursos do sistema. ADO usa ODBC para o acesso ao banco de dados, o que nos torna independente da tecnologia das mesmas; isto implica que podemos mudar a tecnologia do banco de dados e se mantemos a mesma estrutura de dados, nossas aplicaes desenvolvidas com ADO podem continuar funcionando sem mudar nenhuma linha de cdigo. Para o desenvolvimento podemos criar nossas fontes de dados em Microsoft Access, porm em ambientes de produo com grande afluncia de clientes deveremos de usar gerenciadores de bancos de dados mais potentes, como Oracle, Microsoft Sql Server, etc. ADO est formado por vrios objetos organizados de forma hierrquica (cada um deles com seus mtodos e propriedades especficos) dos quais vamos estudar os que considero mais interessantes.

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

27

Manuais e recursos para desenvolvimento web www.criarweb.com

Objetos Connection Proporciona uma conexo a um banco de dados ODBC desde uma pgina ASP. Esta conexo nos permitir efetuar as operaes que desejarmos sobre o banco de dados. o objeto primrio de ADO, nenhum dos outros objetos pode existir se este no for declarado de forma explcita ou implcita (em alguns dos exemplos veremos que no existe uma declarao do objeto Connection, porm devemos ter em conta que sempre existe, se for necessrio ADO o declarar por si mesmo). A conexo terminar quando ns a fechemos explicitamente com o mtodo close ou ento quando termine a execuo da pgina ASP. Error uma coleo na que se armazenam os possveis erros do objeto Connection. Command Representa um comando SQL que se executa contra o banco de dados declarado no objeto Connection. Se o resultado desse comando for um conjunto de dados, estes se armazenaro em um objeto de tipo Recordset. Recordset Representa uma tabela ou o resultado de uma consulta executada contra o banco de dados. Ser nossa interface natural contra o banco de dados. Como em todo modelo relacional, os dados se so apresentados em filas e colunas. Field O objeto Field representa a informao relativa a um campo de um Recordset. Contem a coleo Fields que representa todos os campos da tabela, cada membro dessa coleo um objeto de tipo Field. Artigo por Pedro Rufo Martin

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

28

Manuais e recursos para desenvolvimento web www.criarweb.com

Objeto Connection (propriedades e mtodos) J comentamos que o objeto Connection nos proporciona uma conexo a um banco de dados desde uma pgina ASP; agora veremos como se usa , assim como suas propriedades e mtodos. Para estabelecer a conexo o primeiro que fazemos criar o Objeto Connetion por meio da propriedade CreateObject de objeto Server: <% Set conexion=Server.CreateObject("ADODB.Connection")%> Uma vez estabelecida a instncia do objeto passamos a configur-lo mediante suas distintas propriedades e mtodos. Propriedades: ConnectionString Especifica a referncia ao banco de dados com o qual queremos conectar, contendo em uma cadeia de texto a informao necessria para efetuar essa conexo mediante duplas de valores separadas por ";". Os valores que podemos atribuir so:

Data Source: Usuario: Password:


Exemplo:

DSN=Nome ODBC do Banco de Dados UID=Nome de Usuario PWD=Password do usurio para o banco de dados

<% conexion.ConnectionString="DSN=MIOdbc;UID=pepe;PWD=1234" %> Mode Especifica as permisses da conexo. Alguns dos valores mais habituais que podemos atribuir so: 1 2 3 Estabelece permisso s de Leitura Estabelece permisso s de Escritura Estabelece permisso de Leitura/Escritura

Exemplo: <% conexion.Mode=3 %> Mtodos: BeginTrans Abre uma transao; todas as operaes que realizarmos a partir desse momento no sero efetivas at que no fechemos a transao. Exemplo: <% conexion.BeginTrans %> Close Fecha o objeto Exemplo: <% conexao.close %>

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

29

Manuais e recursos para desenvolvimento web www.criarweb.com

CommitTrans Fecha uma transao tornando efetivas as mudanas efetuadas dentro dela.; Exemplo: <% conexion.CommitTrans %> Execute Executa uma instruo SQL contra o banco de dados. Exemplo: <% Set resultado=conexao.execute (Select * from amigos) %> Open Abre a conexo com os parmetros especificados nas propriedades. Exemplo: <% conexao.open %> RollBackTrans Desfaz todas as mudanas efetuadas no banco de dados desde o incio da transao. Exemplo: <% conexao.RollBackTrans %> Artigo por Pedro Rufo Martin

Objeto Command de ASP (Propriedades e mtodos) Propriedades: ActiveConnection Especifica o objeto connection ao que se refere este objeto Command. Sintaxe objcommand.activeconnection=Nome da conexo Exemplo: <%Set conexao=Server.CreateObject("ADODB.Connection") conexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234" conexao.open objcommand.activeconnection=Conexao %> CommandText uma cadeia de texto com o comando a executar. Sintaxe objcommand.Commandtext=comando sql a executar Exemplo:

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

30

Manuais e recursos para desenvolvimento web www.criarweb.com

<%Set conexao=Server.CreateObject("ADODB.Connection") conexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234" conexao.open Set objcommand=Server.CreateObject("ADODB.Command") objcommand.activeconnection=Conexao objcommand.commandtext="delete * from socios where pago=0" %> Mtodos: Execute Executa o comando armazenado na propriedade CommandText.. Sintaxe objcommand.execute Exemplo: <%Set conexao=Server.CreateObject("ADODB.Connection") Co0nexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234" conexao.open Set objcommand=Server.CreateObject("ADODB.Command") objcommand.activeconnection=Conexao objcommand.commandtext="delete * from socios where pago=0" objcommand.execute%> Outro Exemplo armazenado em um recordset: <%Set conexao=Server.CreateObject("ADODB.Connection") conexao.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234" conexao.open Set objcommand=Server.CreateObject("ADODB.Command") objcommand.activeconnection=Conexao objcommand.commandtext="select * from socios where codigo > 100" Set resultado=Server.CreateObject("ADODB.recordset") set resultado=objcommand.execute() %> Artigo por Pedro Rufo Martin

Objeto Application O objeto Application se utiliza para compartilhar informao entre todos os usurios de uma aplicao (entendemos por uma aplicao ASP todos os arquivos .asp de um diretrio virtual e seus subdiretrios. Como vrios usurios podem compartilhar um objeto Application, existem os mtodos Lock e Unlock para assegurar a integridade do mesmo (vrios usurios no podem modificar uma mesma propriedade ao mesmo tempo). Lock O mtodo Lock assegura que s um cliente pode modificar ou ter acesso s variveis de Application ao mesmo tempo. Sintaxe: ApplicationLock Unlock

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

31

Manuais e recursos para desenvolvimento web www.criarweb.com

O mtodo Unlock desbloqueia o objeto Application para que possa ser modificado por outro cliente depois de ter se bloqueado mediante o mtodo Lock. Se no se chama a este mtodo de forma explcita, o servidor Web desbloqueia o objeto Application quando o arquivo .asp termina ou transcorre seu tempo de espera. Sintaxe: Application.Unlock Exemplo: <% Application.Lock Application("visitas") = Application("visitas")+1 Application.Unlock %> Voc o visitante nmero <%= Application("visitas") %> Pode-se ver um exemplo em ao No exemplo anterior o mtodo Lock impede que mais de um cliente tenha acesso varivel Visitas ao mesmo tempo. Se a aplicao no tivesse se bloqueado, dois clientes poderiam tentar incrementar simultaneamente o valor da varivel Visitas. O mtodo Unlock libera o objeto bloqueado de forma que o prximo cliente pode incrementar a varivel. Nota Importante: No objeto Application podem se armazenar matrizes, porm estas so armazenadas como um objeto, ou seja, no podemos armazenar ou recuperar um s elemento da matriz, se no que carregaremos ou recuperaremos a varivel com a matriz completa Exemplo: <%Dim parametros(2) parametros(0) = "verde" parametros(1) = 640 parametros(2) = 480 Application.Lock Application("Param") =parametros%> Application.UnLock com estas instrues armazenaramos TODA a matriz na varivel de aplicao "Param" Para recuperar os valores da matriz primeiro recuperamos esta em uma varivel normal <%Apliparam=Application("Param")%> Agora poderemos operar com os valores da tabela nas variveis Apliparam(0), Apliparam(1) e Apliparam(2) Artigo por Pedro Rufo Martin

Objeto TextStream O objeto TextStream nos serve para manejar arquivos de texto no servidor. A criao deste objeto se realiza a partir de um objeto FileSystemObject e graas a algum de seus mtodos. Uma vez criado, dispomos de um objeto TextStream que representa um arquivo fsico aberto, j seja para leitura ou escritura. Este objeto dispe de 9 mtodos: Mtodos: Close Fecha o arquivo.

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

32

Manuais e recursos para desenvolvimento web www.criarweb.com

Sintaxe <% MeuArquivo.close%> Read L e devolve um nmero especifico de caracteres. Sintaxe <% MeuArquivo.read(nmero de caracteres) %> ReadAll L e devolve um arquivo completo. Sintaxe <% MeuArquivo.ReadAll %> ReadLine L e devolve uma linha completa de um arquivo de texto. Sintaxe <% MeuArquivo.ReadLine%> Skip Salta um nmero determinado de caracteres ao ler um arquivo. Sintaxe <% MeuArquivo.Skip(nmero de caracteres) %> SkipLine Salta uma linha ao ler um arquivo. Sintaxe <% MeuArquivo.SkipLine %> Write Escreve uma cadeia de caracteres e um arquivo. Sintaxe <% MeuArquivo.Write("texto_entre_aspas") %> WriteLine Escreve uma cadeia de caracteres em um arquivo adicionando ao final um caractere de fim de linha. Sintaxe <% MeuArquivo.WriteLine("texto_entre_aspas") %> WriteBlankLines Escreve um nmero especifico de caracteres de nova linha. Sintaxe <% MeuArquivo.WriteBlankLines(numero_de_linhas) %> Exemplo de escritura em um arquivo <HTML> <HEAD><TITLE>Exemplo de FSO e TextStream</TITLE></HEAD> <BODY> <% Set Mfso=Server.CreateObject("Scripting.FileSystemObject") Set MArquivo=Mfso.OpenTextFile("c:\data.txt",2,true) MArquivo.writeline "Ol Mundo, hoje :" MArquivo.write date() MArquivo.close %> Criado arquivo em C:\data.txt com a data de hoje </BODY>

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

33

Manuais e recursos para desenvolvimento web www.criarweb.com

</HTML> Artigo por Pedro Rufo Martin

Dando formato aos nmeros (Funo FormatDateTime) Descrio Devolve uma expresso com formato de nmero. Sintaxe FormatNumber(Expresso [,NmDgitosDepoisDeDecimal [,IncluirDgitoInicio [,UsarParntesesParaNmerosNegativos [,GrupoDgitos]]]]) A sintaxe da funo FormatNumber tem as seguintes partes:
Parte Expresso NmDgitosDepoisDeDecimal Descrio Requerido. Expresso a qual se vai aplicar formato. Opcional. Valor numrico que indica quantos lugares se mostram a direita do decimal. O valor predeterminado -1, que indica que se usa a configurao regional do computador. Opcional. Constante de trs estados que indica se se deve mostrar ou no um zero inicial para valores fracionrios. Consulte a seo Valores para saber quais so os valores permitidos. Opcional. Constante de trs estados que indica se se devem fechar ou no os valores negativos entre parnteses. Consulte a seo Valores para saber quais so os valores permitidos. Opcional. Constante de trs estados que indica se se devem agrupar ou no os nmeros com o delimitador de grupos especificado no Painel de controle. Consulte a seo Valores para saber quais So os valores permitidos.

IncluirDgitoInicio

UsarParntesesParaNmerosNegat ivos GrupoDgitos

Valores Os argumentos IncluirDgitoInicio, UsarParntesesParaNmerosNegativos e GrupoDgitos tm os seguintes valores:


Constante TristateTrue TristateFalse TristateUseDefa ult Valor -1 0 -2 Descrio True False Usa a configurao regional do computador.

Comentrios Quando se omitem um ou mais dos argumentos opcionais, a configurao regional do computador proporciona os valores dos argumentos omitidos. Nota: Toda a informao de configurao e valores se obtm da ficha Nmero de Configurao regional. O seguinte exemplo usa a funo FormatNumber para dar formato a um nmero para que tenha quatro lugares decimais: Function ExemploDeFormatNumber Dim MeuAngulo, MinhaSecante, MeuNumero MeuAngulo = 1.3 ' Define um ngulo em radianos. MinhaSecante = 1 / Cos(MeuAngulo) ' Calcula a secante.

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

34

Manuais e recursos para desenvolvimento web www.criarweb.com

ExemploDeFormatNumber = FormatNumber(MinhaSecante,4) ' D formato a MinhaSecante para que tenha quatro lugares decimais. End Function Artigo por Pedro Rufo Martin

Uso das Cookies Permite-nos integrar funcionalidades como: Personalizao de opes de cliente Personalizao em funo das caractersticas do cliente Cestas de compra Etc.

As cookies se armazenam nas mquinas dos clientes, isto h que ter em conta pelas possveis faltas de integridade de dados que puderam ocorrer. ASP implementa a possibilidade de usar cookies para criar ou destruir informao que se armazena nas mquinas dos clientes. As cookies se transmitem nos cabealhos quando se realiza a comunicao http e o navegador o encarregado de armazen-las. As cookies se implementam como uma coleo e se usam mediante os objetos integrados Request e Response. Tempo de vida de uma cookie Por padro, uma cookie tem um mbito de sesso, ou seja, tem o tempo de vida o qual est ativo o navegador. Podemos variar o tempo de vida de uma cookie mediante o atributo expires Sintaxe: Response.Cookies(cookie)[(chave)|.atributo] = valor Request.Cookies(cookie)(chave) Exemplos: Enviar uma cookie simples <% Response.cookies("cor")="roxo" %> Recuperar o valor dessa cookie <% CorFavorita=Request.cookies("cor")%> Enviar uma cookie com chaves <% Response.cookies("cor")("fundo")="roxo"%> <% Response.cookies("cor")("texto")="branco"%> Recuperar uma cookie com chaves <% Request.cookies("cor")("fundo")%> Recuperaria o valor roxo <% Request.cookies("cor")("texto") %>

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

35

Manuais e recursos para desenvolvimento web www.criarweb.com

Recuperaria o valor branco Nota: Quando usamos Response para escrever uma cookie, se esta j existia se substitui. Atributos: Expires Estabelece o dia de vencimento de uma cookie Exemplos: Fazer com que uma cookie expire imediatamente <% Response.cookies(cookie).expires="1/1/1990"%> Fazer com que uma cookie expire certo dia <% Response.cookies(cookie).expires="12/12/2008"%> Artigo por Pedro Rufo Martin

Manual Programao em ASP: http://www.criarweb.com/manuais/programacao_asp/ Os manuais de CriarWeb.com tm copyright dos autores. No reproduzir sem autorizao.

36

Vous aimerez peut-être aussi