Escolar Documentos
Profissional Documentos
Cultura Documentos
Asp PDF PDF
Asp PDF PDF
Aplicaes cliente-servidor
Consiste na diviso de processos entre estaes clientes e servidores, com a finalidade de buscar
melhor performance, menor tempo de resposta e maior facilidade de manuteno.
Active Server Pages so pginas web que possuem contedo dinmico. Tais pginas consistem
em arquivos de extenso .asp que contm combinaes de Server-Side scripts e tags HTML.
Todo o cdigo de programao existente em pginas Asp executado no servidor, e este retorna
ao cliente somente respostas em HTML padro o que faz com que aplicaes Asp possam ser
acessadas por qualquer browser existente no mercado. Uma aplicao feita em Asp pode ainda
conter linhas de Client-Side script, que sero executados na estao cliente. Essas pginas devem
estar hospedadas num servidor Microsoft Information Server.
Pgina 1
Captulo I Conceitos Introdutrios
Como os arquivos asp so arquivos do tipo texto (ASCII), eles podem ser escritos em um editor de
textos comum Edit ou Notepad, por exemplo. Existe tambm o MS-Visual Interdev, que
proporciona um ambiente mais agradvel de desenvolvimento, mas exige os mesmos
conhecimentos do programador.
Pr-Requisitos de funcionamento
Pginas asp necessitam ser hospedadas no servidor Web da Microsoft: o Internet Information
Server (IIS) na verso 3 ou superior. Este servidor deve ser instalado numa mquina NT Server 4.
Para o IIS 3, ainda preciso instalar um pacote adicional do Asp para que as aplicaes
funcionem. A partir da verso 4 este pacote j vem incorporado ao IIS.
Pgina 2
Captulo I Conceitos Introdutrios
Resumo
Dicas
Voc pode tornar suas aplicaes muito mais acessveis atravs da Internet. Seus clientes
ficaro muito mais satisfeitos ao encontrar uma aplicao disponvel em qualquer parte do
mundo, em qualquer hora, em qualquer microcomputador.
Pense bem antes de adicionar client-side scripts em suas pginas. Voc poder tornar
uma aplicao perfeita em algo inacessvel para alguns usurios.
?
Que browsers suportam ASP?
Se a aplicao no possuir client-side script, todos os browsers suportam ASP. Isto
acontece pelo fato das pginas ASP serem processadas pelo servidor. O que o
cliente recebe somente cdigo HTML padro.
Meu NT Server j veio com o IIS 2. Posso utiliz-lo para Active Server Pages?
No. A tecnologia Asp foi incorporada somente a partir da verso 3.
Pgina 3
Captulo II O Internet Information Server
O Microsoft Internet Information Server (IIS) o servidor web da Microsoft. nele que devemos
configurar os alicerces das nossas aplicaes ASP, criando diretrios virtuais, definindo
permisses de acesso e disponibilizando as aplicaes. atravs do Management Console do IIS
que faremos estas configuraes.
Instalao do IIS
A partir destes softwares e pacotes, podemos iniciar a instalao do IIS que na verdade, faz parte
do pacote Option Pack 4.0 da Microsoft.
Se voc observar o
contedo desta tela,
ver que um dos itens
que ser instalado o
Internet Information
Server (IIS).
Clique em Next.
Pgina 4
Captulo II O Internet Information Server
Especifique o tipo de
instalao a ser feita.
Como exemplo,
estaremos utilizando a
instalao customiza,
onde podemos escolher
os componentes a
serem instalados.
Pgina 5
Captulo II O Internet Information Server
Depois de selecionados
os componentes, ser
solicitado ao
administrador, o local
onde os pacotes devem
ser instalados. Como
indica a figura ao lado.
Estes so os passos para a instalao do IIS. O prximo item a vermos ser como utilizar o
Management Console para administrar os sites criados.
O Management Console
Pgina 6
Captulo II O Internet Information Server
Em verses anteriores do IIS, no era possvel criar vrios Web Sites com o mesmo IP. Nesta
verso j possvel criar vrios Web Sites com o mesmo IP e ainda administr-los de forma
diferente.
Para criar um novo site, clique com o boto direito do mouse sobre o nome da mquina na qual
deve residir este site, selecione a opo New New Site. A tela abaixo ser mostrada:
Pgina 7
Captulo II O Internet Information Server
Depois de criado o novo site, voc pode alterar as configuraes. A tela baixo mostrada quando
voc executa as propriedades de um Web Site, para isso, clique com o boto direito do mouse no
Web Site e selecione a opo Properties.
Pgina 8
Captulo II O Internet Information Server
Item Descrio
Web Site Configurao do IP, portas de conexo e
capacidades de login.
Security Accounts Configurao das permisses de usurios.
Performance Estabele performance, largura de banda e
configuraes de conexo.
ISAPI Filters Gerenciamento dos filtros ISAPI.
Home Directory Configurao de permisso de acesso e
configuraes das aplicaes.
Documents Configurao de documentos e rodaps
padres.
Directory Security Configurao de autenticao da senha,
segurana de comunicao e restries TCP/IP.
Custom Erros Definio e configurao das mensagens de
erro do HTTP.
Voc tambm pode alterar as propriedades padro (Default) para todos os Sites criados. Para isso,
selecione o nome da mquina onde voc deve criar os Web Sites. A tela a seguir ser mostrada:
Pgina 9
Captulo II O Internet Information Server
Um diretrio fsico simplesmente o local onde est situada uma aplicao (conjunto de
arquivos ASP e pginas HTML) no servidor, como por exemplo c:\inetpub\apps\ . Um diretrio
virtual nada mais do que um atalho onde o IIS aponta para um diretrio fsico, o que no permite
desse modo que se visualize todo o path dos arquivos acessados. Um exemplo de diretrio virtual
seria www.servidor.unicamp.br/dirvirtual .
atravs do Management Console que podemos criar diretrios virtuais e ajustar as
propriedades de cada um deles.
Para criar um novo diretrio virtual, clique com o boto direito do mouse no Web Site onde est
localizado este diretrio e selecione a opo New Virtual Directory. A tela a seguir ser
mostrada:
Pgina 10
Captulo II O Internet Information Server
As propriedades de um diretrio virtual um pouco diferente das propriedades dos Sites, pois voc
no precisa configurar especificaes do servio HTTP. Para visualizar as propriedades dos
diretrios virtual, selecione-o e clique com o boto direito do mouse, escolha a opo Properties.
Pgina 11
Captulo II O Internet Information Server
Permisses de acesso
neste item esto definidas
as permisses de acesso
que os usurios possuem
para a aplicao localizada
no diretrio
e:\InetPub\DaniM\Outros
Permisses de Script
Neste item, voc deve
configurar as permisses
para execuo de scripts.
Para que um ASP possa
ser rodado preciso, pelo
menos, permisso de
Scritp.
Requisitos de segurana sero abordados em outro captulo. Por enquanto, vimos apenas como
configurar o IIS para reconhecer Sites e aplicaes.
Pgina 12
Captulo II O Internet Information Server
Resumo
Para instalar o IIS 4.0 preciso do Windows NT Server 4.0, Internet Explorer 4.0 ou
superior e Option Pack 4.0.
O Management Console a interface utilizada para a administrao do IIS.
possvel criar vrios Web Sites para o mesmo endereo de IP e administr-los de
forma diferente.
Com os diretrios virtuais possvel criar um atalho especfico para sua aplicao
dentro de um determinado Web Site.
Para que seja possvel executar scripts (CGIs, ASP) a partir de um endereo, preciso
configurar as permisses de acesso para, pelo menos, Allow Script Access.
Pgina 13
Captulo III Forms e ASP
A relao entre form HTML e ASP muito importante porque a partir de formulrio podemos
disparar aes, e nesta ao que iremos chamar uma pgina ASP. Com isso podemos consistir
os campos, passar parmetros de uma pgina para outra.
ACTION: neste item, voc deve especificar o diretrio e nome do arquivo ASP a ser disparado.
METHOD: define como seus dados sero enviados para o servidor. Existem vrios mtodos, mas
o que iremos utilizar com mais frequncia sero dois: GET e POST:
Get
Utilizando este mtodo de envio dos dados, os dados que esto sendo enviados sero mostrados
pelo browser.
Post
Utilizando este mtodo, os dados sero enviados para o ASP determinado no parmetro ACTION.
Uma mesma pgina HTML ou ASP pode conter vrios FORMS disparando diferentes pginas
ASP. Observao: a pgina que faz a chamada para uma outra pgina ASP no necessariamente
precisa ser uma pgina ASP, pode ser um HTML. Exemplo:
Pgina 14
Captulo III Forms e ASP
<html>
<head>
<title>Untitled Normal Page</title>
</head>
<body bgcolor="#FFFFFF">
</body>
</html>
Observe que no exemplo acima estamos utilizando dois formulrios e cada um deles faz uma
chamada para um ASP diferente. Vamos detalhar o cdigo HTML:
Neste form, inclumos um boto do tipo Submit que deve disparar a ao do Form. A ao do Form
(ACTION) est definido para chamar um ASP chamado horas.asp que se encontra no mesmo
diretrio do HTML. Quando o arquivo estiver em um diretrio diferente do diretrio da pgina que
fez a chamada, necessrio que ele seja indicado.
O cdigo abaixo faz a chamada a outro ASP, para isso definimos um outro formulrio:
Pgina 15
Captulo III Forms e ASP
<html>
<head>
<title>Horas ... </title>
</head>
<body bgcolor="#FFFFFF">
So exatamente <%=Time %>.
</body>
</html>
Neste caso, a pgina obrigatoriamente deve ser nomeada com a extenso ASP pois contm
cdigo VBScript a ser interpretado pelo servidor. Dvida: qual o cdigo a ser interpretado pelo
servidor?
<%=Time %>
O ASP da Data:
<html>
<head>
<title>Data de Hoje ... </title>
</head>
<body bgcolor="#FFFFFF">
Hoje <% = Date %>.
</body>
</html>
o mesmo caso que o arquivo das Horas, tambm precisa ser nomeado com a extenso ASP,
pois a linha <% = Date %> necessariamente ser interpretada pelo servidor. O restante do cdigo
HTML.
Resumo
Podemos definir vrios formulrio em um arquivo HTML para disparar vrios ASP.
Um arquivo comum HTML pode disparar um ASP, porm um arquivo com cdigos que
devem ser interpretados pelo servidor, deve ser nomeado com a extenso ASP.
Para disparar um ASP a partir de um formulrio preciso definir o parmetro ACTION.
Existem dois mtodos diferentes para disparar um ASP: GET (mostra os dados no
browser) e POST (no mostra os dados no browser).
Pgina 16
Captulo IV O que VBScritp?
Script
O Visual Basic Script Language uma das muitas possibilidades de linguagem Script que rodam
num servidor e, para o IIS, ela a linguagem default (padro). Desenvolver aplicaes utilizando
esta linguagem no um bicho de sete cabeas. Vejamos algumas caractersticas da linguagem:
similar ao VBA (Visual Basic Application) linguagem criada para fornecer aos
aplicativos outras funcionalidades e Visual Basic.
Permite a manipulao de strings, datas, numricos
Permite a utilizao de todos os comandos do Visual Basic, porm no permite a
manipulao de banco de dados e acesso aos perifricos.
A manipulao de banco de dados feita atravs do objeto ADO, o VBScript apenas
cria instncias deste objeto, a partir da, voc pode utilizar os mtodos deste objeto
para manipular os dados.
Tem um mecanismo de comunicao com servidores de objetos COM, como o
Microsoft Exchange Server, Microsoft Index Server, Database Servers.
Antes de mais nada, temos que ter em mente que alguma coisa tem que interpretar os cdigos do
VBScript. O responsvel por esta interpretao o IIS (Internet Information Server), por isso
entendemos que o cdigo deve ser interpretado no Servidor e no no cliente que s ter o
browser.
Para que o cdigo seja interpretado pelo Servidor, preciso seguir algumas instrues:
Pgina 17
Captulo IV O que VBScritp?
Quando seu script possuir HTML e cdigo VBScript o servidor saber qual informao
dever ser retornada para o cliente (browser). Por exemplo:
Com a linha acima, o HTML a ser retornado ser (imaginemos que o dia de hoje seja
20/08/1999):
</SCRIPT>
preciso especificar a linguagem script a ser utilizada e onde esta ser interpretada. A
partir disto, s fazer a chamada de alguma parte do HTML. No caso acima, o script
que estiver entre a tag <SCRIPT> </SCRIPT> deve ser escrito na linguagem VBScript
e ser interpretada por um servidor IIS. Esta tag muito utilizada para criar funes e
subrotinas. Por exemplo:
Esta funo retornar a data do sistema no Servidor. Para fazer a chamada desta
funo, ser necessrio utilizar as tags <% %>. Por exemplo:
Outra alternativa disponvel no IIS para retornar valores direto para o HTML, sem
utilizar a chamada acima, usando o Response.Write (mais adiante iremos estud-lo
detalhamente):
Pgina 18
Captulo IV O que VBScritp?
A pergunta imediata que voc faria: como possvel retornar um HTML sendo que em
momento algum foi feita a chamada para a funo? Bem, quando feito um pedido ao
servidor pela execuo de um ASP, o servidor executa todas as funes declaradas
no ASP, ento podemos concluir que esta funo tambm foi executada. Como o
Response.Write retorna diretamente para o HTML o contedo do texto, ser mostrado
para o usurio o texto definido.
O prximo passo para a criao de uma pgina ASP introduzir o cdigo HTML. Por
exemplo:
<HTML>
<BODY>
</BODY>
</HTML>
Este cdigo inteiro constitui uma pgina ASP, na qual voc mesclou cdigo em HTML e
VBScript. O Servidor saber que o cdigo entre <% %> ser interpretado e no deve ser
mostrado para o cliente, apenas seu resultado. Neste caso, a pagina a ser retornada para
o browser ser:
Pgina 19
Captulo IV O que VBScritp?
Lembrando que os arquivos com cdigo VBScript devem ser nomeados com a extenso
ASP, por exemplo: primeiro_programa.asp. Desta forma, o IIS entender que o pedido foi
feito a partir de uma pgina ASP.
<HTML>
<BODY>
<CENTER><B>A data de hoje <% = RetornaData() %>.</B></CENTER>
</BODY>
</HTML>
Ento, vimos como fazer para um script - utilizando o VBScript rodar no servidor. Mas, e
se voc quiser fazer consistncias de tela para o usurio e que estas estejam definidas na pgina
corrente, ou seja, no haver um pedido para o servidor, o cdigo dever ser executado no
browser.
Com o VBScript possvel criar rotinas que sejam executadas pelo cliente. Porm, dois
aspectos devem ser observados quando decidimos programar subrotinas e funes para rodar no
browser:
Em nosso caso, ser necessrio que o seu browser seja o Internet Explorer 4.0 ou
superior.
A programao deve ser baseada nos eventos dos objetos do formulrio e do prprio
formulrio. Por exemplo: ONCLICK, CHANGE, GOTFOCUS.
Pgina 20
Captulo IV O que VBScritp?
Exemplo de Cdigo:
<html>
<head>
<title>Cdigo que roda no Cliente.</title>
</head>
<script language="VBScript">
SUB BOTAO1_ONCLICK()
RodarCli.BOTAO1.Value = "Mudamos o Value!"
END SUB
</script>
<body bgcolor="#FFFFFF">
</body>
</html>
Esta a pgina aberta antes de clicar o boto Depois de clicar o boto da pgina sua
Vamos mudar o value! descrio alterada para Mudamos o Value
O HTML:
Nesta parte, estamos montando o boto. Para que a subrotina seja executada, o boto
deve ser criado em um form (formulrios, mais adiante estaremos estudando de forma mais
detalhada), deve ser definido um nome para este objeto e seu tipo deve ser button. Depois de
definir o objeto que deve disparar a ao, voc deve programar a subrotina:
Pgina 21
Captulo IV O que VBScritp?
<script language="VBScript">
SUB BOTAO1_ONCLICK()
RodarCli.BOTAO1.Value = "Mudamos o Value!"
END SUB
</script>
Esta sub-rotina est sendo executada pelo browser, observe que no configuramos a Tag
<SCRIPT> com o parmetro RUNAT.
O evento que deve disparar a ao ser o evento ONCLICK, ou seja, quando clicarmos no
boto o cdigo escrito ser disparado.
Para fazer a referncia ao objeto do formulrio, voc deve seguir a sintaxe abaixo:
Por exemplo:
RodarCli.BOTAO1.Value
Resumo
Dicas
preciso prestar bastante ateno quando scripts so definidos para rodarem nos
browsers, pois alguns scripts apenas so interpretados por determinado browser e verso.
Por exemplo:
Pgina 22
Captulo V Variveis
CAPTULO V VARIVEIS
Enquanto o Visual Basic suporta muitos tipos de dados (variveis), o VBScript apenas suporta o
tipo Variant. Este tipo nico porque suporta todos os tipos suportados pelo Visual Basic: integer,
double, string, date and currency. O tipo Variant assume o tipo de varivel dependendo da
atribuio feita a ele. Por exemplo, declaramos um varivel chamada teste:
Dim teste Esta varivel do tipo Variant, pois no tem
a especificao do seu tipo:
SubTipos (Subtypes)
O tipo Variant consiste em pequenas unidades chamadas Subtipos (Subtypes). Estes subtipos
identificam como um valor armazenado pela varivel definida como Variant. A tabela abaixo
descreve os subtipos utilizados no VBScript 2.0:
SubTipo Descrio
Empty Valor 0 (zero) para variveis numricas e comprimento zero ( ) para
variveis string.
Null Variant possui um valor que no vlido.
Boolean Verdadeiro ou Falso.
Byte Inteiro com valores entre 0 a 255.
Integer Inteiro com valores entre 32,768 at 32,767.
Currency Tipo moeda. Valores entre 922,337,203,685,477.5808 at
922,337,203,685,477.5807.
Long Inteiro com valores entre 2,147,483,648 at 2,147,483,647.
Single Ponto Flutuante com preciso simples. Valores entre: -3.402823E38 at -
1.401298E-45 para nmeros negativos; 1.401298E-45 at 3.402823E38
para nmeros positivos.
Double Ponto Flutuante com dupla preciso. Valores entre:
-1.79769313486232E308 at -4.94065645841247E-324 para valores
negativos; 4.94065645841247E-324 at 1.79769313486232E308 para
valores positivos.
Date (Time) Contem um nmero que representa uma data entre 01/01/100 at
31/12/9999.
String Contem um comprimento varivel de texto que pode chegar at 2 bilhes de
caracteres.
Object Contem um objeto
Pgina 23
Captulo V Variveis
Antes de descrever as funes, precisamos saber para que serve uma funo de converso de
tipo. Estas funes so utilizadas para forar uma varivel Variant assumir um subtipo especfico.
A partir do momento que as pginas ASP comearam a ser distribudas pela Internet, ou seja,
pessoas do mundo inteiro acessando sua pgina, as configuraes de datas, moeda passaram a
ser um fator preocupante. Pois estas configuraes so recuperadas da opo Configuraes
Regionais do Painel de Controle da mquina onde o VBScript est sendo executado. Como o
VBScript, na maioria das vezes, executado em um servidor, as configuraes recuperadas so
as configuraes feitas no prprio servidor.
As funes de converso de dados foram criadas para evitar erros em tempo de execuo ou
mesmo de lgica por sua aplicao no reconhecer o tipo de dados pelas configuraes. Estas
funes conseguem reconhecer as configuraes regionais e interagir com vrios formatos
diferentes de dados sem mud-los, evitando que erros ocorram.
Pgina 24
Captulo V Variveis
Como o VBScript consegue identificar uma srie de subtipos de variveis, ser necessrio, s
vezes, que voc saiba qual o subtipo com o qual voc est trabalhando no seu script. Para isso,
usaremos a funo VarType que identifica o subtipo por um valor numrico. A tabela abaixo
descreve os valores retornados pela funo:
Exemplo
<% Dim teste, Mensagem, ResultMedia
Function Media(Valor)
Dim Retorna, cont
Retorna = 1
For cont = 1 to Valor
Retorna = Retorna * Cont
Next
Media = Retorna
End Function
teste = 5
if teste = 5 then
Mensagem = "O valor da varivel Teste igual a 5"
End if
ResultMedia = Media(teste)
%>
<HTML><BODY><center><b>
<FONT COLOR="#008000">O tipo que varivel <i>Teste</i> assumiu foi: <% = VarType(teste) %></FONT><BR>
<FONT COLOR="#0000C0">O tipo que varivel <i>Mensagem</i> assumiu foi: <% = VarType(Mensagem)
%></FONT><BR>
<FONT COLOR="#400040">O tipo que varivel <i>ResultMedia</i> assumiu foi: <% = VarType(ResultMedia)
%></FONT><BR>
<FONT COLOR="#0000FF">As variveis Retorna e Cont no podem ser referenciadas, pois existem apenas
quando a Funo Media est sendo executada.</FONT>
</b></center></BODY></HTML>
Pgina 25
Captulo V Variveis
Para verificar o subtipo de dados que a varivel teste assumiu, utilize o cdigo script:
<% = VarType(teste) %> que j retornar o valor numrico correspondente ao subtipo assumido.
No caso da varivel teste, o valor retornado 2, que indica o subtipo Integer.
No podemos referenciar as variveis cont e Retorna, pois estas variveis existem apenas para a
funo, para o restante do script so invlidas.
Declarao de Variveis
Quando declaramos variveis, precisamos ter em mente a sua utilizao: se ser uma varivel que
dever ser utilizada por toda uma aplicao ou apenas por um mdulo, uma funo, subrotina.
Este perodo de vida da varivel flexvel, ou seja, voc pode definir onde, quando e por quanto
tempo esta varivel dever existir.
As variveis no VBScript podem existir em dois nveis ou escopos: script ou procedimento. O termo
escopo est relacionado ao espao de tempo no qual uma memria pode ser referenciada na
memria.
O espao de tempo, que se refere ao tempo de vida da varivel, depende em qual nvel esta
varivel foi declarada:
Script
Procedimento
Quando voc verificar que uma varivel precisa ser apenas vlida para uma funo ou
procedimento, declare-a dentro deste procedimento ou funo. Desta maneira, assim que a
funo ou procedimento for executado, a varivel deixa de existir na memria.
Pgina 26
Captulo V Variveis
Function Media(Valor)
Dim Retorna
Dim cont
Retorna = 1
For cont = 1 to Valor
Retorna = Retorna + Cont
Next
Retorna = Retorna / cont
Media = Retorna
End Function
teste = 5
if teste = 30 then
Mensagem = "O valor da varivel Teste igual a 30"
Else
Mensagem = "O valor da varivel Teste igual a 5"
End if
ResultMedia = Media(teste)%>
<HTML><BODY>
<CENTER><B><% = mensagem %><BR><BR>
A mdia ponderada dos valores da varivel Teste igual a: <% = ResultMedia %>
</B></CENTER>
</BODY></HTML>
Explicao do cdigo
Pgina 27
Captulo V Variveis
Dim ResultMedia
No exemplo que criamos, as variveis acima foram declaradas fora de qualquer funo ou
subrotina, desta forma, podem ser utilizadas por todo o script escrito para esta pgina o que
significa que em qualquer ponto do script podem ser referenciadas.
Function Media(Valor)
Dim Retorna
Dim cont
Retorna = 1
Diferente das variveis teste, Mensagem e ResultMedia, as variveis Retorna e cont podem
apenas ser referenciadas dentro da funo. Para o restante do scritp, as variveis Retorna e cont
no so vlidas.
At este ponto, vimos os tipos de variveis, funes de converso e seu escopo (tempo de vida).
Mas, como declar-las em um script?
Para declarar variveis em seu script, voc deve utilizar as clusulas: Dim, Public, Static.
Dim
Variveis declaradas com o Dim em um script esto disponveis para todas os procedimentos
inclusos neste script, porm as variveis declaradas em um procedimento apenas podero ser
utilizadas neste procedimento.
Exemplo
Dim nomevar [([dimenso]))
Para declarar diversas variveis, utilize vrgulas para separ-las. Por exemplo:
Com a clusula Dim, tambm possvel declarar vetores. Um vetor tratado como uma varivel,
porm utilizado para armazenar uma coleo de informaes similares. Esta coleo acessada
por seu ndice, comeando pelo 0 (zero). Por exemplo, o prximo cdigo cria um vetor com 5
posies. Como os vetores comeam com a posio 0 (zero), 5 posies da varivel TipoProduto
so alocadas. A segunda e terceira linha do cdigo preenchem a primeira e segunda posies do
vetor com os valores Material de Construo e Material Escolar:
Dim TipoProduto(4) Como o vetor comea com 0 (zero), a primeira posio 0 e a quinta posio 4
TipoProduto(0) = Material de Construo
TipoProduto(1) = Material Escolar
ReDim
A funo ReDim utilizada para manipular vetores dinmicos. Para o VBScript, os vetores podem
ser definidos em dois tipos: Estticos ou Dinmicos. Um vetor esttico tem seu nmero de ndices
definidos, como o vetor que definimos no exemplo acima que possui 5 posies. Um vetor
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 28
Captulo V Variveis
dinmico tem o nmero de ndices variado e este nmero definido quando a aplicao
executada. Voc pode criar um vetor dinmico, apenas declarando-o com os parnteses vazios.
Dim ProdutosSelecionados()
ReDim ProdutosSelecionados(3)
ProdutosSelecionados(0) = Caderno
Redim Preserve ProdutosSelecionados(6)
Public
Quando declaramos uma varivel como pblica, esta varivel pode ser referenciada por todo o
script da pgina. Voc tambm pode declarar vetores estticos ou dinmicos com a clusula
Public.
Sintaxe
Public nomevar[([dimenso])]
Private
Variveis declaradas com a clusula Private so o oposto das variveis declaradas com a clusula
Public. So vlidas apenas dentro do script no qual foram declaradas. Podemos tambm declarar
vetores dinmicos e estticos com o Private.
Sintaxe
Private nomevar[([dimenso])]
Declarao Escopo
Dim Script todo ou Procedimento
ReDim Script todo ou Procedimento
Public Script todo
Private Script todo
Pgina 29
Captulo V Variveis
Option Explicit
Por default (padro), a declarao das variveis no obrigatria. Voc pode apenas fazer
referncias a elas, sem declar-las explicitamente. A declarao explicita se refere ao processo de
criao ou instanciao de uma varivel
Exemplo
<%
teste = 5
if teste = 30 then
Mensagem = "O valor da varivel Teste igual a 30"
Else
Mensagem = "O valor da varivel Teste igual a 5"
End if
%>
<HTML><BODY>
<CENTER><B><% = Mensagem %><BR><BR>
</B></CENTER>
</BODY></HTML>
Esta declarao implcita no considerada uma boa prtica pelo programadores, pois estamos
sujeitos a erros de digitao, e para uma este tipo de declarao, declarar uma varivel chamada
teste e outra tsete so consideradas variveis diferentes. Para evitar este tipo de erro, a
declarao do Option Explicit est disponvel para que obrigatoriamente todas as variveis sejam
declaradas explicitamente.
Se voc optar por utiliz-lo, a sua declarao deve ser feita antes de qualquer outra declarao.
Pgina 30
Captulo V Variveis
teste = 5
if teste = 30 then
Mensagem = "O valor da varivel Teste igual a 30"
Else
Mensagem = "O valor da varivel Teste igual a 5"
End if
%>
<HTML><BODY>
<CENTER><B><% = Mensagem %><BR><BR>
</B></CENTER>
</BODY></HTML>
Observe neste exemplo que declaramos a clausula Option Explicit porm, no declaramos
explicitamente a varivel teste. Ao executarmos este ASP no servidor, ser retornado um erro
como mostra a tela a seguir:
A mensagem do erro retornado Variable is undefined: teste significa que a varivel no foi
declarada. Se voltarmos ao script, perceberemos que realmente a varivel no foi declarada.
Vamos estudar o script:
teste = 5
.....................
%>
Como utilizamos a clusula Option Explicit, necessariamente precisamos declarar a varivel teste
explicitamente, para isso, devemos escrever o script da seguinte maneira:
Dim teste
teste = 5
Pgina 31
Captulo V Variveis
if teste = 30 then
Mensagem = "O valor da varivel Teste igual a 30"
Else
Mensagem = "O valor da varivel Teste igual a 5"
End if
%>
Se o ASP for executado novamente, no ocasionar o erro, pois a varivel foi declarada.
Resumo
Dicas
Utilize a declarao Option Explicit para evitar erros de digitao do nome de uma
varivel existente ou para evitar confuso no cdigo script onde o escopo das variveis
no bem definido.
Quando voc utiliza a clusula Dim em um procedimento, geralmente a declarao
feita no comeo do procedimento.
Antes de atribuir valores a um vetor dinmico, preciso redimenciona-lo usando o
comando ReDim
Quando uma varivel declarada, seu valor padro depende do subtipo de dados que
assumir. Por exemplo, uma varivel numrica inicializada com 0 (zero), uma varivel
string inicializada com comprimento igual a zero ( ).
Pgina 32
Captulo VI Operadores
CAPTULO VI OPERADORES
Operadores
Operadores Aritmticos
Os operadores aritmticos nos permite fazer uma srie de clculos matemticos. Geralmente,
possuem a seguinte sintaxe:
Onde Resultado a varivel que receber o valor do clculo, valor1 e valor2 so expresses
numricas e o operador representa a operao matemtica a ser realizada.
Adio
O operador de adio (+) utilizado para efetuar somas entre valores numricos, mas tambm
pode ser utilizado para concatenar strings.
Sintaxe
Onde resultado recebe o valor da soma das expresses numricas valor1 e valor2. Lembre-se,
existe apenas um tipo de varivel no VBScript: Variant. Somar dois valores pode resultar em um
resultado no esperado, por causa da capacidade do tipo Variant mudar automaticamente o
subtipo baseado no valor atribudo varivel.
Pgina 33
Captulo VI Operadores
Vamos considerar uma situao onde a adio entre dois nmeros pedida. Siga o exemplo:
valor1 = 1
valor2 = 3
Voc pode perceber por este exemplo que sem um entendimento apropriado sobre o tipo de dados
Variant e o comportamento do operador de adio, o resultado pode no ser o esperado. No
exemplo acima, as variveis so explicitamente declaradas e valor1 recebe o 1 (numrico),
assumindo o subtipo Integer, e a varivel valor2 recebe 3 (string), assumindo o subtipo String.
Todas as variveis declaradas so do tipo Variant. Entretanto, o VBScript atribui um subtipo
dependendo do valor atribudo a varivel.
Nas linhas abaixo, a varivel resultado receber o valor 4. Pois, pela regra, quando somamos um
valor numrico e uma string, a soma numrica entre eles efetuada.
Resultado = valor1 + valor2
Resultado = valor2 + valor1
Na prxima linha, estamos somando dois valores numricos, pois o subtipo da varivel valor1
Integer. O valor retornado para a varivel resultado ser 2.
Resultado = valor1 + valor1
Mas, e se voc precisasse que o resultado da linha Resultado = valor2 + valor2 fosse numrico?
Para isso, utilize as funes de converso de tipo. Esta linha poderia ser reescrita da seguinte
maneira:
A funo CInt utilizada para converter uma varivel para Inteiro. E a varivel resultado receberia
o valor numrico 6.
O mesmo vale para a linha Resultado = valor1 + valor1. Se o resultado a ser retornado
precisasse ser uma concatenao de strings e no uma soma numrica, a linha seria reescrita da
seguinte maneira:
A funo CStr utilizada para converter uma varivel para String. E a varivel resultado receberia
a string 22.
Pgina 34
Captulo VI Operadores
Subtrao
O operador de subtrao (-) utilizado para efetuar a diferena entre valores numricos ou para
converter um valor numrico positivo em um valor numrico negativo. Para cada uma destas
funcionalidades, preciso uma sintaxe diferente, vejamos quais so:
Onde resultado recebe o valor da operao entre as variveis numricas valor1 e valor2.
Resultado = -(valor1)
Multiplicao
O operador de multiplicao (*) utilizado para retornar o resultado da multiplicao entre valores
numricos.
Sintaxe
Onde resultado recebe o valor da operao entre as variveis numricas valor1 e valor2. Se
ambas as variveis estiverem com o valor igual a NULL, o valor retornado da operao tambm
ser NULL. Se estiverem vazias, o resultado ser convertido para 0 (zero).
Diviso
O operador de diviso (/) utilizado para dividir uma expresso numrica em outra expresso
numrica.
Sintaxe
Onde Resultado recebe o valor da operao entre as variveis numricas valor1 e valor2. As
mesmas regras da multiplicao valem para a diviso. Se ambas as variveis estiverem com o
valor igual a NULL, o valor retornado da operao tambm ser NULL. Se estiverem vazias, o
resultado ser convertido para 0 (zero).
Fique atento para a diviso por 0 (zero). Ser o retornado o seguinte erro:
Division by zero
Diviso Inteira
O operador da diviso inteira (\) similar ao da diviso, mas foi especificamente, criado para
retornar resultados inteiros apenas.
Pgina 35
Captulo VI Operadores
Sintaxe
Onde Resultado recebe o valor da operao entre as variveis numricas valor1 e valor2. Estas
variveis so arredondadas e seu subtipo configurados para Byte, Integer ou Long antes da
operao. Se ambas as variveis estiverem com o valor igual a NULL, o valor retornado da
operao tambm ser NULL. Se estiverem vazias, o resultado ser convertido para 0 (zero).
Exponenciao
Sintaxe
resultado = nmero1^nmero2
Onde resultado recebe o valor retornado da operao efetuada pelas expresses numricas
nmero1 e nmero2.
Operadores de Comparao
Sintaxe geral
Operador Smbolo
Igualdade =
Desigualdade <>
Maior que >
Menor que <
Maior que ou Igual a >=
Menor que ou Igual a <=
Equivalncia de Objetos IS
Pgina 36
Captulo VI Operadores
Operador Retorna True se ... Retorna False se ... Retorna NULL se ...
< Expr1 < Expr2 Expr1 >= Expr2 Expr1 ou Expr2 = Null
<= Expr1 <= Expr2 Expr1 > Expr2 Expr1 ou Expr2 = Null
> Expr1 > Expr2 Expr1 <= Expr2 Expr1 ou Expr2 = Null
>= Expr1 >= Expr2 Expr1 < Expr2 Expr1 ou Expr2 = Null
= Expr1 = Expr2 Expr1 <> Expr2 Expr1 ou Expr2 = Null
<> Expr1 <> Expr2 Expr1 = Expr2 Expr1 ou Expr2 = Null
Outro tipo de comparao a comparao entre objetos. O operador IS utilizado para fazer esta
comparao. A sintaxe a ser utilizao est descrita abaixo:
Quando comparamos objetos, no existe a possibilidade de NULL. O resultado sempre ser True
ou False. Se os objetos forem iguais, o resultado ser igual a True. Se forem diferentes, o
resultado retornado ser False.
Exemplo
<%
Dim Tobjeto, TSObjeto, Resultado
Na primeira linha de comparao (Resultado = Pobjeto is Sobjeto), o valor retornado True, pois
os dois objeto (Pobjeto e Sobjeto) foram criados a partir de um mesmo objeto.
Pgina 37
Captulo VI Operadores
Operador Smbolo
Conjuno AND
Negao NOT
Desconjuno OR
Operador NOT
Este operador utilizado para realizar negao lgica em uma expresso, ou seja, para negar ou
inverter um resultado.
Sintaxe
Expresso Resultado
True False
False True
NULL NULL
Lembre-se que uma varivel que contm o valor NULL, representa uma varivel com valor invlido.
Consequentemente, qualquer operador reproduzir um resultado NULL. Tenha em mente que um
varivel com uma string vazia ( ), no igual a NULL. Por exemplo:
<%
Variavel = NULL
Resultado = IsNull(Variavel) Retornar True, pois o contedo de
variavel igual a NULL.
%>
<%
Variavel =
Resultado = IsNull(Variavel) Retornar False, pois o contedo de
varivel uma string vazia.
%>
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 38
Captulo VI Operadores
Operador AND
utilizado para avaliar um conjunto de expresses como se fosse apenas uma comparao. O
operador AND apenas retornar True, se e somente se todas as comparaes forem verdadeiras.
Sintaxe
Neste caso, teste receber o valor False. Pois embora 20 seja menor que 30, 10 no maior que
30. Ento, como o AND apenas retorna True se todas as expresses forem verdadeiras, a varivel
teste receber false.
Operador OR
Sintaxe
Pgina 39
Captulo VI Operadores
Neste caso, a varivel teste receber True. Pois uma das expresses acima verdadeira: 20 < 30.
Operadores de Concatenao
Existem dois operadores no VBScript utilizados para somar (concatenar) strings. Veja a tabela
abaixo:
Operador &
Sintaxe
<%
texto = "Treinamento ASP " & "CCUEC UNICAMP"
Response.Write texto
%>
O resultado retornado:
Pgina 40
Captulo VI Operadores
Operador +
O operador de Adio tambm pode ser utilizado para concatenar strings. Porm, no
recomendado que voc utilize este operador para este tipo de funo, pois sua funo principal
seria a soma de valores numricos. A ambiguidade ocorre quando o operador + utilizado em
diferentes subtipos, no caso, string e valores numricos.
Sintaxe
Onde string1 e string2 so expresses do subtipo string vlidas para o Vbscript. Por exemplo:
<%
texto = "Treinamento ASP " + "CCUEC UNICAMP"
Response.Write texto
%>
O resultado retornado o mesmo que foi retornado quando utilizamos o operador &.
A avaliao das expresses baseada nas categorias dos operadores. Operadores aritmticos
so os primeiros a serem processados, seguidos pelos operadores de comparao e por fim, pelos
operadores lgicos.
Pgina 41
Captulo VI Operadores
Resumo
Dicas
Pgina 42
Captulo VII Comandos Bsicos do VBScript
Neste captulo, estaremos estudando os comandos para controle do fluxo de uma aplicao.
Veremos as estruturas lgicas existentes no VBScript que devem permitir este controle: estruturas
lgicas de deciso e repetio. Estruturas lgicas de deciso executam uma determinada condio
e, dependendo do teste, retornam o HTML apropriado como resultado. A estrutura de repetio por
sua vez, um processo cclico, ou seja, repete um determinado conjunto de instrues at que
uma condio seja satisfeita.
Estruturas de Deciso
Utilizadas para tomar decises em sua aplicao. Por exemplo, se a hora for menor que 12:00,
retorne um HTML com Bom dia, se no, retorne um HTML com Ola!. Neste exemplo, voc
apenas mandou retornar um HTML com um texto para seu usurio porm, voc poderia determinar
que dependendo do horrio, deve ser retornado determinada pgina, desviar para outra URL, etc.
Estruturas como esta so utilizadas para determinar o fluxo da sua aplicao, com elas voc pode
definir qual pgina deve ser aberta, determinar o texto a ser escrito para o cliente, estados dos
objetos na tela: selecionados, preenchidos, etc.
O primeiro comando que veremos ser o IF. Este comando utilizado para testar uma condio
como verdadeira ou falsa. E dependendo dos resultados, determinado bloco de instrues ser
executado.
Sintaxe
If <condio> Then
Bloco de Instruo (que pode ser apenas uma ou vrias)
[Else
Bloco de Instruo ]
End If
Onde <condio> a expresso a ser testada. Se for verdadeira, o bloco de instruo que estiver
definido depois do Then ser executado. O Else representa o se no, ou seja, se a <condio>
no for satisfeita (no for verdadeira), o bloco de instrues definido depois do Else ser
executado. End if termina o bloco IF.
Observe que a <condio> deve ser uma expresso que pode ser avaliada como true/false
(verdadeiro/falso). Por exemplo:
At este ponto, vimos como testar apenas um condio. Porm, podemos utilizar o comando IF
quando existem vrias condies a ser testadas. Veja a sintaxe:
Pgina 43
Captulo VII Comandos Bsicos do VBScript
If <condio> Then
Bloco de Instruo (que pode ser apenas uma ou vrias)
[ElseIf <condio>Then
[Bloco de Instruo]]
[Else
[Bloco de Instruo]]
End If
Lembre-se que voc deve escrever os cdigos que devem ser interpretados pelo servidor entre <%
%>, partindo deste ponto, vamos a um exemplo:
<html>
<head>
<title>Horas ... </title>
</head>
<body bgcolor="#FFFFFF">
<% if Time < #12:00# then %>
Bom Dia!!! <BR>
So exatamente <%=Time %>.
<% else %>
So exatamente <%=Time %>.
<% end if %>
</body>
</html>
Pgina 44
Captulo VII Comandos Bsicos do VBScript
O cdigo criado:
O teste que o IF faz da condio se esta verdadeira. Ento, se a hora do servidor for menor
que 12:00, ou seja, ainda manh, ser mostrado para o usurio o texto (supondo que seja 10:05
da manh):
Bom dia!
So exatamente 10:05.
O prximo comando o SELECT. Este comando foi desenvolvido para melhorar a eficincia do IF
... Then ... ElseIf ... Sua funo selecionar um bloco de instruo a partir do teste de uma
condio e compar-lo com uma srie de valores.
Sintaxe
Onde <Critrio> uma varivel do tipo numrica ou texto (string), Condio e CondioN so as
possibilidades de valores que esta varivel pode assumir.
A lgica do SELECT similar a do IF ... Then ... Else. Ambas as estruturas permitem o caso de
todas as condies falharem e o fluxo do bloco ser desviado para um caso de se no. A clusula
Else do SELECT utilizada quando nenhuma condio satisfeita pelo critrio. Podemos
reescrever o exemplo utilizado com o IF ... Then ... ElseIf, utilizando o o SELECT:
<HTML>
<BODY>
<center><% = Mensagem %></center>
</BODY>
</HTML> de Aplicaes para Internet Plataforma Microsoft
Desenvolvimento
Pgina 45
Captulo VII Comandos Bsicos do VBScript
O resultado do exemplo:
Este arquivo deve ser nomeado com a extenso ASP, pois contem cdigos que apenas um
servidor IIS pode interpretar.
Depois da declarao das variveis teste e Mensagem, atribumos um valor qualquer para a
varivel teste que servir como critrio do SELECT. Como estamos atribuindo um valor numrico
para teste, no preciso utilizar caracteres especiais para indicar o valor a ser atribudo.
teste = 25
O prximo bloco de instrues o bloco do SELECT. Definimos que o critrio a varivel teste, ou
seja, a varivel teste ser testada nas condies que definimos nas clusulas CASE. Em nosso
caso, a pergunta que o SELECT far ser a seguinte:
Por que no CASE Else a varivel mensagem recebe o texto: O valor de Teste igual a 25?
Antes da comparao da varivel Teste, atribumos para esta o valor 25. Como no cdigo
concatenamos com o texto: "O valor de Teste igual a " o valor da varivel teste, como resultado
mostrado seu contedo. Ento:
Pgina 46
Captulo VII Comandos Bsicos do VBScript
Neste ponto da aplicao, fechamos o bloco do SELECT e terminamos a parte dos cdigos que
so interpretados pelo servidor. Colocamos algum cdigo HTML e para mostrar a mensagem,
novamente temos que mandar o cdigo para o servidor: <% = Mensagem %>.
<HTML>
<BODY>
<center><% = Mensagem %></center>
</BODY>
</HTML>
Estruturas de Repetio
So estruturas que repetiro um bloco de instrues at que a condio especificada seja satisfeita
ou por um nmero de vezes especificado. No VBScript, trabalharemos com 3 destas estruturas:
Do ... Loop
For ... Next
While ... Wend
A primeira que veremos ser a Do ... Loop. utilizado para executar um conjunto de instrues
at que a condio determinada seja verdadeira. O Do ... Loop oferece dois operadores
condicionais para avaliar uma condio: While e Until.
Sintaxe:
Ou
Do
<bloco de instrues>
Exit Do
<bloco de instrues>
Loop {Until | While } <condio>
Onde <condio> deve ser uma expresso que pode ser avaliada como true/false
(verdadeiro/falso), <bloco de instrues> so os comandos que devem ser executados enquanto
a condio no for satisfeita.
A diferena entre as sintaxes acima o local da condio. Na primeira sintaxe, a condio est
localizada na mesma linha de execuo do Do. Na segunda, a condio est localizada no final do
lao ao lado do Loop. Esta mudana de localizao d aos programadores flexibilidade para testar
Pgina 47
Captulo VII Comandos Bsicos do VBScript
<html><body>
<%
Dim Mensagem
Dim Cont
Mensagem =
cont = 0
Do Until cont=5
Mensagem = Contei & cont %>
<center><% = Mensagem %></center>
<% cont = cont + 1
Loop
%>
</body></html>
Lembre-se que todo o cdigo ASP deve ser escrito entre <% %>, pois ser interpretado pelo
servidor que retornar como resultado o HTML correspondente.
<%
Dim Mensagem
Dim Cont
Como vimos no captulo anterior, a clusula DIM utilizada para declarar variveis locais, ou seja,
as variveis Mensagem e Cont existiro apenas para este cdigo script.
Mensagem =
cont = 0
Pgina 48
Captulo VII Comandos Bsicos do VBScript
Nas linhas acima, estamos limpando as variveis, ou seja, atribuindo-lhes valores nulos para tirar
qualquer contedo que no nos seja til. No caso de cont atribumos o valor 0 (zero), e para
Mensagem, atribumos que caracteriza o comprimento zero de string.
O prximo bloco de instrues o bloco definido pelo Do ... Loop. Este bloco ser executado 5
vezes isto definido pela condio: cont = 5. E mostrar uma mensagem todas as vezes que as
instrues dentro do comando de repetio forem executadas.
Do Until cont=5
A linha a seguir define a mensagem a ser mostrada para o usurio. uma atribuio de
um texto para uma varivel, desta forma, o que for atribudo deve estar entre (aspas). Ainda
nesta linha, voc deve observar que existe uma concatenao de strings (Contei & cont), para
isso, deve-se utilizar o operador &.
Neste ponto do programa, encerramos o trecho que deve ser interpretado pelo Servidor
(%>).
A linha a seguir contem cdigo HTML (<center></center>) e cdigo VBScript a ser
interpretado pelo servidor (<% = Mensagem %>) que mostrar o contedo da mensagem.
As prximas linhas de instruo fazem parte do Do ... Loop. Onde o cont incrementado
para que a repetio tenha um limite (cont = 5) e Loop encerra todo o bloco do Do ... Loop.
Outra estrutura similar ao Do ... Loop o While ... Wend. Esta estrutura repete um bloco de
instrues at que um condio seja satisfeita (true).
Sintaxe
While <condio>
<bloco de instrues>
Wend
Onde <condio> uma expresso que pode ser avaliada como verdadeira ou falsa (true/false) e
<bloco de instrues> representa o conjunto de comandos que devem ser executados at que a
condio seja falsa.
Quando a condio descrita no While for verdadeira todos os comandos sero processados at
chegar no Wend. Neste ponto, o fluxo do programa passa para o While que testa a condio
novamente e este ciclo repetido at que a condio seja falsa.
Exemplo
O exemplo a seguir incrementa a varivel contador at que seu valor chegue a 10.
Pgina 49
Captulo VII Comandos Bsicos do VBScript
<HTML><BODY>
<CENTER><B>Contei at <% = contador %></B></CENTER>
</BODY></HTML>
Resultado retornado:
Cdigo
Repete um conjunto de instrues por um nmero especificado de vezes. Este comando usado
quando sabemos o nmero de ciclos ou iteraes que so necessrias.
Sintaxe
Onde contador uma varivel numrica usada no lao como o contador. Esta varivel no pode
ser um elemento de um vetor, nem um elemento de um Tipo definido pelo usurio. Inicio o valor
inicial do contador e fim o valor final que o contador assumir. Passo define o valor do
incremento ou decremento do FOR, se no for definido, o default (padro) 1 (um).
O valor do parmetro passo pode ser tanto positivo (incremento) ou negativo (decremento). O
valor deste parmetro determina o processo da seguinte maneira:
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 50
Captulo VII Comandos Bsicos do VBScript
No exemplo, a varivel contador inicializada com o valor 65, sendo incrementada at 122. O
incremento feito de 2 em 2, ou seja, a primeira vez, a varivel contador est com 65, a segunda
vez, o contador passa a ter 67, pois o incremento de 2.
Se o parmetro passo for negativo:
Neste exemplo, o parmetro passo foi determinado com 1, ou seja, o contador comea com 122 e
a cada clico, decrementado deste valor 1 at chegar ao valor 65.
Observe que o operador Next no VBScript defere do operador Next do VB. No VBScript, no
preciso especificar o contador na declarao do Next, como acontece no VB. O operador Next
automaticamente incrementa o contador designado na declarao do FOR. Se voc adicionar o
nome da varivel contador na clusula Next, um erro ser gerado pelo VBScript:
Pgina 51
Captulo VII Comandos Bsicos do VBScript
Resumo
While <condio>
<bloco de instrues>
Wend
Dicas
Pgina 52
Captulo VIII Os Objetos do ASP
O ASP possui alguns objetos bsicos que operam as funcionalidades de uma aplicao.
Cada objeto possui seus prprios mtodos e eventos, por isso estudaremos cada um deles
separadamente, observando suas funes mais importantes e teis.
O objeto Application
Podemos entender como sendo aplicao todo o conjunto de pginas ASP e HTML que
formam o programa como um todo. Uma aplicao comea quando uma pgina ASP requisitada
pela primeira vez ao servidor e termina quando o servidor desligado ou quando desativada
(tirada do uso, sendo apagada, por exemplo).
Desta forma, o objeto Application ir referir-se e estar disponvel para toda a aplicao, ou
seja, ser "enxergado" por toda pgina ASP e por qualquer usurio da aplicao.
Variveis Application podero ser acessadas por qualquer parte do programa, por qualquer
usurio.
Sintaxe: Application("nomevar") = contedo
Para visualizarmos melhor o efeito de uma varivel deste tipo, vejamos o exemplo:
<%
Application("DicaDeHoje") = "Que tal estudar ASP?"
%>
Suponha a existncia da linha de cdigo acima em algum arquivo ASP de uma aplicao.
Com ela, armazenamos a string "Que tal estudar ASP?" numa varivel Application que chamamos
de DicaDeHoje. Se nesta mesma aplicao possuirmos outra pgina ASP com o cdigo:
<HTML>
<BODY>
<CENTER>
A nossa dica do dia hoje <br>
<b> <%= Application("DicaDeHoje") %> <b>
</CENTER>
</BODY>
</HTML>
Pgina 55
Captulo VIII Os Objetos do ASP
Mtodo Lock
O objetivo deste mtodo "trancar" o acesso s variveis Application, deixando-as
disponveis para somente um nico usurio.
Mtodo UnLock
O mtodo UnLock "destranca" as variveis Application que foram trancadas por um mtodo
Lock. Quando este mtodo for executado, todas as variveis Application estaro novamente
disponveis.
Observe o exemplo:
<HTML>
<BODY>
<%
Application.Lock
Application("visitantes") = Application("visitantes") + 1
Application.UnLock
%>
<CENTER> Esta pgina j foi acessada
<%=Application("visitantes")%> vezes </CENTER>
</HTML>
</BODY>
No caso acima, o mtodo Lock foi utilizado para que o nmero de visitantes seja sempre
exibido de forma correta, no ocorrendo nenhum problema no caso de haverem duas tentativas
simultneas de modificao no valor desta varivel. Depois de alterar o valor de visitantes, a
aplicao destrancada. Veja o resultado deste cdigo:
Pgina 56
Captulo VIII Os Objetos do ASP
O objeto Server
Este objeto capaz de interagir com servio HTTP, criando uma interface programvel de
seus mtodos e propriedades. Outra funo do objeto Server instanciar componentes ASP no
servidor, o que torna a tecnologia muito mais poderosa e ampla.
O que um componente?
Mtodo CreateObject
Pgina 57
Captulo VIII Os Objetos do ASP
<HTML>
<BODY>
<%
Set brtp = Server.CreateObject("MSWC.BrowserType")
If brtp.ActiveXControls then %>
Este browser suporta controles ActiveX
<% Else %>
Este browser no suporta controles ActiveX
<% End if %>
</BODY>
</HTML>
Mtodos Encode
Mtodo HTMLEncode
Este mtodo faz com que os caracteres sejam exibidos em tela exatamente como foram
especificados. Para isso o ASP cria, para a string fornecida, cdigos especiais para caracteres
no-ANSI. Este mtodo importante para se assegurar de que a informao ser exibida numa
pgina HTML exatamente como se deseja.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 58
Captulo VIII Os Objetos do ASP
Mtodo URLEncode
Semelhante ao mtodo HTMLEncode, este mtodo formata a string especificada para que
no ocorram erros de interpretao de caracteres. Porm, utilizamos o mtodo URLEncode
quando a string especificada trata-se de uma URL.
Sintaxe: Server.URLEncode ("string")
O objeto Session
Entende-se por sesso o tempo que um usurio utiliza uma aplicao. Cada vez que uma
aplicao acessada por um usurio, uma sesso no servidor aberta para ele. Quando a
aplicao termina, a sesso finalizada. Dessa forma, informaes disponibilizadas no escopo da
sesso estaro disponveis durante toda a aplicao para um determinado usurio.
Este objeto baseado em cookies, portanto ser somente acessvel aos browsers que os
suportam e que estejam habilitados a os aceitarem.
</HTML>
</BODY>
Com o cdigo acima, teremos armazenado na varivel vbsc um valor booleano (true ou
false) que indica se o browser suporta ou no a tecnologia VBScript sendo executada no cliente.
Como esta varivel foi definida como tipo Session, poderemos utiliz-la em outra parte da
aplicao, como no exemplo abaixo:
<%
If Session("vbsc") then
Call VersaoVbSc ()
Else
Call VersaoNoVbSc ()
End if
%>
O Objeto Response
O objeto Response controla os dados que sero enviados para o cliente. Estes dados
podem ser simplesmente HTML, cookies, valores de variveis, etc.
Pgina 59
Captulo VIII Os Objetos do ASP
Coleo Cookies
atravs desta coleo que podemos enviar cookies para um cliente. Com cookies,
podemos armazenar temporariamente valores em arquivos-texto no browser cliente.
Sintaxe: Response.Cookies ("nomecookie")("nomedachave").atributo = contedo
Devemos entender como nomecookie como sendo o nome do arquivo texto a ser
armazenado no cliente e nomedachave como sendo o nome do campo a ser armazenado. Existem
ainda atributos de cookies que estudaremos posteriormente.
Veja o exemplo:
<%
Response.Cookies ("MeuTeste")("Valor1") = "Este o primeiro valor"
Response.Cookies ("MeuTeste")("Valor2") = "Segundo valor"
Response.Cookies ("MeuTeste")("Valor3") = "Valor 3"
%>
<HTML>
<BODY>
Voc acabou de receber um Cookie!
</BODY>
</HTML>
Neste exemplo, gravamos no cliente um cookie com o nome MeuTeste que contm trs
valores separados em trs campos que se chamam: Valor1, Valor2 e Valor3. Quando desejarmos
recuperar as informaes deste cookie, utilizaremos estes nomes. Veremos como recuperar
valores de um cookie ao estudar o objeto Request.
Note tambm que as linhas de cdigo que gravam o cookie vm antes de qualquer tag
HTML. Isto ocorre porque no h como gravar informaes em um cookie depois de qualquer
cdigo HTML ser enviado ao cliente. Se houvesse qualquer tag antes da gravao do cookie, seria
emitida uma mensagem de erro. Portanto, lembre-se: no possvel gravar um cookie depois
que alguma diretiva HTML j foi enviada ao cliente.
Atributo Expires
<%
Response.Cookies ("MeuTeste")("Valor1") = "Este o primeiro valor"
Response.Cookies ("MeuTeste")("Valor2") = "Segundo valor"
Response.Cookies ("MeuTeste")("Valor3") = "Valor 3"
Response.Cookies ("MeuTeste").Expires = "11/09/99"
%>
Mtodo Write
Pgina 60
Captulo VIII Os Objetos do ASP
<HTML>
<BODY>
<% Session("curso") = "Desenvolvendo aplicaes Web" %>
<CENTER>
<% Response.Write "Al mundo!" %> <BR>
<% Response.Write Session("curso") %> <BR>
<% Response.Write now %> <BR>
</CENTER>
</BODY>
</HTML>
Observe no resultado obtido que podemos ento escrever textos (Al mundo!), variveis
(Session("curso")) ou funes (now) com o mtodo Write:
Mtodo Redirect
Pgina 61
Captulo VIII Os Objetos do ASP
<%
If Session("idioma") = "ingles" then
Response.Redirect "http://www.empresa.com.br/ingles"
Else if Session("idioma") = "alemao"
Response.Redirect " http://www.empresa.com.br/alemao"
End if
End if
%>
<HTML>
<BODY>
Ol! Obrigado pela visita!
<% var = "teste" %>
</BODY>
</HTML>
O Objeto Request
Este objeto capaz de receber informaes do cliente, como, por exemplo, ler cookies e
receber dados digitados em formulrios HTML A seguir, estudaremos suas colees e mtodos
mais importantes.
Coleo Cookies
Esta coleo responsvel por ler as informaes armazenadas previamente nos cookies
existentes nos clientes.
Sintaxe: Resquest.Cookies ("nomecookie")("nomedachave")
Onde nomecookie o nome do cookie armazenado e nomedachave o nome do campo
do cookie que se deseja obter. Observe o exemplo:
<%
Request.Write (Request.Cookies("MeuTeste")("Valor1"))
%>
Coleo Form
A coleo Form permite que se obtenha dados digitados em formulrios HTML enviados
pelo mtodo HTTPPost.
Sintaxe: Request.Form ("nomecampo")
Pgina 62
Captulo VIII Os Objetos do ASP
<HTML>
<BODY>
<FORM ACTION="Request.asp" METHOD = Post>
Nome:<INPUT TYPE = Text NAME = "txtNome">
<BR>
Idioma:<BR>
<INPUT TYPE=Radio NAME="opIdioma" VALUE="Ingles">Ingls<BR>
<INPUT TYPE=Radio NAME="opIdioma" VALUE="Alemao">Alemo<BR>
<INPUT TYPE=Radio NAME="opIdioma" VALUE="Portugues">Portugus <BR>
<INPUT TYPE=Submit VALUE="Enviar">
</FORM>
</BODY>
</HTML>
Quando o boto Submit for clicado, o arquivo Request.asp ser chamado e executado.
Este arquivo poderia ser o seguinte:
<%
nome = Request.Form("txtNome")
idioma = Request.Form("opIdioma")
No cdigo acima, armazenamos nas variveis nome e idioma os valores colocados nos
campos txtNome e opIdioma do formulrio HTML. Com isto, podemos utilizar estes valores no
programa normalmente. Um possvel resultado obtido depois de se digitar no formulrio o nome
Lus e se escolher o idioma Portugus seria:
Pgina 63
Captulo VIII Os Objetos do ASP
Coleo QueryString
Esta coleo utilizada para se obter informaes vindas da string de pesquisa HTTP.
Esta string encontra-se depois do ponto de interrogao (?) na linha da URL. (Por exemplo,
http://www.empresa.com.br?cliente=especial).
Sintaxe: Request.QueryString("nomevar")
Pgina 64
Captulo IX ODBC
CAPTULO IX ODBC
ODBC 3.0
O ODBC (Open DataBase Connectivity) 3.0 o meio mais conhecido para acessar um banco de
dados em ambiente Windows. Utilizando o ODBC, desenvolvedores no precisam se preocupar
com as particularidades dos bancos de dados que iro acessar e trabalhar.
O ODBC uma API para acessar, manipular e criar bancos de dados. Como um desenvolvedor de
aplicaes Web, voc no precisa saber exatamente qual a API para o ODBC. Entretanto, ter um
conhecimento sobre ele ser bastante til.
Quando voc acessa um banco de dados atravs do ODBC, este banco necessariamente tem que
estar registrado como uma origem de dados ODBC. Registrando o banco como uma origem de
dados, a aplicao apenas precisa saber o nome desta origem de dados. A localizao do banco
no faz diferena, nem mesmo o tipo de banco de dados.
Pgina 65
Captulo IX ODBC
Existem trs tipos de origem de dados que voc pode criar: System, User e File. Quando voc
define uma origem de dados na opo System DSN o banco de dados ser aberto para qualquer
usurio do sistema, quando definido em User DSN o banco ser aberto para um usurio especfico
e File DSN uma descrio do banco.
Geralmente, para aplicaes Web criado uma origem de dados na opo System DSN.
Pgina 66
Captulo IX ODBC
Depois de pressionado o boto Add, ser mostrada a tela abaixo, onde voc deve especificar o
drive ODBC a ser utilizado para acessar seus dados:
Depois de selecionar o
drive, clique em Finish
Depois de escolher o drive, preciso selecionar o arquivo que contm os dados. A prxima tela
pedir para voc indicar o local fsico (diretrio e nome) do arquivo e um nome para a origem de
dados que est sendo criada:
Pgina 67
Captulo IX ODBC
Descrio da origem de
dados.
Seguindo estes passos voc cria uma origem de dados para seu banco de dados. Quando
precisarmos abrir um banco de dados, ser preciso apenas fazer a referncia a origem de dados.
Pgina 68
Captulo IX ODBC
Resumo
O ODBC uma API utilizada para criar, manipular e acessar bancos de dados.
Utilizando esses drives, no necessrio ter conhecimento das particularidades de
cada banco de dados.
Existem trs tipos de origem de dados: System DSN, User DSN e File DSN. O
System DSN utilizado quando vrios usurios de um sistema podem acessar a
base. O User DSN utilizado quando um usurio especfico pode ter acesso, e o
File DSN uma descrio do banco.
Geralmente, a opo escolhida para criar uma origem de dados o System DSN,
pois uma aplicao na maioria das vezes, acessada por vrios usurios.
Dicas
Os drivers ODBC so fornecidos com ODBC 3.0, mas funcionam com ODBC 2.5.
Eles foram desenvolvidos para ser usados no Microsoft Windows 95 ou posterior
ou Windows NT 3.51 ou posterior. O Windows 95 ou posterior, aceita somente
aplicativos de 32 bits. O Windows NT 3.51 ou posterior, aceita aplicativos de 16 e
de 32 bits.
Voc pode obter mais informaes sobre a verso do ODBC a ser usada com os
drivers ODBC, consultando o ODBC 2.0 Programmers Reference e o SDK Guide e
notas de verso do ODBC at verso 2.5. O ODBC 3.0 Programmers Reference
no deve ser usado como material de referncia para problemas com esses
drivers.
Voc pode utilizar um componente ASP que implementado em seu script faz
mudanas no Registry do servidor e criar o DSN necessrio. Esses componentes
so de terceiros e podem ser encontrados em sites especializados em ASP.
?
O que acontece se voc no tiver um DSN?
Se voc deve conhecer o nome do arquivo (baseado em banco de dados como
Access, Paradox, FoxPro, etc.) ou o nome do Data Source (no caso do SQLserver,
por exemplo). Abaixo est uma maneira de abrir um Data Source sem um DSN.
Note que voc deve conhecer o caminho completo do arquivo no servidor, isto ,
apenas o nome do banco no suficiente. preciso ter todo o caminho, por
exemplo: "e:\Inetpub\banco\inscricoes.mdb".
Existe uma funo no ASP chamada Server.MapPath que com o nome de arquivo
como parmetro, retorna o diretrio completo do arquivo no servidor, mas fique
atento pois no muito seguro utilizar este recurso.
<%
Set conn = Server.CreateObject("ADODB.Connection")
Caminho = "DBQ=" & Server.MapPath("nome_banco.mdb")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & Caminho
Set rs = conn.Execute("Select * from Cliente")
%>
Pgina 69
Captulo X Acessando Banco de Dados
Porm, desenvolver aplicaes baseadas na Web pode ser muito diferente de outros tipos
de programao. Diferente de tpicas aplicaes cliente/servidor, essas aplicaes compreendem
pginas Web como resposta ao cliente. Estas so estticas, ou seja, depois do cliente (browser)
solicitar a pgina, a mesma processada no servidor e ento, o documento solicitado retornado.
O processo da pgina termina quando o servidor Web envia a pgina. Como um desenvolvedor de
aplicaes Web, voc precisa tambm se preocupar com a conexo de seu cliente e a Internet.
uma coleo de objetos utilizados para recuperao, alterao, incluso e excluso de registros
em bancos de dados ODBC e OLE DB. O ADO instalado com Microsoft Internet Information
Server (IIS), verso 3.0.
O ADO escrito em pginas ASP e executado no servidor Web, e retorna as informaes dos
bancos de dados em formato HTML. A pgina retornada pode ser visualizada por qualquer browser
em qualquer plataforma, pois o cdigo todo executado pelo Servidor.
Esta coleo de objetos constitui uma camada entre a sua pgina na Web e o seu banco de dados.
Para acessar o banco de dados, voc escrever cdigos que configuraro propriedades e mtodos
dos objetos do ADO.
A comunicao do ADO com o banco de dados feita atravs de OLE-DB (baseado na tecnologia
COM) ou banco de dados que possuem drives ODBC (nesta opo a comunicao feita atravs
da biblioteca MSDASQL.dll). Neste curso abordaremos a comunicao ADO
ODBC.
Pgina 69
Captulo X Acessando Banco de Dados
Instalando o ADO
Como o ADO faz parte do Microsoft Data Access Components, este pacote automaticamente
instalado e registrado pelo IIS.
Objetos do ADO
Com o ADO, voc pode criar os objetos independentemente, o que permite a escrita de um cdigo
mais simples e a criao apenas dos objetos que voc precisa.
Connection
O objeto Connection representa uma conexo aberta com a origem de dados. Voc utiliza o
Connection para manter aberta em memria uma conexo com o banco de dados para que outros
objetos possam acess-lo, como por exemplo, o objeto Recordset.
Pgina 70
Captulo X Acessando Banco de Dados
Este objeto possui uma coleo que armazena qualquer erro que ocorra quando o acesso feito
chamada Errors.
Para estabelecer uma conexo com a fonte de dados, primeiramente devemos criar um objeto
Connection. Para isto, utilizamos o mtodo CreateObject (objeto Server). Para conectar com a
origem de dados, voc utiliza o mtodo Open.
Onde DataSourceName o nome do DSN criado no ODBC, User o nome do usurio que tem
permisso de acesso e sua Senha.
Exemplo
O exemplo abaixo cria um objeto Connection chamado MinhaConexao e, atravs dele, abre uma
conexo com a origem de dados chamada Externo (DSN definido no ODBC).
<%
Set MinhaConexao = Server.CreateObject (ADODB.Connection)
MinhaConexao.Open Externo, ,
%>
Quando voc termina de trabalhar com seu banco de dados, voc deve utilizar o mtodo Close do
objeto Connection para liberar qualquer associao com o recurso do sistema. Usando o mtodo
Close, voc no libera memria. Voc pode modificar as propriedades do objeto, e ento utilizar o
Open para abri-lo novamente. Para remover o objeto da memria, voc deve atribuir ao objeto o
valor Nothing.
Exemplo:
<%
MinhaConexao.close
Set MinhaConexao = Nothing
%>
Se voc no fechar o objeto Connection, ele ser fechado automaticamente quando o arquivo
.asp terminar de ser executado pelo Servidor. Se houver a necessidade da conexo ficar aberta
durante toda uma sesso ou aplicao, voc pode armazenar o objeto Connection como uma
varivel dos objetos Session ou Application.
muito importante pensar quando deve-se abrir uma conexo com o banco de dados, pois a
origem de dados possui um limite de conexes. Quanto mais conexes existirem simultaneamente,
mais provvel que outra aplicao que tente abrir a mesma origem de dados tenha o acesso
negado, justamente pelo limite de conexes. Por isso, sempre importante verificar a necessidade
de uma conexo permanecer durante toda a aplicao ou sesso.
Desenvolvimento de Aplicaes para Internet Plataforma Microsoft
Pgina 71
Captulo X Acessando Banco de Dados
Alm do mais, o pedido de abertura de uma conexo com a origem de dados um servio que
exige mltiplos ciclos da CPU. Abrir e fechar conexes repetidamente pode causar grande
demanda no servidor. Se uma conexo ser utilizada novamente em um espao de tempo
relativamente curto, uma boa idia no fech-la.
Recordset
Criando um RecordSet
Para criar um novo RecordSet, utilizaremos o mtodo CreateObject (objeto Server). Observe o
exemplo:
<%
Set MeuRecordSet = Server.CreateObject ("ADODB.RecordSet")
%>
Pgina 72
Captulo X Acessando Banco de Dados
<%
Set Conex = Server.CreateObject (ADODB.Connection)
Conex.Open BancoDados, ,
Com o cdigo acima, criamos a conexo Conex com o DSN BancoDados. Instanciamos um
RecordSet RS e nele colocamos todos os registros da tabela TabClientes atravs de uma instruo
SQL. O RecordSet criado utiliza como tipo de cursor o Static e como tipo de trava de registros o
Batch Optimistic.
As propriedades BOF (Beginning Of File) e EOF (End Of File) permitem que seja testada se a
posio do registro atual encontra-se no comeo do RecordSet (BOF) ou no fim do mesmo (EOF).
Veja um exemplo:
(...)
sql = "SELECT * FROM Produtos WHERE CodProd = " & CodDigitado & " "
RS.Open sql, conexao, 3, 3
If RS.EOF then
Response.Write "Cdigo inexistente no cadastro!"
End if
%>
No exemplo acima, a instruo SQL cria um RecordSet RS com registros da tabela Produtos cujo
campo CodProd seja igual varivel CodDigitado. Caso esta pesquisa no retorne resultado
algum (ou seja, caso a clusula WHERE no for satisfeita ou a tabela estiver vazia) o registro atual
estar posicionado no fim do RecordSet. Desta forma, foi utilizada a propriedade EOF para emitir
uma mensagem de parmetro no encontrado.
Propriedade RecordCount
Esta propriedade contm o nmero de registros que um RecordSet possui. Observe um exemplo:
(...)
sql = "SELECT * FROM Produtos WHERE CodProd = ' " & CodDigitado & " ' "
RS.Open sql, conexao, 3, 3
Response.Write "Foram encontrados " & RS.RecordCount & " registros"
%>
Pgina 73
Captulo X Acessando Banco de Dados
MoveFirst
Este mtodo move o ponteiro do registro atual para o primeiro registro do RecordSet. Lembre-se
que nesta posio, a propriedade BOF do RecordSet valer True. O seguinte exemplo move o
ponteiro para o primeiro registro do RecordSet RS:
RS.MoveFirst
MoveLast
Este mtodo move o ponteiro do registro atual para o fim do RecordSet. Nesta posio, a
propriedade EOF do RecordSet valer True. O exemplo abaixo move o ponteiro para o final do
RecordSet RS:
RS.MoveLast
MoveNext
O mtodo MoveNext move o ponteiro do registro atual para o prximo registro do RecordSet.
Lembre-se: se o ponteiro estiver no fim do RecordSet (EOF), ao utilizar este mtodo um erro
ocorrer. Veja o seguinte exemplo, que desloca de uma posio o ponteiro do RecordSet RS
RS.MoveNext
MovePrevious
MovePrevious move o ponteiro para o registro anterior ao atual. Ateno: se o ponteiro localizar-se
no primeiro registro (BOF) o uso deste mtodo acarretar num erro. O seguinte exemplo move o
ponteiro para o primeiro registro do RecordSet RS:
RS.MoveFirst
Manipulando Registros
Para manipular (adicionar, excluir, editar) registros em uma tabela, devemos fazer uso de
RecordSets. Para isso, podemos utilizar dois modos: atravs de mtodos do RecordSet ou atravs
de Instrues SQL.
Pgina 74
Captulo X Acessando Banco de Dados
Update
AddNew
Onde NomedoRecordSet o nome dado ao objeto do tipo RecordSet que est sendo manipulado,
campo1tabela e campo2tabela so os nomes dos campos da tabela do banco de dados e valor1 e
valor2 so os valores a que se deseja atribuir a estes campos. Para visualizarmos melhor estes
conceitos, vejamos um exemplo:
(...)
varnome = Request.Form("txtNome")
vartelefone = Request.Form("txtTelefone")
RS.MoveLast
RS.AddNew
RS("nome") = varnome
RS("telefone") = vartelefone
RS.Update
%>
Com o cdigo acima, gravamos no banco de dados (que est associado conexo do RecordSet
RS) um novo registro (de campos so nome e telefone) com os valores armazenados nas variveis
varnome e vartelefone (que vieram de um formulrio HTML).
Delete
(...)
RGDigitado = Request.Form("txtRG")
sql = "SELECT * FROM Clientes WHERE RG = ' " & RGDigitado & " ' "
RS.Open sql, conexao, 3, 3
If Not RS.EOF then
RS.Delete
Response.Write "Registro excludo!"
Else
Response.Write "RG inexistente!"
End if
Desenvolvimento%>de Aplicaes para Internet Plataforma Microsoft
Pgina 75
Captulo X Acessando Banco de Dados
No exemplo citado, o registro que contm o campo RG procurado excludo. Caso no exista o
registro, exibida uma mensagem de RG inexistente.
Para manipular registros atravs de instrues SQL, devemos utilizar o mtodo Execute do objeto
Connection.
Sintaxe: Set NomeRecordSet = NomeConexao.Execute (sql)
Onde NomedoRecordSet o nome dado ao objeto do tipo RecordSet que ser manipulado,
NomeConexao o nome dado ao objeto do tipo Connection existente na aplicao e sql a
instruo SQL a ser executada no RecordSet.
Veja um cdigo exemplo de insero de registro utilizando uma instruo SQL:
<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "BancoDados", "", ""
varcliente = Request.Form("txtCliente")
varmail = Request.Form("txtMail")
sql = "INSERT INTO Clientes (Cliente, EMail) VALUES (' "& varcliente &" ' , ' "& varmail &" ') "
set RS = Conexao.execute(sql)
%>
No exemplo acima adicionamos na tabela Clientes um registro (com campos Cliente e EMail) com
os valores das variveis varcliente e valmail, utilizando para isso o mtodo Execute do objeto
Connection criado, passando como parmetro para este mtodo a instruo SQL.
No exemplo citado, so excludos da tabela Clientes os registros cujo campo codigo seja igual ao
valor da varivel varcod.
<%
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "BancoDados", "", ""
varcod = Request.Form("txtcod")
sql = "UPDATE Clientes SET Clientes.fone = ' " varfone & " ' WHERE Clientes.cod = ' " & varcod & " ' "
set RS = Conexao.execute(sql)
%>
Pgina 76
Captulo X Acessando Banco de Dados
Com o cdigo acima, atualizamos o campo fone do registro cujo campo cod possui valor igual
varivel varcod.
Pgina 77
Captulo XI Segurana
CAPTULO XI SEGUNRANA
O Microsoft Internet Information Server (IIS) est integrado ao sistema operacional Microsoft
Windows NT Server o que significa que o IIS possui as mesma caractersticas de segurana do
NT.
Segurana Integrada
Gerenciando
As permisses para controle de acesso aos arquivos e diretrios podem ser configuradas
graficamente pelo Windows NT, pois o IIS utiliza o Server Access Control Lists (ACLs): uma lista
contendo todas as permisses de cada usurio.
A integrao Windows NT e IIS tambm permite a auditoria de sistema para maior monitoramento
da segurana dos recursos utilizados. Por exemplo, tentativas de acesso de um usurio a um
recurso no autorizado pode ser armazenado pelo Windows NT Event Log e visualizado pelas
ferramentas administrativas do NT.
Controle de Acesso
Um dos itens mais importantes de segurana do IIS o controle de acesso aos arquivos e
aplicaes no servidor. O IIS possui os seguintes itens para controle de acesso e segurana:
Como vimos, a segurana do IIS integrada ao Windows NT File System. Tenha sempre em
mente que para acessar qualquer recurso do NT preciso uma senha e um usurio. Este recurso
permite aos administradores gerenciar as contas, incluindo a sua auditoria e o armazenamento de
Pgina 78
Captulo XI Segurana
Acesso Annimo
No setup, o IIS cria uma conta annima para conexes Web no autenticadas. Quando a
segurana no requisitada, o pedido processado pelo servidor no contexto de segurana de
uma conexo annima. Esta conta pode ter acesso apenas a arquivos e aplicaes que possui
permisso para acessar.
O IIS tambm suporta este tipo de autenticao do NT, que utilizao a tcnica de encriptao
para autenticar os usurios. Na verdade, a senha nunca passada pela rede. Uma vez que toda
conexo mapeada diretamente para a conta do usurio no Windows NT, os usurios da Internet
apenas precisam efetuar o logon uma vez que ser vlido para todos os servidores e servios no
domnio do Windows NT.
Certificados Digitais
Uma autenticao baseada em certificados digitais requer um protocolo que esteja habilitado a
entender este certificao tanto no cliente como no servidor. O certificado do servidor aparece
para o cliente, desta maneira o cliente pode validar a identidade do servidor.
Quando o SSL executado, necessrio que um servidor tenha este certificado. Opcionalmente,
um servidor pode solicitar ao cliente este certificado. Um certificado para o servidor, contem o
nome do Website, e o browser verificar se o endereo URL o nome especificado no certificado.
O IIS possui um conjunto de APIs que podem ser utilizadas pelo programadores para criar filtros
que autenticam usurios baseados em regras customizadas. Este recurso oferece aos
administradores maior flexibilidade para o controle de acesso utilizando qualquer esquema de
autenticao ou diretrios externos.
Pgina 79
Captulo XI Segurana
Uma vez que os usurios esto autenticados, o IIS verifica se estes tm permisso para acesso
aos arquivos e aplicaes requisitadas.
Endereos IP
Para a Internet, cada servidor e cliente tem uma endereo Internet especfico chamado IP
address. O IIS pode ser configurado para garantir ou negar o acesso a uma aplicao para um
especfico endereo IP. Configurando o IIS desta forma, os administradores podem permitir apenas
que um determinado domnio acesse determinada aplicao.
O objeto do NTFS oferecer segurana para os servidores Web nos contextos Internet e Intranet.
Permite que os administradores configurem permisses de usurios a arquivos individuais, no
apenas para pastas ou diretrios. Utilizando este recurso nos arquivos e diretrio disponibilizados
pelo IIS, os administradores ajudam a verificao do usurio
Uma vez que a restrio do endereo IP do usurio satisfeita, a conta do usurio ou a senha so
validadas, e a permisso do diretrio virtual contemplada, o IIS tentar acessar o recurso
solicitado pelo cliente (baseado na URL) utilizando o contexto de segurana da autenticao do
usurio. Todos estes itens de validao garantem a verificao do acesso baseado nas
permisses do NTFS, oferecendo aos administradores um controle maior dos recursos e
informaes disponibilizadas.
O Windows NT identifica cada usurio por uma identificao nica de segurana global (SID) e no
pelo nome da conta. este SID que o NT utiliza para verificar as permisses dos usurios. Os
nomes das contas foram criados para a interface com o usurio ficar mais amigvel.
Quando uma conta excluda, todas as entradas no ACL e associaes de grupos tambm so
excludas. Os SIDs e a sincronizao garantem que uma conta criada com o mesmo nome de uma
que j tenha sido excluda, no receba as configuraes de permisso da conta excluda.
Permisses no IIS
O IIS permite que o administrador configure permisses de apenas leitura e execuo nos
diretrios virtuais. Para cada pedido, o IIS examina a URL e o tipo de pedido feito e ento, verifica
se as permisses configuradas no diretrio virtual so contempladas. Esta verificao assegura
que os pedidos para leitura de arquivos configurados com apenas execuo no sejam lidos e
arquivos apenas de leitura, no sejam executados.
Auditoria
Pgina 80
Captulo XI Segurana
Os requisitos de segurana no IIS devem ser configurados para cada diretrio virtual. Este item
est localizado dentro de suas propriedades. Para habilitar as propriedades de um diretrio virtual,
clique-o com o boto direito do mouse e selecione o item Properties.
Ser ento aberta a janela de propriedades. Para visualizar os itens de segurana selecione a
pasta Directory Security:
A tela acima ser mostrada. Vamos descrever cada item desta pgina:
Ao configurar este item, voc poder permitir o acesso annimo, o acesso solicitando ao usurio
sua identificao no Windows NT por encriptao ou sem encriptao.
Pgina 81
Captulo XI Segurana
Primeiro item: Allow Anonymous Access. Pressionando o boto Edit ..., voc pode
especificar a conta que deve fazer o acesso annimo:
Segundo item: Basic Authentication. Neste item ser solicitado ao usurio sua identificao.
importante lembrar que a senha passada pela rede sem encriptao.
Nesta prxima tela, voc deve especificar o domnio onde esto cadastrados os usurios que tero
permisso de acesso:
Pgina 82
Captulo XI Segurana
Para selecionar um
domnio, clique em
Browse ...
Pgina 83
Captulo XI Segurana
Terceiro item: IP Address and Domain Name Restrictions. Neste item, voc estar configurando
os IPs e domnios que tero acesso ao diretrio.
Granted Access:
Garante permisso para todas as
mquinas e domnios, menos para
as listadas no item Except those
listed below.
Denied Access:
Lista dos IPs das mquinas e Desabilita o acesso a todos,
domnios menos para as mquinas e domnios
listados no item Except those listed
below.
Para adicionar IPs de mquinas e domnios, clique em Add ... A tela a seguir ser mostrada:
Single Computer
Se este item for especificado, lhe ser
pedido o IP da mquina.
Pgina 84
Captulo XI Segurana
Se voc escolher conceder permisso de acesso um domnio, a mensagem de aviso abaixo ser
mostrada:
Resumo
Pgina 85