Anda di halaman 1dari 121

Universidade do Sagrado Corao

Centro de Cincias Exatas e Naturais

Apostila de ASP
(Active Server Pages)

Prof. Ms. Ronaldo Martins da Costa

Universidade do Sagrado Corao USC

Centro de Cincias Exatas e Naturais

http//:www.usc.br

ndice
1. Introduo..................................................................................................................1
2. O Internet Information Server (IIS)............................................................................5
3. Instalando o Internet Information Server no Windows XP.......................................15
4. Formulrios e ASP...................................................................................................28
5. O que VBScript.....................................................................................................31
6. Variveis..................................................................................................................39
7. Operadores..............................................................................................................50
8. Comandos bsicos do VBSript................................................................................61
9. Os objetos do ASP..................................................................................................74
10. Open DataBase Conectivity (ODBC).......................................................................85
11. Acessando Banco de Dados...................................................................................89
12. Segurana...............................................................................................................96
Apndice A Instalao do banco MySql...................................................................103
Apndice B Instalao do MySql front verso 2.5....................................................109
Apndice C Instalao do MySql ODBC..................................................................115

Lista de Figuras
Figura 1.1: Forma de funcionamento de aplicaes ASP...............................................3
Figura 2.1: Apresentao do Option Pack do Windows NT............................................5
Figura 2.2: Solicitao do tipo de instalao a ser executado........................................6
Figura 2.3: Seleo dos componentes a serem instalados.............................................6
Figura 2.4: Seleo das pastas para a instalao...........................................................7
Figura 2.5: Management Console...................................................................................8
Figura 2.6: Descrio do site a ser criado.......................................................................8
Figura 2.7: IP da mquina e a porta para WEB...............................................................9
Figura 2.8: Caminho do diretrio HOME.........................................................................9
Figura 2.9: Configurao das opes de acesso ao site...............................................10
Figura 2.10: Configurao dos acessos ao site............................................................10
Figura 2.11: Alterao das configuraes padro.........................................................11
Figura 2.12: Criao de um diretrio virtual..................................................................12
Figura 2.13: Especificao da pasta fsica para o diretrio virtual................................12
Figura 2.14: Especificao dos tipos de acesso da pasta/ diretrio virtual...................13
Figura 2.15: Propriedades dos diretrios virtuais..........................................................13
Figura 2.16: Configurao dos arquivos e respectivas dlls..........................................14
Figura 3.1: Tela inicial de instalao.............................................................................16
Figura 3.2: Seleo do tipo de componente a ser instalado.........................................16
Figura 3.3: Progresso da instalao..............................................................................17
Figura 3.4: Tela de concluso da instalao.................................................................17
Figura 3.5: rea de administrao do IIS......................................................................18
Figura 3.6: Ferramentas administrativas do XP............................................................18
Figura 3.7: Seleo do IIS.............................................................................................18
Figura 3.8: Tela do IIS...................................................................................................19
Figura 3.9: Status do Web Site......................................................................................19
Figura 3.10: Alterando configuraes do Web Site Padro..........................................20
Figura 3.11: Configuraes do Web Site Padro..........................................................20
Figura 3.12: Alterao da pasta base para o site..........................................................21
Figura 3.13: Pesquisa no Diretrio................................................................................22
Figura 3.14: Documento padro para pesquisa............................................................23
Figura 3.15: Alterando a ordem dos documentos.........................................................23
Figura 3.16: Criando um novo site com extenses no servidor....................................24
Figura 3.17: Criando um novo site................................................................................24
Figura 3.18: Criando um novo SubWeb........................................................................25
Figura 3.19: Escolha de uma nova pasta e ttulo..........................................................25
Figura 3.20: Escolha do nome do administrador...........................................................26

Figura 3.21: Nova SubWeb criada................................................................................26


Figura 3.22: Pastas e arquivos das extenses do servidor...........................................27
Figura 5.1: Resultado de cdigo mesclando HTML e ASP...........................................35
Figura 5.2: Resultado de uma funo VBScript retornando a data...............................35
Figura 6.1: Resultado da execuo da funo VarType...............................................42
Figura 6.2: Teste com variveis globais e locais...........................................................44
Figura 6.3: Erro retornado por no declarar explicitamente variveis...........................48
Figura 8.1: Execuo do comando Do... Until...............................................................67
Figura 8.2: Execuo do comando While... WEnd........................................................70
Figura 9.1: Objeto Application.......................................................................................75
Figura 9.2: Objeto Server..............................................................................................77
Figura 9.3: Objeto Response.Write...............................................................................81
Figura 9.4: Objeto Request...........................................................................................84
Figura 10.1: Janela para configurao do ODBC..........................................................85
Figura 10.2: Tela de configurao da Fonte de Dados de sistema...............................86
Figura 10.3: Configurao do tipo de drive ODBC........................................................87
Figura 10.4: Seleo do local e nome da Fonte de Dados...........................................87
Figura 12.1: Segurana de Diretrio...........................................................................100
Figura 12.2: Tela para configurao do acesso annimo...........................................101
Figura 12.3: Aviso de item inseguro............................................................................101
Figura A.1: Tela inicial de instalao do MySql Server and Clients 3.23.55...............103
Figura A.2: Resumo das configuraes para instalao.............................................104
Figura A.3: Seleo do caminho para instalao........................................................104
Figura A.4: Seleo do tipo de instalao (tpica / compacta / personalizada)...........105
Figura A.5: Relao de itens a serem instalados........................................................105
Figura A.6: Progresso da instalao...........................................................................106
Figura A.7: Concluso da instalao...........................................................................106
Figura A.8: Tela do DOS para configurar o banco......................................................107
Figura B.1: Solicitao da confirmao para instalao..............................................109
Figura B.2: Informaes sobre o front.........................................................................109
Figura B.3: Informaes sobre a licena.....................................................................110
Figura B.4: Seleo da pasta para instalao.............................................................110
Figura B.5: Informaes do atalho que ser criado.....................................................111
Figura B.6: Informaes sobre a criao do atalho na rea de trabalho.....................112
Figura B.7: Resumo das tarefas que sero executadas.............................................112
Figura B.8: Finalizao da instalao..........................................................................113
Figura B.9: ltima tela da instalao do front..............................................................114
Figura C.1: Tela inicial da instalao do drive ODBC.................................................115

Figura C.2: Seleo do tipo de drive a ser instalado...................................................115


Figura C.3: Seleo do tipo banco de dados a ser acessado.....................................116
Figura C.4: Final da instalao do drive ODBC para MySQL.....................................116

ASP Active Server Pages

1. Introduo
Alguns conceitos
A Internet um conjunto de redes de computadores interligados pelo mundo
inteiro, que tm em comum um conjunto de protocolos e servios, de forma que os
usurios a ela conectados podem utilizar os servios de informao e comunicao de
alcance mundial tais como: e-mail, servidores Web, ftp, irc, icq etc.
O que popularizou a Internet foi a criao da World Wide Web. Trata-se de um
servio para a transmisso multimdia de informaes implementado pelo protocolo de
aplicao HTTP(Hypertext Transfer Protocol).
Um Cliente HTTP(Browser WEB) se comunica com um servidor HTTP(Servidor
WEB) requisitando arquivos. Geralmente esses arquivos esto no formato HTML
(Hypertext Markup Language) que pode conter referncias para outros arquivos
diversos (imagens, sons, vdeos etc). Ao receber o arquivo HTML o cliente verifica
cada referncia, solicitando ao servidor HTTP os arquivos indicados.
Esse modelo de funcionamento limita bastante o uso da Web uma vez que as
pginas HTML tm um contedo esttico, ou seja, sempre so exibidas da mesma
forma e no possibilitam nenhuma interao com o usurio.
Para deixar a Web mais dinmica e interativa, criou-se o CGI (Common
Gateway Interface). Desta forma possvel executar programas num servidor Web
que podem ser requisitados por um cliente Web. O programa processado e o
resultado desse processamento enviado pelo servidor Web ao cliente, geralmente no
formato HTML. importante perceber onde est o dinamismo do CGI: o
processamento de tais programas pode retornar diferentes resultados, dependendo
dos parmetros informados pelo cliente ao programa CGI.
Apesar de dar mais vida a web, programas CGI possuem uma srie de
desvantagens tcnicas, sendo a principal delas o fato de tais programas executarem
num processo diferente do Web Server. Sendo assim, um servidor web que recebe
vrias requisies simultneas, facilmente ir sobrecarregar.
Devido a este fato surgiu, e ainda surgem a cada dia, tecnologias alternativas
ao uso do CGI: ISAPI, NISAPI, IDC/HTX, Cold Fusion, Java Server Pages (JSP),
Personal Home Page (PHP), Active Server Pages (ASP) etc.
ASP uma tecnologia da Microsoft que disponibiliza um conjunto de
componentes para o desenvolvimento de pginas Web dinmicas. Tais pginas
consistem em arquivos de extenso *.asp no formato texto(ASCII) que contm
combinaes de scripts e tags HTML.
Como todo cdigo de programao existente em pginas ASP executado no
servidor, e este s retorna ao cliente respostas em HTML, aplicaes ASP tm seu

Universidade do Sagrado Corao

ASP Active Server Pages

cdigo fonte totalmente preservado alm de poderem ser acessadas por qualquer
browser existente no mercado.
Entre os recursos que podem ser implementados com ASP, pode-se citar:
? Programao com Visual Basic Script e Java Script
? Acesso a banco de dados
? Envio de e-mail
Client Side Scripts
So cdigos de programa que so processados pela estao cliente.
Geralmente em aplicaes voltadas para a Internet, o cdigo que executado no
cliente cuida apenas de pequenas consistncias de telas e validaes de entrada de
dados
Em se tratando de pginas web, os client-side scripts tero de ser processados
por um browser. O maior problema de se utilizar este tipo de artifcio em uma
aplicao a incompatibilidade de interpretao da linguagem entre os browsers. O
Microsoft Internet Explorer, por exemplo, capaz de interpretar o Visual Basic Script,
porm o Netscape no o faz sem o auxlio de um plug in (que foi desenvolvido por
terceiros). H ainda o problema de verses muito antigas de navegadores, que no
conseguem interpretar nenhum script.
Em grande parte das situaes, no possvel exigir que o usurio final
disponha de determinado produto para acessar a aplicao. Portanto importante
pesar todos estes fatores ao planejar alguma aplicao com client-side scripts.
A linguagem script mais indicada para se construir client-side scripts o
JavaScript, devido a sua compatibilidade com os dois browsers (Netscape e Microsoft
Internet Explorer, que devem ser de verses iguais ou superiores a 3.0 e 4.0
respectivamente).
Server Side Scripts
So cdigos de programa que so processados no servidor. Devido a este fato,
no necessrio preocupar-se com a linguagem que o cdigo foi criado: o servidor
quem se encarrega de interpret-lo e de devolver uma resposta para o cliente. Em
pginas ASP, so esses cdigos os maiores responsveis pelos resultados
apresentados, e a linguagem default utilizada o Visual Basic Script.
A Figura 1.1 demonstra a forma de funcionamento de uma aplicao em ASP.

Universidade do Sagrado Corao

ASP Active Server Pages

Servidor ASP

Requisio
de teste.asp

...
<% if Hora(Now) < 12
then %>
Bom Dia
<% else %>
Boa Tarde
<% end if %>

I
N
T
E
R
N
E
T

Browser
Cliente

<html>
Bom Dia
</html>

Figura 1.1: Forma de funcionamento de aplicaes ASP.


Vantagens do ASP
? Independncia do browser: ASP pode rodar pginas complexas no
servidor e enviar somente os resultados para o cliente.
? Pginas x Bancos de Dados: Permite visualizar, atualizar e adicionar
informaes nos servidores SQL.
? Segurana do cdigo fonte: Como o Servidor retorna somente o
resultado html, o cdigo fonte fica preservado.
? Linguagens: O ASP pode utilizar comandos em VBScript, JavaScript e
Html.

Requisitos do ASP
? O computador que hospedar as pginas deve rodar Windows NT
Server, Windows NT Workstation, Windows 95 ou Windows 98.
? O Microsoft Internet Information Server (IIS), o Peer Web Services
(PWS) ou ainda o Personal Web Server (PWS, tambm) deve estar
instalado neste computador. O Windows NT 4.0 vem com a verso 2.0
do IIS, que no suficiente, para tal plataforma, necessrio atualizar a
verso do IIS para 3 ou 4.
? Ao utilizar recursos de acesso a bancos de dados, estes devem estar
disponveis atravs de um drive ODBC.

Universidade do Sagrado Corao

ASP Active Server Pages

? As aplicaes ASP devero estar armazenadas em uma pasta no


servidor de pginas. Esta pasta dever possuir a opo de execuo
para todos os usurios.

Resumo
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 cliente
recebe somente cdigo HTML padro.
O cdigo fonte estar protegido?
Sim. Como o servidor retorna somente o resultado HTML, o cdigo fonte
(lgica) fica preservado. Se, no browser, visualizar o cdigo fonte da pgina, somente
poder ser visto cdigos HTML.
O NT Server j vem com o IIS 2. Pode-se utiliz-lo para Active Server
Pages?
No. A tecnologia ASP foi incorporada somente a partir da verso 3.

Universidade do Sagrado Corao

ASP Active Server Pages

2. O Internet Information Server (IIS)


O Microsoft Internet Information Server (IIS) o servidor web da Microsoft.
nele que se deve configurar os alicerces das aplicaes ASP, criando diretrios
virtuais, definindo permisses de acesso e disponibilizando as aplicaes. atravs
do Management Console do IIS que estas configuraes so feitas.
A Instalao do IIS
Antes de detalhar a instalao do IIS, preciso saber quais so seus prrequisitos:
? Windows NT Server 4.0
? Internet Explorer 4.0 ou superior.
? Option Pack 4.0
A partir destes softwares e pacotes, possvel iniciar a instalao do IIS que na
verdade, faz parte do pacote Option Pack 4.0 da Microsoft.
Ao iniciar a instalao, a primeira tela a ser apresentada a de apresentao
do produto, conforme demonstrado na Figura 2.1.

Figura 2.1: Apresentao do Option Pack do Windows NT.


Aps selecionar o boto Next(prximo) ser exibida a tela que solicita o tipo
de instalao a ser executado, esta tela pode ser vista na Figura 2.2. Neste exemplo
ser demonstrada a instalao custom(personalizada).
Universidade do Sagrado Corao

ASP Active Server Pages

Figura 2.2: Solicitao do tipo de instalao a ser executado.


A prxima tela que ser apresentada, conforme a Figura 2.3, permite a seleo
dos componentes a serem instalados.

Figura 2.3: Seleo dos componentes a serem instalados.

Universidade do Sagrado Corao

ASP Active Server Pages

Tendo selecionado os pacotes que sero instalados, a prxima etapa ser


selecionar as pastas onde o produto ser instalado. Esta tela pode ser vista na Figura
2.4.

Figura 2.4: Seleo das pastas para a instalao.


Aps realizar estas tarefas, a instalao do IIS estar concluda.
O Management Console
O Management Console o painel de administrao geral do Microsoft Internet
Information Server. atravs dele que so feitas as configuraes de todos os sites e
aplicaes hospedados no servidor.
A Figura 2.5 mostra a tela do Management Console.

Universidade do Sagrado Corao

ASP Active Server Pages

Figura 2.5: Management Console.


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. Ser
exibida uma tela que permite informar a descrio do site que ser criado, conforme a
Figura 2.6.

Figura 2.6: Descrio do site a ser criado.


Na prxima tela, conforme pode ser observado na Figura 2.7, ser necessrio
informar o IP da mquina que hospedar o site e a porta para o servidor WEB, que
normalmente a 80.

Universidade do Sagrado Corao

ASP Active Server Pages

Figura 2.7: IP da mquina e a porta para WEB.


Na prxima tela deve ser informado o caminho do diretrio HOME para o site
que est sendo criado. Esta solicitao pode ser observada na Figura 2.8.

Figura 2.8: Caminho do diretrio HOME.


Na prxima tela, que pode ser vista na Figura 2.9, devem ser configuradas as
opes de acessos ao novo site que foi criado.
Depois de criado o novo site, suas configuraes podem ser alteradas. A
Figura 2.10 exibe a tela que permite realizar tais alteraes. Para executar esta
operao, basta clicar com o boto direito do mouse sobre o Web Site e selecionar a
opo Properties.

Universidade do Sagrado Corao

ASP Active Server Pages

Figura 2.9: Configurao das opes de acesso ao site.

Figura 2.10: Configurao dos acessos ao site.


Cada site possui suas prprias configuraes. Estas so independentes de
outros sites, ou seja, as configuraes feitas para um site no sero as mesmas para
outro. A tela de propriedades dos sites permite que voc configure contas de
segurana, performance, filtros ISAPI, diretrio home, documentos, cabealhos HTTP,
mensagens de erros, etc.
A Tabela 2.1 apresenta um resumo de cada uma das guias apresentadas na
configurao.

Universidade do Sagrado Corao

10

ASP Active Server Pages

Guia

Descrio

Web Site

Configurao do IP, portas de conexo e capacidades de login.

Security Accounts

Configurao das permisses de usurios.

Performance

Estabelece 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.

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.

Tabela 2.1: Resumo de cada uma das guias apresentadas na configurao


Alterando os valores padro do site
possvel tambm alterar as propriedades padro (Default) para todos os sites
criados. Para isso, selecione o nome da mquina onde deve-se criar os web sites e
clique no boto edit. Ser apresentada a tela demonstrada na Figura 2.11.

Figura 2.11: Alterao das configuraes padro.


Criando diretrios virtuais
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.usc.br/dirvirtual .
atravs do Management Console que possvel a criao de diretrios
virtuais e ajustar as propriedades de cada um deles.
Universidade do Sagrado Corao

11

ASP Active Server Pages

Para criar um novo diretrio virtual, deve-se clicar com o boto direito do
mouse no web site onde est localizado este diretrio e selecione a opo New ?
Virtual Directory. Ser apresentada uma tela, conforme demonstrado na Figura 2.12.
Aps apresentar esta opo, deve ser informado o alias desejado no campo
apresentado.

Figura 2.12: Criao de um diretrio virtual.


A tela que segue, conforme apresentado na Figura 2.13, solicita a localizao
fsica deste diretrio virtual que foi criado.

Figura 2.13: Especificao da pasta fsica para o diretrio virtual.


A prxima tela, que apresentada na Figura 2.14, solicita as formas de acesso
que cada usurio possuir na pasta/diretrio virtual criado. Para que o usurio tenha a
permisso de rodar um script, necessrio que seja dada a permisso Allow Script
Access.

Universidade do Sagrado Corao

12

ASP Active Server Pages

Figura 2.14: Especificao dos tipos de acesso da pasta/ diretrio virtual.


Configurando as caractersticas das aplicaes
As propriedades de um diretrio virtual so um pouco diferente das
propriedades dos sites, pois no necessrio configurar especificaes do servio
HTTP. Para visualizar as propriedades dos diretrios virtuais, basta seleciona-lo e
clicar com o boto direito do mouse, escolhendo a opo Properties e ser
apresentada uma tela, conforme demonstrado na Figura 2.15.
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

Clicando neste boto,


possvel
configurar
as
propriedades da aplicao.

Figura 2.15: Propriedades dos diretrios virtuais.

Permisses
de
Script
Neste item, possvel
configurar as permisses
para execuo de scripts.
Para que um ASP possa ser
rodado preciso, pelo
menos, permisso de Scritp.

Ao clicar no boto configuration ser apresentada a tela que pode ser vista na
Figura 2.16, atravs desta tela possvel configurar os arquivos que a aplicao
estar utilizando, conforme suas extenses. Se uma aplicao estiver utilizando
arquivos com extenso .asp por exemplo, estes devem ser processados pela DLL
asp.dll, localizada em c:\winnt\system32\inetsrv\asp.dll.
Universidade do Sagrado Corao

13

ASP Active Server Pages

Figura 2.16: Configurao dos arquivos e respectivas dlls.

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.

Universidade do Sagrado Corao

14

ASP Active Server Pages

3. Instalando o Internet Information Server no Windows XP


Os usurios que migraram recentemente do Windows 95 ou 98 para o novo
sitema operacional da Microsoft Windows XP, e utilizavam antes o Personal Web
Server, devem ter notado que o PWS j no mais acompanha a evoluo deste
sistema operacional, sendo inclusive impraticvel sua instalao para o Windows XP.
O PWS no pode ser atualizado a partir de produtos Windows anteriores. Isto deve-se
ao fato de que o Windows XP utiliza a tecnologia NT, e agora, para utilizar um servidor
WWW para trabalhar "localmente" e ver as pginas antes da publicao na internet
devem optar pelo IIS (Internet information Services).
O IIS para o Windows XP Professional foi projetado para desenvolvedores
Web, para ser usado em aplicaes domesticas ou empresarias. O IIS Professional
substitui o PWS e s pode servir 10 conexes de cliente simultneas e no aproveita
todos os recursos das verses do servidor.
Por isso, no recomendado a disponibilizar um site na Internet ou Intranet
atravs deste servidor, devido ao limite de conexes simultneas, e ainda, outras
configuraes de segurana devem ser realizadas no servidor web e no sistema
operacional para tal aplicao.
Alguns detalhes a serem observados
A Microsoft recomenda, por motivos de segurana, que antes da sua
instalao, todas as unidades onde o IIS sejam utilizado com o sistema de arquivos
NTFS.
De maneira semelhante ao PWS, antes de instalar o IIS, necessrio que o
protocolo TCP/IP do Windows e os utilitrios de conectividade sejam instalados.
O IIS suporta:
? ASP
? PHP ( necessrio instalar)
? Server Side Includes (SSI)
? Controles ActiveX
? Roda scripts "Internet Server API (ISAPI)" e "Common Gateway
Interface (CGI)"
? Acesso a banco de dados via ODBC
? Secure Sockets Layer (SSL)
Instalando IIS para XP
O IIS distribudo gratuitamente junto com o CD do Windows XP. Sua
instalao simples e auto-explicativa.

Universidade do Sagrado Corao

15

ASP Active Server Pages

Colocando o CD do Windows XP, aparecer a tela inicial de instalao,


conforme a Figura 3.1, onde deve ser escolhida a opo "Instalar Componentes
Opcionais do Windows":

Figura 3.1: Tela inicial de instalao.


Em seguida aparecer uma tela para escolher o tipo de componente a ser
instalado, conforme apresentado na Figura 3.2, deve-se selecionar a opo "Internet
Information Services (IIS)".

Figura 3.2: Seleo do tipo de componente a ser instalado.


Clicando no boto "Avanar>". Aparecer a prxima tela, conforme a Figura
3.3, onde poder ser observado o progresso da instalao.

Universidade do Sagrado Corao

16

ASP Active Server Pages

Figura 3.3: Progresso da instalao.


A instalao simples, pode demorar um pouco, e ao final aparece uma tela
informando o trmino. Clique em "Concluir" para que as configuraes sejam
aplicadas.

Figura 3.4: Tela de concluso da instalao.


Aps o trmino da instalao, o IIS utilizar a seguinte pasta padro:
"C:\Inetpub\wwwroot" . Todos os arquivos que

sero exibidos pelo servidor web

devem estar nesta pasta.


Configurando o IIS
Quando o IIS instalado, criada uma rea de administrao para permitir o
gerenciamento das Webs. Para acessar esta rea de administrao, basta clicar no
menu "Iniciar/Painel de Controle", e ser apresentada uma tela conforme a Figura 3.5.

Universidade do Sagrado Corao

17

ASP Active Server Pages

Figura 3.5: rea de administrao do IIS.


Deve ser acessado o cone de "Desempenho e Manuteno", e em seguida
"Ferramentas Administrativas", conforme Figura 3.6.

Figura 3.6: Ferramentas administrativas do XP.


Nesta etapa, basta clicar em "Internet Information Services ", esta tela pode ser
vista na Figura 3.7.

Figura 3.7: Seleo do IIS.

Universidade do Sagrado Corao

18

ASP Active Server Pages

Aps esta operao, obtm-se acesso rea de administrao do IIS. aqui


que os sites sero criados, a tela do IIS pode ser vista na Figura 3.8.

Figura 3.8: Tela do IIS.


Propriedades de um Web Site Padro
Ao ser instalado, o IIS cria automaticamente um Web Site Padro, j com as
extenses do servidor instaladas e no diretrio j citado (C:\Inetpub\wwwroot).
Ao escolher um dos sites instalados, no caso "Site da Web Padro", clicando
sobre o mesmo, pode-se observar o status do seu servio, atravs da Figura 3.9, na
barra de ferramentas da janela. Da forma como aparece acima, com o boto "Play"
acionado, quer dizer que o servio web est ativo, e que a home page pode ser
encontrada no endereo http://nome_da_maquina.

Figura 3.9: Status do Web Site


Usando os botes, tambm possvel "parar" ou "pausar" um determinado site.
Basta clicar sobre os botes.
possvel configurar algumas propriedades deste Site Padro clicando com o
boto direito do mouse sobre o "Site da Web Padro" e escolhendo o menu
"Propriedades", como observado na Figura 3.10.

Universidade do Sagrado Corao

19

ASP Active Server Pages

Figura 3.10: Alterando configuraes do Web Site Padro


Clicando sobre Propriedades ser apresentada uma tela de configuraes
conforme a Figura 3.11.

Figura 3.11: Configuraes do Web Site Padro


A guia "Diretrio Base" utilizada para alterar o diretrio default
(C:\Inetpub\wwwroot) onde os sites sero criados. possvel alterar este caminho
Universidade do Sagrado Corao

20

ASP Active Server Pages

para qualquer pasta onde se deseja que os arquivos do site sejam gravados. Esta
operao pode ser observada na Figura 3.12.

Figura 3.12: Alterao da pasta base para o site.


Ainda na Figura 3.12, pode-se observar uma seta vermelha ao lado da opo
Gravar, que deve estar selecionada caso a aplicao venha a possuir um banco de
dados nesta pasta para gravar dados.
O campo "Pesquisa no diretrio" permite a pesquisa no diretrio especificado,
caso no exista um documento padro, conforme pode ser visto na Figura 3.13.

Universidade do Sagrado Corao

21

ASP Active Server Pages

Figura 3.13: Pesquisa no Diretrio.


Mais uma opo interessante na aba "Documentos", onde se defini qual o
nome a utilizar como padro para a primeira pgina, assim esta extenso ficar oculta.
Nesta aba, a opo "Ativar documento padro" faz com que, se ativada,
quando no for especificado no browser o nome de um documento, ser procurado um
documento padro, especificado na caixa abaixo. Se esta opo estiver desativada e
no for especificado um nome de uma pgina, aparecer uma mensagem de erro, ou
uma lista de todas as pginas, dependendo se opo "Pesquisa no diretrio" (na aba
"Site da Web"), est ativada ou no.
Na caixa de documentos, sero definidos os nomes dos documentos padro,
ou seja o documento que ser exibido quando o usurio no especificar no nome do
documento

no

browser.

Por

exemplo,

quando

algum

digitar

"http://nome_da_maquina", qual a pgina que ser exibida? isso que definido


nesta

caixa.

Na

Figura

3.14,

valor

deste

campo

"Default.htm,Default.asp,index.htm,iisstart.asp". Isso quer dizer que o servidor ir


verificar se existe na pasta base algum documento de nome "default.htm". Se tiver,
este ser exibido no browser. Se no tiver, ele far uma nova busca na pasta, desta
vez por "default.asp", e assim por diante.

Universidade do Sagrado Corao

22

ASP Active Server Pages

Figura 3.14: Documento padro para pesquisa.


Os botes es querda da caixa servem para alterar a ordem de busca dos
documentos. Para retirar um documento da caixa, clique no nome desejado e depois
clique no boto "Remover". Se desejar adicionar um novo nome para documento
padro, clique no boto "Adicionar" e defina um novo documento padro, esta
operao pode ser observada na Figura 3.14.

Figura 3.15: Alterando a ordem dos documentos.

Criando um novo site com extenses do servidor


Para criar um novo site, com extenses do servidor para o FrontPage, deve-se
clicar novamente com o boto direito em cima do "Site da Web Padro", ser exibida
uma tela, conforme a que apresentada na Figura 3.16.

Universidade do Sagrado Corao

23

ASP Active Server Pages

Figura 3.16: Criando um novo site com extenses no servidor.


No menu, escolhendo "Novo/Web das extenses de Servidor". Para cada site
criado, necessrio repetir esta operao, conforme visto na Figura 3.17.

Figura 3.17: Criando um novo site.


Aparecer um assistente de instalao para uma nova SubWeb, chamada
assim

que

ser

criada

partir

da

raiz

instalada

(http://nome_do_computador/subweb), de acordo com a Figura 3.18.

Universidade do Sagrado Corao

24

ASP Active Server Pages

Figura 3.18: Criando um novo SubWeb.


O prximo passo escolher um nome para a pasta da SubWeb e o ttulo que
ser dado. De acordo com a Figura 3.19

Figura 3.19: Escolha de uma nova pasta e ttulo.


Em seguida ser perguntado o nome do administrador para este site, visto na
Figura 3.20.
.

Universidade do Sagrado Corao

25

ASP Active Server Pages

Figura 3.20: Escolha do nome do administrador.


Voltando para a administrao do IIS, clicando em atualizar possvel observar
a SubWeb criada, visto na Figura 3.21.

Figura 3.21: Nova SubWeb criada.


Importante: Sero criadas mais algumas pastas e arquivos neste diretrio, isto
pode ser observado na Figura 3.22, so os arquivos das extenses do servidor.

Universidade do Sagrado Corao

26

ASP Active Server Pages

Figura 3.22: Pastas e arquivos das extenses do servidor.

Universidade do Sagrado Corao

27

ASP Active Server Pages

4. Formulrios e ASP
A relao entre form HTML e ASP muito importante porque a partir de
formulrio possvel disparar aes, so nestas aes que so chamadas as
pginas ASP. Desta forma possvel consistir os campos, passar parmetros de uma
pgina para outra, etc.
A sintaxe para utilizar um Form no HTML a seguinte:
<form action = nome_arquivo.asp name = nome_do_form method
= mtodo>
objetos da Pgina
</form>
Os parmetros da Tag Form so:
ACTION: neste item, deve-se especificar o diretrio e nome do arquivo ASP a
ser disparado.
NAME: especifique um nome para o formulrio. Este item no obrigatrio.
METHOD: define como os dados sero enviados para o servidor. Existem
vrios mtodos, mas os que sero utilizados com mais freqncia sero: GET e
POST:
GET
Utilizando este mtodo de envio dos dados, os dados enviados sero
mostrados pelo browser.
<FORM ACTION = "nome_arq.asp" METHOD=GET>
<INPUT TYPE=SUBMIT>
</FORM>
POST
Utilizando este mtodo, os dados sero enviados para o ASP determinado no
parmetro ACTION.
<FORM ACTION = "nome_arq.asp" METHOD=POST>
<INPUT TYPE=SUBMIT>
</FORM>
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 como no exemplo
a seguir:

Universidade do Sagrado Corao

28

ASP Active Server Pages

<html>
<head>
<title>Untitled Normal Page</title>
</head>
<body bgcolor="#FFFFFF">
<form ACTION = "horas.asp" method="POST">
Clique neste boto para saber as Horas:<P>
<p><input type="submit" name="Horas" value="Horas"></p>
</form>
<BR>
<BR>
<form ACTION = "data.asp" method="POST">
Clique neste boto para saber a Data:
<p><input type="submit" name="Data" value="Data"></p>
</form>
</body>
</html>
Observe que no exemplo acima so utilizados dois formulrios e cada um deles
faz uma chamada para um ASP diferente.
<form ACTION = "horas.asp" method="POST">
Clique neste boto para saber as Horas:<P>
<p><input type="submit" name="Horas"
value="Horas"></p>
</form>
Neste form, foi includo um boto do tipo submit que deve disparar a ao do
form. A ao do form (ACTION) est definida para chamar um ASP com o nome
horas.asp que se encontra no mesmo diretrio do HTML. Quando o arquivo estiver
em um diretrio diferente do diretrio em que se encontra a pgina que fez a
chamada, necessrio que ele seja indicado.
O cdigo abaixo faz a chamada a outro ASP.
<form ACTION = "data.asp" method="POST">
Clique neste boto para saber a Data:
<p><input type="submit" name="Data" value="Data"></p>
</form>
Examinando o ASP das Horas:
Universidade do Sagrado Corao

29

ASP Active Server Pages

<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. O cdigo a ser
interpretado pelo servidor :
<%=Time %>
O ASP da Data:
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
? possvel definir vrios formulrio em um arquivo HTML para disparar
vrios ASP.
? Um arquivo comum HTML pode disparar um ASP, porm um arquivo
com cdigo que deve ser interpretado 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).

Universidade do Sagrado Corao

30

ASP Active Server Pages

5. O que VBScript
Script
Antes de falar sobre o VBScript, interessante esclarecer o que um script. As
linguagens Scripts foram criadas para permitir a criao de aplicaes para a Internet
rapidamente. Ao comparar estas linguagens com outras linguagens costumeiramente
utilizadas, pode-se perceber que as primeiras so muitos mais fceis e simples de
aprender e desenvolver. Os scripts permitem criar aplicaes que desempenham
funes como:
Alterar a linha de status do browser;
Definir um timeout para determinada procedure;
Rodar telas de alerta, confirmao e input;
"Forar" a navegao para outras pginas;
Alterar cor de fundo, barra de ttulos, etc.;
Criar uma nova pgina com textos;
Executar funes do browser como Back, Forward, Home, etc.;
Executar procedimentos quando funes do browser forem executadas.
Visual Basic Script Language (VBScript)
O Visual Basic Script Language uma das muitas possibilidades de
linguagem Script que rodam num servidor. Para o IIS ela a linguagem default
(padro). Algumas de suas caractersticas so:
? similar ao Visual Basic Application (VBA) linguagem criada para
fornecer aos aplicativos outras funcionalidades e Visual Basic.
? Permite a manipulao de strings, datas e 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 possvel
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.
Baseada nas funcionalidades de programao do Visual Basic, um linguagem
leve que nativamente executada pelo Internet Explorer (3.0 ou superor) e que pode
ser executada por outros browsers a partir de pug-in.
Mas, como criar uma pgina ASP utilizando o VBScript ?

Universidade do Sagrado Corao

31

ASP Active Server Pages

preciso ter em mente que ser necessrio interpretar os cdigos do VBScript.


O responsvel por esta interpretao o IIS, por este motivo 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:
1. Utilizando a tag <% %>
Esta Tag deve ser utilizada quando se pretende executar qualquer
cdigo VBScript no servidor. Entre <% e %> possvel ser escrito qualquer
cdigo em VBScript.
Quando o script possuir HTML e cdigo VBScript o servidor saber qual
informao dever ser retornada para o cliente (browser). Por exemplo:
<% if Hour(Now) < 12 then %>
Bom dia!
<% else %>
Boa tarde!
<% end if %>
No exemplo acima, as linhas que estiverem entre a tag <% %> sero
interpretadas pelo Servidor IIS e dependendo da condio satisfeita, se a hora
for menor que 12 ser mostrado um HTML com Bom dia!, se no o HTML
retornado pelo Servidor conter Boa Tarde!.
Para retornar no HTML valores de variveis diretamente do script, utilize
a seguinte sintaxe:
A data de hoje <% = Date %>.
Com a linha acima, o HTML a ser retornado ser (imagine que o dia de
hoje seja 31/12/2003):
A data de hoje 31/12/2003.
2. Utilizando a tag <SCRIPT>
Com esta tag tambm possvel criar scripts que rodam no servidor
utilizando a sintaxe:

Universidade do Sagrado Corao

32

ASP Active Server Pages

<SCRIPT LANGUAGE=VBScript RUNAT=Server>


</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:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
RetornaData = Date
End Function
</SCRIPT>
Esta funo retornar a data do sistema no Servidor. Para fazer a
chamada desta funo, ser necessrio utilizar as tags <% %>. Por exemplo:
A data de hoje <% = RetornaData() %>.
Outra alternativa disponvel no IIS para retornar valores direto para o
HTML, sem utilizar a chamada acima, usando o Response.Write:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
Response.Write A data de hoje & Date & .
End Function
</SCRIPT>
O HTML retornado (supondo que a data seja 31/12/2003):
A data de hoje 20/08/1999.
A pergunta imediata seria: 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 possvel concluir que esta
funo tambm foi executada. Como o Response.Write retorna diretamente

Universidade do Sagrado Corao

33

ASP Active Server Pages

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>
<% if Hour(Now) < 12 then %>
<CENTER> Bom dia! </CENTER><BR>
<% else %>
<CENTER> Ol! </CENTER> <BR>
<% end if %>
<CENTER>
So exatamente <% =Time %>.
<BR>
Sua primeira pgina utilizando VBScript e HTML! </CENTER>
</BODY>
</HTML>
Este cdigo inteiro constitui uma pgina ASP, na qual esto mesclados 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 pode ser observado na Figura 5.1.

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.
Se for utilizada a Tag <SCRITP> </SCRIPT>, o cdigo VBScript e HTML ficar:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Function RetornaData()
RetornaData = Date
End Function
</SCRIPT>
<HTML>
<BODY>
<CENTER><B>
A data de hoje <% = RetornaData() %>.
</B></CENTER>
Universidade do Sagrado Corao

34

ASP Active Server Pages

</BODY>
</HTML>

Figura 5.1: Resultado de cdigo mesclando HTML e ASP.


O HTML retornado pelo servidor pode ser observado na Figura 5.2:

Figura 5.2: Resultado de uma funo VBScript retornando a data.


Foi visto como fazer para um script - utilizando o VBScript rodar no servidor.
Mas caso a inteno seja 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.
Universidade do Sagrado Corao

35

ASP Active Server Pages

Com o VBScript possvel criar rotinas que sejam executadas pelo cliente.
Porm, dois aspectos devem ser observados quando se decide programar subrotinas
e funes para rodar no browser:
? Neste exemplo, 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.
Exemplo de cdigo:
<html>
<head>
<title>
Cdigo que roda no Cliente.
</title>
</head>
<script language="VBScript">
SUB BOTAO1_ONCLICK()
RodarCli.BOTAO1.Value = "Mudando o Value!"
END SUB
</script>
<body bgcolor="#FFFFFF">
<form NAME=RodarCli method="POST">
<p>
<input

type="button"

name="BOTAO1"

value="Pressione

para

mudar o value!">
</p>
</form>
</body>
</html>
O HTML:
<form NAME=RodarCli method="POST">
<p>
<input type="button" name="BOTAO1" value=" Pressione para
mudar o value!">
</p>
Universidade do Sagrado Corao

36

ASP Active Server Pages

</form>
Nesta parte, est sendo executado o boto. Para que a subrotina seja
executada, o boto deve ser criado em um form, deve ser definido um nome para este
objeto e seu tipo deve ser button. Depois de definir o objeto que deve disparar a ao,
deve-se programar a subrotina:
<script language="VBScript">
SUB BOTAO1_ONCLICK()
RodarCli.BOTAO1.Value = "Mudando o Value!"
END SUB
</script>
Esta sub-rotina est sendo executada pelo browser, observe que no foi
configurado a Tag <SCRIPT> com o parmetro RUNAT.
O evento que deve disparar a ao ser o evento ONCLICK, ou seja, quando
clicar no boto o cdigo escrito ser disparado.
Para fazer a referncia ao objeto do formulrio, preciso seguir a sintaxe
abaixo:
NomedoFormulrio.NomedoObjeto.PropriedadedoObjeto
Por exemplo:
RodarCli.BOTAO1.Value

Resumo
? VBScript a linguagem script default (padro) do IIS (Internet
Information Server).
? Quando o cdigo deve rodar no servidor, necessrio que este esteja
entre a Tag <% %> ou <SCRIPT RUNAT = Server> </SCRIPT>.
? Um script tambm pode rodar no cliente, basta apenas utilizar a tag
<SCRIPT> </SCRIPT> indicando a linguagem a ser utilizada para que o
browser possa interpret-la.
? 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:
? <script language="javascript1.1"> - apenas ser executado em
Netscape 3.0+
Universidade do Sagrado Corao

37

ASP Active Server Pages

? <script language="jscript"> - apenas ser executado em Microsoft


Internet Explorer 3.0+
? <script language="VBScript> - apenas ser executado em
Microsoft Internet Explorer 4.0+

Universidade do Sagrado Corao

38

ASP Active Server Pages

6. Variveis
As variveis so definidas quando necessrio armazenar temporariamente
valores para que a aplicao tenha acesso s informaes e consiga manipul-las.
Tipos suportados pelo VBScript
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, tendo
declarado um varivel chamada teste:
Dim teste ? Esta varirel do tipo variant, pois no tem a especificao do seu tipo.
Teste = Atribuindo um texto para a varivel teste ? a varivel teste neste momento
do tipo String. E ser tipo String at que haja outra atribuio de
valores diferente de string.
Teste = 25 ? Teste neste momento do tipo numrico. E ser tipo numrico at que
haja outra atribuio de valores diferente de numrico.
Teste = Atribuindo a string 25 para a varivel teste ? Teste neste momento volta a
assumir o tipo String, pois o valor da atribuio foi texto.
SubTipo (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 6.1 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

Universidade do Sagrado Corao

39

ASP Active Server Pages

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

Contm um objeto.

Error

Contem um nmero de erro gerado por um objeto.

Tabela 6.1: Resumo dos subtipos utilizados no VBScript.


Funes de converso de tipos de dados
Antes de descrever as funes, necessrio conhecer 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.
A Tabela 6.2 descreve as funes que permitem a converso de dados.
Funo Valor Retornado

Descrio

Cbool

Boolean

Verdadeiro / Falso.

Cbyte

Byte

Valor numrico de 0 at 255.

Ccur

Currency

Valores

entre

-922,337,203,685,477.5808

at

922,337,203,685,477.5807.
Cdate

Date

Qualquer data vlida.

Cdbl

Double

-1.79769313486232E308 at -4.94065645841247E-

Universidade do Sagrado Corao

40

ASP Active Server Pages

324 para valores negativos; 4.94065645841247E-324


at 1.79769313486232E308 para valores positivos.
Cint

Integer

32,768 at 32,767. Fraes so arredondadas.

Clng

Long

2,147,483,648

at

2,147,483,647.

Fraes

so

arredondadas.
Csng

Single

-3.402823E38
negativos;

at

-1.401298E-45

1.401298E-45

at

para

nmeros

3.402823E38

para

nmeros positivos.
Cstr

String

Retorna texto, exceto Null.

Tabela 6.2: Resumo das funes de converso.


Identificando tipos de dados
Como o VBScript consegue identificar uma srie de subtipos de variveis, ser
necessrio, s vezes, saber qual o subtipo com o qual est trabalhando o script. Para
isso, existe a funo VarType que identifica o subtipo por um valor numrico. A Tabela
6.3 descreve os valores retornados pela funo.
SubTipo

Valor retornado

Empty

Null

Integer

Long

Single

Doubl

Currency

Date(time)

String

Automation Object

Error

10

Boolean

11

Variant

12

Non-Automation Object

13

Byte

17

Array

8192

Tabela 6.3: Valor retornado na identificao de tipos.

Universidade do Sagrado Corao

41

ASP Active Server Pages

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 se pode referenciar as variveis cont e Retorna, pois estas variveis
existem apenas para a funo, para o restante do script so invlidas.
O resultado retornado pelo servidor pode ser observado na Figura 6.1.

Figura 6.1: Resultado da execuo da funo VarType.


Declarao de variveis
Quando variveis so declaradas, preciso se ter em mente a sua utilizao:
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, pode-se definir onde,
quando e por quanto tempo esta varivel dever existir.
Escopo das variveis
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
varivel 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
Universidade do Sagrado Corao

42

ASP Active Server Pages

Quando uma varivel definida fora de qualquer funo e procedimento,


caracterizada uma varivel vlida para todo o script. Este o conceito conhecido como
varivel global.
Procedimento
Quando uma varivel precisa ser apenas vlida para uma funo ou
procedimento, declarando dentro deste procedimento ou funo. Desta maneira, assim
que a funo ou procedimento for executado, a varivel deixa de existir na memria.
Este o conceito conhecido como varivel local.
<%
Dim teste
Dim Mensagem
Dim ResultMedia
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>
Universidade do Sagrado Corao

43

ASP Active Server Pages

Quando executado, este cdigo retornar o resultado que pode ser observado
na Figura 6.2.

Figura 6.2: Teste com variveis globais e locais.

Explicao do cdigo
<%
Dim teste
Dim Mensagem
Dim ResultMedia
No exemplo, 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, foram vistos os tipos de variveis, funes de converso e seu
escopo (tempo de vida).
Mas, como declar-las em um script?

Universidade do Sagrado Corao

44

ASP Active Server Pages

Para declarar variveis em um script, deve-se utilizar as clusulas: Dim, Public


e 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, conforme
abaixo.
Dim nomevar [([dimenso])), nomevar2
Onde nomevar e nomevar2 so nomes de variveis e dimenso representa o
nmero da dimenso do vetor.
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 definido no exemplo acima
que possui 5 posies. Um vetor dinmico tem o nmero de ndices variado e este
nmero definido quando a aplicao executada. Pode-se criar um vetor dinmico,
apenas declarando-o com os parnteses vazios.
Os vetores dinmicos so diferentes dos estticos. Os dinmicos so utilizados
quando a alocao de memria precisar ser dinmica, ou seja, o vetor pode assumir
vrios tamanhos. Para que isso seja possvel, utilize o comando ReDim. Este
comando utilizado para redefinir o tamanho do vetor. Este tamanho pode aumentar
Universidade do Sagrado Corao

45

ASP Active Server Pages

ou diminuir. Caso seja necessrio aumentar o tamanho do vetor, mantendo os


elementos j inclusos nas posies existentes, utilize o comando Preserve. Por
exemplo, o cdigo a seguir cria um vetor dinmico chamado ProdutosSelecionados e o
redimenciona com 3 posies. A ltima linha expande o nmero de elementos do vetor
para 6, como est sendo utilizada a clusula Preserve, o contedo j incluso no vetor
permanecer.
Dim ProdutosSelecionados()
ReDim ProdutosSelecionados(3)
ProdutosSelecionados(0) = Caderno
Redim Preserve ProdutosSelecionados(6)
Public
Quando uma varivel declarada como pblica, esta varivel pode ser
referenciada por todo o script da pgina. Vetores estticos ou dinmicos tambm
podem ser declarados com a clusula Public.
Sintaxe:
Public nomevar[([dimenso])]
Onde nomevar o nome da varivel e dimenso o nmero de elementos do
vetor.
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. Pode-se declarar vetores dinmicos e estticos com o Private.
Sintaxe:
Private nomevar[([dimenso])]
Onde nomevar o nome da varivel e dimenso o nmero de elementos do
vetor.
A Tabela 6.4 apresenta um resumo dos tipos de declaraes e seus escopos.
Declarao Escopo
Dim

Script todo ou Procedimento

ReDim

Script todo ou Procedimento

Public

Script todo

Private

Script todo

Tabela 6.4: Tipos de declaraes e escopos

Universidade do Sagrado Corao

46

ASP Active Server Pages

Regras para nomear as variveis


Para dar nome s variveis, preciso seguir algumas regras:
? Deve comear com um caracter alfabtico;
? No pode exceder o tamanho de 255 caracteres;
? Deve ser nico no escopo no qual a varivel declarada.
Option Explicit
Por default, a declarao das variveis no obrigatria. possvel 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>
Onde teste e Mensagem so variveis declaradas implicitamente, o VBScript
se encarrega de entend-las como variveis.
Esta declarao implcita no considerada uma boa prtica, pois esto
sujeitos a erros de digitao, 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.
Optando por utiliz-lo, a sua declarao deve ser feita antes de qualquer outra
declarao.
Exemplo:
<% Option Explicit
teste = 5
if teste = 30 then
Universidade do Sagrado Corao

47

ASP Active Server Pages

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 foi declarada a clausula Option Explicit porm,
no foi declarada explicitamente a varivel teste. Ao executar este ASP no servidor,
ser retornado um erro como mostra a Figura 6.3.

Figura 6.3: Erro retornado por no declarar explicitamente variveis.


Resumo
? Existe apenas um tipo de dados suportado pelo VBScritp: Variant.
? Embora haja apenas um tipo de dados, existem subtipos que
identificaram o valor que armazenado na varivel, atribuindo-lhe o
subtipo especfico de acordo com o valor. Se o valor for numrico, o
subtipo ser integer.
? Com a funo VarType, possvel identificar o subtipo assumido pela
varivel.

Universidade do Sagrado Corao

48

ASP Active Server Pages

? Para o ASP, as variveis

possuem dois escopos: Script e

Procedimento. Quando uma varivel declarada em nvel Script,


possvel referenci-la em todo o script. Quando em um Procedimento, a
varivel apenas vlida para o procedimento em questo.
? Utilizando a clusula Option Explicit, fica obrigatria a declarao
explicita da varivel.
? Quando utilizada a clusula Dim em um procedimento, geralmente a
declarao feita no comeo do procedimento.
? Antes de atribuir valores a um vetor dinmico, preciso redimencion-lo
usando o comando ReDim.

Universidade do Sagrado Corao

49

ASP Active Server Pages

7. Operadores
O VBScript possui vrios operadores de programao que ajudam a manipular
as variveis em suas pginas ASP. Muitas linguagens dividem os modelos de objetos
em grupos lgicos agrupados de acordo com suas funcionalidades. Isto d maior
flexibilidade para manipular objetos e variveis dos formulrios e fundamental para o
controle do processo de uma aplicao.
Operadores aritmticos
Os operadores aritmticos permitem fazer uma srie de clculos matemticos.
Geralmente, possuem a seguinte sintaxe:
Resultado = valor1 operador valor2
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.
A Tabela 7.1 lista todos os operadores reconhecidos pelo VBScript.
Operador

Smbolo Descrio

Adio

Efetua a soma entre os valores

Subtrao

Efetua a subtrao entre dois nmeros ou atribui um


valor negativo a nmero.

Multiplicao

Efetua a multiplicao entre os valores.

Diviso

Efetua a diviso entre dois nmeros.

Diviso Inteira

Efetua a diviso entre dois nmeros e retorna um valor


inteiro como resultado.

Exponenciao ^

Efetua a operao de potenciao.

Tabela 7.1: Operadores reconhecidos pelo VBScript.


Adio
O operador de adio (+) utilizado para efetuar somas entre valores
numricos, mas tambm pode ser utilizado para concatenar strings .
Sintaxe:
Resultado = valor1 + valor2
Onde resultado recebe o valor da soma das expresses numricas valor1 e
valor2. Lembrando que 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.
Universidade do Sagrado Corao

50

ASP Active Server Pages

A Tabela 7.2 mostra o comportamento do operador (+), dependendo do tipo de


dados.
Se os valores a serem somados forem

O comportamento do operador ser

Numricos

Adio

Strings

Concatenao

String e Numrico

Adio

Tabela 7.2: Comportamento do operador (+).


Exemplo:

<%
Dim valor1, valor2
Dim resultado
valor1 = 1
valor2 = 3
Resultado = valor1 + valor2 Retorna o resultado igual a 4
Resultado = valor2 + valor2 Retorna o resultado igual a 33
Resultado = valor2 + valor1 Retorna o resultado igual a 4
Resultado = valor1 + valor1 Retorna o resultado igual a 2
%>
possvel 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 somado um valor numrico e uma string, a soma numrica entre eles
efetuada.
Resultado = valor1 + valor2
Resultado = valor2 + valor1
J nesta linha, o resultado diferente. Pois os valores participantes da adio
so valores numricos, ento ser efetuada a concatenao das strings. A varivel
resultado conter o valor (string) 33.
Resultado = valor2 + valor2

Universidade do Sagrado Corao

51

ASP Active Server Pages

Na prxima linha, somando dois valores numricos, pois o subtipo da varivel


valor1 Integer. O valor retornado para a varivel resultado ser 2.
Resultado = valor1 + valor1
Mas, caso seja necessrio 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:
Resultado = CInt(valor2) + CInt(valor2)
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:
Resultado = CStr(valor1) + CStr(valor1)
A funo CStr utilizada para converter uma varivel para String. E a varivel
resultado receberia a string 22.
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,
conforme exemplo abaixo:
Resultado = valor1 valor2
Onde resultado recebe o valor da operao entre as variveis numricas
valor1 e valor2.
Resultado = -(valor1)
Onde valor1 um valor numrico.
Multiplicao
O operador de multiplicao (*) utilizado para retornar o resultado da
multiplicao entre valores numricos.
Sintaxe:
Resultado = valor1 * valor2
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

Universidade do Sagrado Corao

52

ASP Active Server Pages

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:
Resultado = valor1 / valor2
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).
necessrio ateno a diviso por 0 (zero). Ser o retornado um erro pelo
browser informando que ouve uma diviso por zero.
Diviso Inteira
O operador da diviso inteira (\) similar ao da diviso, mas foi
especificamente, criado para retornar resultados inteiros apenas.
Sintaxe:
Resultado = valor1 \ valor2
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
O operador de exponenciao (^) utilizado para "elevar" um nmero a outro.
Sintaxe:
resultado = nmero1 ^ nmero2
Onde resultado recebe o valor retornado da operao efetuada pelas
expresses numricas nmero1 e nmero2.
Operadores de comparao
Os operadores de Comparao analisam o relacionamento entre expresses.
Lembrando-se que uma expresso pode ser uma combinao de palavras-chaves,
operadores, variveis ou constantes que formam uma string, nmero ou objeto.
Sintaxe geral:
Universidade do Sagrado Corao

53

ASP Active Server Pages

Resultado = Expresso1 (operador) Expresso2


Onde Expresso1 e Expresso2 contm uma expresso qualquer e o
operador representa o smbolo de relacionamento entre as expresses (o tipo de
comparao).
A Tabela 7.3 mostra os Operadores de comparao utilizados no VBScript.
Operador

Smbolo

Igualdade

Desigualdade

<>

Maior que

>

Menor que

<

Maior que ou igual a

>=

Menor que ou igual a

<=

Equivalncia de objetos

IS

Tabela 7.3: Operadores de comparao


Operadores de comparao fornecem a habilidade para determinar a relao
entre

expresses. Tradicionalmente,

os

desenvolvedores

esperam

que

as

comparaes sejam avaliadas como True(verdadeiro) ou False(falso). Porm,


importante considerar uma terceira possibilidade: NULL. Se a expresso na
comparao for NULL, a comparao retornar NULL. importante manter isto em
mente, quando se desenvolve aplicaes lgicas. Os desenvolvedores devem
desenvolver uma aplicao que possa responder as trs possibilidades de
comparao: true, false, NULL.
A Tabela 7.4 demonstra uma srie de resultados possveis entre comparaes.
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

Tabela 7.4: Resultados possveis entre comparaes.


Os operadores de comparao atuam como os operadores aritmticos, pois
alteram seu comportamento dependendo do tipo de dados das variveis envolvidas.
Na Tabela 7.5 explicado o comportamento dos operadores de comparao:
Universidade do Sagrado Corao

54

ASP Active Server Pages

Expresses

Comportamento

Numricas

Comparao numrica.

Strings

Comparao string.

Uma numrica e outra String

A expresso numrica menor que a expresso


string.

Uma vazia e outra numrica

Comparao numrica sendo que a expresso


vazia tratada como zero.

Uma vazia e outra string

Comparao string sendo que a vazia tratada


como comprimento zero ( ).

Ambas as expresses so vazias

As expresses so iguais

Tabela 7.5: Comportamento dos operadores de comparao.


Outro tipo de comparao a comparao entre objetos. O operador IS
utilizado para fazer esta comparao. A sintaxe a ser utilizao est descrita abaixo:
Resultado = objeto1 IS objeto2
Onde Objeto1 e Objeto2 representam objetos e o uso da palavra-chave IS
determina um relacionamento entre os objetos.
Quando comparados os 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
Set Pobjeto = Tobjeto

Cria o objeto

Set Sobjeto = Tobjeto

Cria o objeto

Set TerObjeto = TSObjeto

Cria o Objeto

Resultado = Pobjeto is Sobjeto

Compara

Resultado = Pobjeto is TerObjeto

os Objetos

%>
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.
J na segunda linha de comparao ( Resultado = Pobjeto is TerObjeto), o
valor retornado False, pois os objetos tm origens diferentes, cada um deles foi
criado a partir de objetos diferentes.

Universidade do Sagrado Corao

55

ASP Active Server Pages

Operadores lgicos
Os operadores lgicos ajudam a expandir as funcionalidades dos operadores
de comparao. O operador lgico foca o mtodo booleano para determinar se um
processo retorna True ou False.
Os operadores lgicos mais utilizados esto listados na Tabela 7.6.
Operador

Smbolo

Conjuno

AND

Negao

NOT

Desconjuno

OR

Tabela 7.6: Operadores lgicos.


Operador NOT
Este operador utilizado para realizar negao lgica em uma expresso, ou
seja, para negar ou inverter um resultado.
Sintaxe:
Resultado = NOT (Expresso)
Onde Expresso qualquer expresso. Por exemplo:
<%
Dim teste
teste = NOT (10 > 30)
Response.Write teste
%>
A Tabela 7.7 demonstra os resultados das operaes utilizando o operador
NOT.
Expresso

Resultado

True

False

False

True

NULL

NULL

Tabela 7.7: Resultados de operaes como o operador lgico NOT.


Lembre-se que uma varivel que contm o valor NULL, representa uma
varivel com valor invlido. Conseqentemente, qualquer operador reproduzir um
resultado NULL. Tenha em mente que um varivel com uma string vazia ( ), no
igual a NULL. Por exemplo:

Universidade do Sagrado Corao

56

ASP Active Server Pages

<%
Variavel =
Resultado = IsNull(Variavel)
%>
Retornar False, pois o contedo de varivel uma string vazia.
<%
Variavel = NULL
Resultado = IsNull(Variavel)
%>
Retornar True, pois o contedo de variavel igual a NULL.
* A funo IsNull verifica se o contedo de uma varivel igual a NULL.
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:
Resultado = Expresso1 AND Expresso2
Onde Expresso1 e Expresso2 so quaisquer expresso.
Exemplo:
<%
Dim teste
teste = (10 > 30) AND (20 < 30)
Response.Write teste
%>
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.
A Tabela 7.8 lista o comportamento do operador AND:
Expresso 1

Expresso 2

Resultado

True

True

True

True

False

False

True

NULL

NULL

Universidade do Sagrado Corao

57

ASP Active Server Pages

False

True

False

False

False

False

False

NULL

False

NULL

True

NULL

NULL

False

False

NULL

NULL

NULL

Tabela 7.8: Comportamento do operador AND.


Operador OR
Avalia se alguma expresso de uma srie de expresses verdadeira.
Sintaxe:
Resultado = Expresso1 OR Expresso2
Onde Expresso1 e Expresso2 so quaisquer expresso.
Exemplo:
<%
Dim teste
teste = (10 > 30) OR (20 < 30)
Response.Write teste
%>
Neste caso, a varivel teste receber True. Pois uma das expresses acima
verdadeira: 20 < 30. A Tabela 7.9 descreve o comportamento do operador OR,
dependendo do resultado da expresso.
Expresso 1

Expresso 2

Resultado

True

True

True

True

False

True

True

NULL

True

False

True

True

False

False

False

False

NULL

NULL

NULL

True

True

NULL

False

NULL

NULL

NULL

NULL

Tabela 7.9: Comportamento do operador OR.

Universidade do Sagrado Corao

58

ASP Active Server Pages

Operadores de concatenao
Existem dois operadores no VBScript utilizados para somar (concatenar)
strings . A Tabela 7.10 os demonstra.
Operador

Smbolo

Descrio

Concatenao de string

&

Usado para concatenar strings

Operador de adio e string

Usado para concatenar strings e adio


numrica

Tabela 7.10: Operadores de concatenao


Operador &
Utilizado para somar duas cadeias de caracteres (strings).
Sintaxe:
resultado = string1 & string2
Onde string1 e string2 so expresses strings vlidas para o VBScript.
Exemplo:
<%
texto = "Treinamento ASP " & "Ps USP"
Response.Write texto
%>
Operador +
O operador de Adio tambm pode ser utilizado para concatenar strings .
Porm, no recomendado sua utilizao 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:
Resultado = string1 + string2
Onde string1 e string2 so expresses do subtipo string vlidas para o
VBScript.
Exemplo:
<%
texto = "Treinamento ASP " + "Ps USP"
Response.Write texto
%>
O resultado retornado o mesmo que foi retornado quando utilizado o
operador &.
Universidade do Sagrado Corao

59

ASP Active Server Pages

Ordem de Avaliao das Expresses


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.
Resumo
? Os operadores aritmticos aceitos pelo VBScript so: + (Adio), (Subtrao), * (Multiplicao), / (diviso), \ (diviso inteira) e ^
(Exponenciao).
? Os operadores de comparao so: = (igualdade), <> (desigualdade), >
(maior que), < (menor que), >= (maior ou igual a), <= (menor ou igual a)
e IS para comparao de objetos.
? Os operadores lgicos utilizam o mtodo booleano para determinar se
um processo retorna True ou False. Os smbolos dos operadores
lgicos so: AND, OR, NOT.
? Para prevenir uma concatenao de strings indesejvel quando estiver
utilizando o operador de adio, utilize as funes de converso para
certificar o tipo correto de dados.
? As concatenaes so avaliadas depois dos operadores aritmticos e
antes dos operadores de comparao.

Universidade do Sagrado Corao

60

ASP Active Server Pages

8. Comandos bsicos do VBSript


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. 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, a aplicao apenas mandou retornar um HTML com um texto para o usurio,
este teste poderia determinar que dependendo do horrio, deveria ser retornado
determinada pgina, desviar para outra URL, etc. Estruturas como esta so utilizadas
para determinar o fluxo da aplicao, com elas possvel 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 a ser visto 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 (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:
<%
Dim teste
Dim Mensagem
teste = 25
if teste = 30 then
Universidade do Sagrado Corao

61

ASP Active Server Pages

Mensagem = O valor de Teste igual a 30


Else
Mensagem = O valor de Teste igual a 25
End if
%>
At este ponto, foi demonstrado como testar apenas um a condio. Porm,
possvel utilizar o comando IF quando existem vrias condies a serem testadas.
Veja a sintaxe:
If <condio> Then
Bloco de Instruo (pode ser apenas uma ou vrias)
[ElseIf <condio> Then
[Bloco de Instruo]]
[Else
[Bloco de Instruo]]
End If
* O que estiver entre [] opcional e entre <> obrigatrio.
Observando, a estrutura basicamente a mesma utilizada para um IF simples.
A diferena est no Elseif. Quando utilizado este tipo de sintaxe preciso especificar
um outra condio a ser testada. Por exemplo:
<%
Dim teste
Dim Mensagem
teste = 25
If teste = 30 then
Mensagem = O valor de Teste igual a 30
Elseif teste = 26 then
Mensagem = O valor de Teste igual a 26
Else
Mensagem = O valor de Teste igual a 25
End if
%>
E como inserir este cdigo em uma pgina ASP?
Lembre-se que os cdigos que devem ser interpretados pelo servidor devem
sempre estar entre <% %>.
Universidade do Sagrado Corao

62

ASP Active Server Pages

Exemplo:
<html>
<head>
<title>Horas ... </title>
</head>
<body bgcolor="#FFFFFF">
<% if Time < #12:00# then %>
Bom Dia!!! <BR>
So exatamente <%=Time %>.
<% else %>
Boa Tarde!!! <BR>
So exatamente <%=Time %>.
<% end if %>
</body>
</html>
O cdigo criado:
<% if Time < #12:00# then %>
Bom Dia!!! <BR>
So exatamente <%=Time %>.
<% else %>
Boa Tarde!!! <BR>
So exatamente <%=Time %>.
<% end if %>
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.
Caso contrrio, ser mostrado (supondo que seja 13:00):
Boa Tarde!!!
So exatamente 13:00.
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.

Universidade do Sagrado Corao

63

ASP Active Server Pages

Sintaxe:
Select Case <expresso a ser testada - critrio>
[Case ValorX-Condio
[Bloco de Instrues]]
[Case Else ValoresN-CondioN
[Bloco de Instrues]]
End Select
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. Pode-se reescrever o exemplo utilizado com o IF ...
Then ... ElseIf, utilizando o o SELECT:
<%
Dim teste
Dim Mensagem
teste = 25
Select Case teste
Case 30
Mensagem = "O valor de Teste igual a 30"
Case 26
Mensagem = "O valor de Teste igual a 26"
Case Else
Mensagem = "O valor de Teste igual a " & teste
End Select%>
<HTML>
<BODY>
<center><% = Mensagem %></center>
</BODY>
</HTML>
O cdigo VBScript (ASP)
Este arquivo deve ser nomeado com a extenso ASP, pois contem cdigos que
apenas um servidor IIS pode interpretar.

Universidade do Sagrado Corao

64

ASP Active Server Pages

<%
Dim teste
Dim Mensagem
Depois da declarao das variveis teste e Mensagem, atribudo um valor
qualquer para a varivel teste que servir como critrio do SELECT. Como est sendo
atribudo 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. Definindo que o critrio
a varivel teste, ou seja, a varivel teste ser testada nas condies definidas nas
clusulas CASE. Neste caso, a pergunta que o SELECT far ser a seguinte:
Teste igual a 30?
Se sim: Mensagem recebe o texto: O valor de Teste igual a 30
Teste igual a 26?
Se sim: Mensagem recebe o texto: O valor de Teste igual a 26
Se no (teste no assumiu nenhum dos valores acima (30 ou 26) ...
Mensagem recebe o texto: O valor de Teste igual a 25
Por que no CASE Else a varivel mensagem recebe o texto: O valor de Teste
igual a 25 ?
Antes da comparao da varivel Teste, foi atribudo para esta o valor 25.
Como no cdigo foi concatenado com o texto: "O valor de Teste igual a " o valor da
varivel teste, como resultado mostrado seu contedo. Ento:
Cdigo VBScript

Resultado

"O valor de Teste igual a " & teste

? O valor de Teste igual a 25

Select Case teste


Case 30
Mensagem = "O valor de Teste igual a 30"
Case 26
Mensagem = "O valor de Teste igual a 26"
Case Else
Mensagem = "O valor de Teste igual a " & teste
End Select%>
Neste ponto da aplicao, fechado o bloco do SELECT e terminada a parte
de cdigo que interpretada pelo servidor. Deve-se colocar algum cdigo HTML para
mostrar a mensagem, novamente necessrio mandar o cdigo para o servidor: <%
= Mensagem %>.
Universidade do Sagrado Corao

65

ASP Active Server Pages

<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,
sero apresentadas 3 destas estruturas:
Do ... Loop
For ... Next
While ... Wend
A primeira a ser vista 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:
Do {Until | While } <condio>
<bloco de instrues>
Exit Do
<bloco de instrues>
Loop
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
Universidade do Sagrado Corao

66

ASP Active Server Pages

localizao d aos programadores flexibilidade para testar a validade da condio


primeiro e ento processar o bloco de instrues, ou processar o bloco de instrues
pelo menos uma vez, e depois avaliar a condio.
Exemplo:
<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>
O resultado da execuo do cdigo acima pode ser observado na Figura 8.1.

Figura 8.1: Execuo do comando Do... Until.


Universidade do Sagrado Corao

67

ASP Active Server Pages

O cdigo escrito (ASP)


Lembrando-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 visto 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
Nas linhas acima, a aplicao est limpando as variveis, ou seja, atribuindolhes valores nulos para tirar qualquer contedo que no seja til. No caso de cont
atribuindo o valor 0 (zero), e para Mensagem, atribuindo 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, observe que existe uma concatenao de strings
(Contei & cont), para isso, deve-se utilizar o operador &.
Mensagem = Contei & cont %>
Neste ponto do programa, encerrado 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.
<center><% = Mensagem %></center>
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.
<% cont = cont + 1
Loop
%>
Universidade do Sagrado Corao

68

ASP Active Server Pages

While ... Wend


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.
<% Dim contador
contador = 0
While contador < 10
contador = contador + 1
Response.Write contador
Response.Write <BR>
Wend
%>
<HTML>
<BODY>
<CENTER><B>Contei at <% = contador %></B></CENTER>
</BODY></HTML>
O resultado da execuo do cdigo acima pode ser observado na Figura 8.2.
Cdigo
While contador < 10
contador = contador + 1

Avalia a condio
Incrementa a varivel contador

Universidade do Sagrado Corao

69

ASP Active Server Pages

Wend

Finaliza o lao quando a varivel contador for igual a 9.

Figura 8.2: Execuo do comando While... WEnd.


For ... Next
Repete um conjunto de instrues por um nmero especificado de vezes. Este
comando usado quando conhecido o nmero de ciclos ou iteraes que so
necessrias.
Sintaxe:
For contador = inicio To fim [Step passo]
[bloco de instrues]
[Exit For]
[bloco de instrues]
Next
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 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:
Universidade do Sagrado Corao

70

ASP Active Server Pages

Permanece no lao se ...


Positivo ou 0 (zero)

? contador <= fim

Negativo

? contador >= fim

Exemplo
Se o parmetro passo for positivo:
<% Dim contador
For contador = 65 to 122 step 2
Response.Write chr(contador)
Next
%>
O resultado ser igual a: ACEGIKMOQSUWY[]_acegikmoqsuwy
For contador = 65 to 122 step 2
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:
<% For contador = 122 to 65 step -1
Response.Write chr(contador)
Next
%>
O resultado ser igual a:
zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA
For contador = 122 to 65 step -1
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 difere 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. Adicionando o nome da varivel contador na clusula Next, um
erro ser gerado pelo VBScript.
Em FOR encadeados, no permitido a utilizao do mesmo nome de
varivel. Um erro de run-time ser gerado. Por exemplo, o cdigo abaixo utiliza dois
FOR encadeados, com o mesmo nome de varivel, o VBScript ir gerar um erro.
Universidade do Sagrado Corao

71

ASP Active Server Pages

<%
For contador = 0 to 5
For contador = 1 to 7
Soma = Soma + contador
Next
Next
%>
Resumo
? ?As estruturas de deciso so utilizadas para determinar o fluxo da
aplicao. As estruturas mais utilizadas so:
If <condio> then
<bloco de instrues>
else
<bloco de instruo>
end if
Select <expresso a ser testada expresso>
[Case ValorX-Condio
[bloco de instruo]]
[Case Else ValoresN-CondioN
[Bloco de instruo]]
End Select
? As estruturas de repetio so utilizadas para executar um bloco de
instruo at que uma condio seja satisfeita. As estruturas mais
utilizadas so:
Do Until <condio>
<bloco de instrues>
Loop
While <condio>
<bloco de instrues>
Wend
For contador = inicio To fim [Step passo]
[bloco de instrues]
[Exit For]
Universidade do Sagrado Corao

72

ASP Active Server Pages

[bloco de instrues]
Next

Universidade do Sagrado Corao

73

ASP Active Server Pages

9. 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 ser
abordado cada um deles separadamente, observando suas funes mais importantes
e teis.
O objeto Application
Pode-se 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.
Qual a utilidade de um objeto Application?
Devido a mltiplos acessos a uma aplicao, possvel, atravs do objeto
Application, controlar possveis erros causados por tentativas de alteraes
simultneas de variveis, como tambm disponibilizar determinadas informaes que
sero acessveis em qualquer parte do programa, e/ou por qualquer usurio.
Declarando variveis Application
Variveis Application podero ser acessadas por qualquer parte do programa,
por qualquer usurio.
Sintaxe: Application("nomevar") = contedo
Para visualizar melhor o efeito de uma varivel deste tipo, veja 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, ser armazenada a string "Que tal estudar ASP?" em uma
varivel Application que chamada de DicaDeHoje . Se nesta mesma aplicao existir
outra pgina ASP com o cdigo:
<HTML>
<BODY>
<CENTER>
A dica do dia hoje <br>
<b> <%= Application("DicaDeHoje") %> <b>
Universidade do Sagrado Corao

74

ASP Active Server Pages

</CENTER>
</BODY>
</HTML>
Qualquer usurio que acessar a pgina acima obter o visto na Figura 9.1.

Figura 9.1: Objeto Application


Importante tambm lembrar que possvel acessar a varivel DicaDeHoje em
qualquer outra parte da aplicao.
Controle de acesso a variveis Application
Para prevenir eventuais problemas com alteraes simultneas de valores de
variveis do tipo Application, mantendo deste modo os dados sempre consistentes,
necessrio lanar mo de dois mtodos deste objeto: lock e unlock.
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.
Universidade do Sagrado Corao

75

ASP Active Server Pages

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.
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?
Componentes so bibliotecas de objetos que possuem finalidades diversas.
Podem ser encontrados inmeros de tipos de componentes. H, por exemplo,
componentes que operam servios de e-mail (como enviar mensagens e arquivos
atachados), que criam interface para upload de arquivos, que manipulam bancos de
dados, etc. Existem componentes que j vm incorporados ao pacote ASP e existem
tambm diversos componentes disponveis na Internet para download.
Para instalar um novo componente (que geralmente uma dll), basta registrlo no Registry do servidor. Depois, para utiliz-lo, basta instanci-lo em qualquer
programa ASP.
Mtodo CreateObject

Universidade do Sagrado Corao

76

ASP Active Server Pages

Este mtodo cria uma instncia de um componente no servidor. A capacidade


de utilizar componentes amplia muito as potencialidades de uma aplicao ASP.
Sintaxe: Server.CreateObject ("nomecomp.nomeclasse")
Onde nomecomp o nome da biblioteca do componente e nomeclasse a
classe desta biblioteca da qual se deseja criar o objeto.
Como exemplo, ser demonstrada a criao uma instncia da classe
BrowserType, da bibliioteca MSWC (Microsoft Web Components):
<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>
Na Figura 9.2, pode ser visto o resultado do cdigo acima.

Figura 9.2: Objeto Server


Universidade do Sagrado Corao

77

ASP Active Server Pages

No exemplo acima, foi criado o objeto brtp, pertencente classe BrowserType


da biblioteca MSWC e testada sua propriedade ActiveXControls. Observe que o
comando Set foi utilizado. Desta forma, o mtodo CreateObject retornar varivel
brtp um ponteiro que aponta para o objeto instanciado. Este apenas um exemplo de
um objeto de inmeros outros existentes. Certamente ao pesquisar na Web, muitos
outros componentes podem ser encontrados, pois eles esto constantemente sendo
criados.
Mtodos Encode
A tecnologia Web basicamente baseada na transferncia de textos simples
(ASCII) pelo protocolo TCP/IP e na interpretao destes textos pelos browsers. Devido
a este fato, possvel ocorrerem erros de interpretaes de caracteres peculiares
(como letras acentuadas ou espaos em branco, por exemplo). Para resolver estes
problemas, a tecnologia ASP dispes de dois mtodos: HTMLEncode e URLEncode.
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 na pgina HTML exatamente como se deseja.
Sintaxe: Server.HTMLEncode ("string")
Onde string a cadeia de caracteres que se deseja formatar.
Mtodo URLEncode
Semelhante ao mtodo HTMLEncode, este mtodo formata a string
especificada para que no ocorram erros de interpretao de caracteres. O todo
URLEncode utilizado 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.
Universidade do Sagrado Corao

78

ASP Active Server Pages

Declarando variveis do tipo Session


A declarao de variveis do tipo Session possibilita que as mesmas estejam
disponveis durante toda a sesso de um usurio. So teis, por exemplo, quando se
deseja identificar caractersticas de usurio em qualquer parte de um programa.
Sintaxe: Session("nomevar") = contedo
Observe o exemplo:
<HTML>
<BODY>
<% Set brtp = Server.CreateObject("MSWC.BrowserType")
Session ("vbsc") = brtp.vbscript %>
</HTML>
</BODY>
Com o cdigo acima, ser 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, pode-se
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.
Coleo Cookies
atravs desta coleo que se pode enviar cookies para um cliente. Com
cookies, possvel armazenar temporariamente valores em arquivos-texto no browser
cliente.
Sintaxe:
Response.Cookies ("nomecookie")("nomedachave").atributo = contedo

Universidade do Sagrado Corao

79

ASP Active Server Pages

Deve-se 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.
Veja o exemplo:
<%
Response.Cookies

("MeuTeste")("Valor1")

"Este

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, foi gravado no cliente um cookie com o nome MeuTeste que
contm trs valores separados em trs campos que se chamam: Valor1, Valor2 e
Valor3. Quando se desejar recuperar as informaes deste cookie, ser utilizado este
nome. 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, lembrese: no possvel gravar um cookie depois que alguma diretiva HTML j foi
enviada ao cliente .
Atributo Expires
Pode-se especificar qual a "data de validade" de um cookie atravs do atributo
Expires. Desta forma, um cookie existir no cliente at a data estipulada neste atributo.
Se no for estipulada nenhuma data para o atributo Expires, o cookie perder sua
validade assim que a sesso do usurio se encerrar. Observe, no cdigo abaixo, a
utilizao deste atributo no cookie MeuTeste, onde o mesmo ir expirar em 11 de
setembro de 2003.
<%
Response.Cookies

("MeuTeste")("Valor1")

"Este

primeiro valor"
Response.Cookies ("MeuTeste")("Valor2") = "Segundo valor"
Response.Cookies ("MeuTeste")("Valor3") = "Valor 3"
Universidade do Sagrado Corao

80

ASP Active Server Pages

Response.Cookies ("MeuTeste").Expires = "11/09/03"


%>
Mtodo Write
Este mtodo utilizado para enviar texto pgina HTML.
Sintaxe: Response.Write contedo
Pode-se utilizar como contedo valores de variveis, funes ou mesmo textos
simples.
Veja no exemplo abaixo diferentes possibilidades de se utilizar este mtodo:
<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>
Na Figura 9.2 encontra-se o resultado da execuo do cdigo acima.

Figura 9.3: Objeto Response.Write.


Mtodo Redirect
Universidade do Sagrado Corao

81

ASP Active Server Pages

Este mtodo utilizado para redirecionar o browser para outra URL.


Sintaxe: Response.Redirect URL
importante ressaltar que o mtodo Redirect deve ser colocado antes de
qualquer tag HTML ser enviada ao cliente. Caso contrrio, ocorrer um erro.
Veja um exemplo deste mtodo:
<%
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>
No exemplo acima, suponha que a varivel Session("idioma") tivesse o valor
"ingles".

Desta

forma,

browser

seria

redirecionado

para

endereo

http://www.empresa.com.br/ingles . importante notar que neste caso nenhum cdigo


seguinte ser executado (no exemplo, no seria atribudo nenhum valor varivel var,
pois esta linha de cdigo no seria executada) e nenhuma tag HTML deste arquivo
ser enviada ao browser. O contrrio ocorrer somente se a varivel Session("idioma")
tiver valor diferente de "ingles" ou "alemao".
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, sero
demonstradas 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")
Universidade do Sagrado Corao

82

ASP Active Server Pages

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"))
%>
Com o cdigo acima, se obtm do cookie MeuTeste o valor do campo Valor1 e
o escreve na tela atravs do Response.Write.
Coleo Form
A coleo Form permite que se obtenha dados digitados em formulrios HTML
enviados pelo mtodo HTTP Post.
Sintaxe: Request.Form ("nomecampo")
Onde nomecampo o nome dado propriedade NAME do campo do
formulrio HTML.
Considere o seguinte formulrio HTML:
<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")
If idioma = "Ingles" then
Universidade do Sagrado Corao

83

ASP Active Server Pages

Response.Write "Hello " & nome


Else if idioma = "Alemao" then
Response.Write "Hallo " & nome
Else
Response.Write "Ol " & nome
End if
End if
%>
No cdigo acima, foi armazenado nas variveis nome e idioma os valores
colocados nos campos txtNome e opIdioma do formulrio HTML. Com isto, pode-se
utilizar estes valores no programa normalmente. Um possvel resultado obtido depois
de se digitar no formulrio o nome RonaldoMC e se escolher o idioma Portugus seria
observado na Figura 9.4.

Figura 9.4: Objeto Request.


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")

Universidade do Sagrado Corao

84

ASP Active Server Pages

10. Open DataBase Conectivity (ODBC)


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, no necessrio saber exatamente qual a
API para o ODBC. Entretanto, ter um conhecimento sobre ele ser bastante til.
Quando se 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.
Como criar uma origem de dados utilizando um drive ODBC no Windows
XP:
A partir do menu Iniciar do Windows, selecione a opo Painel de Controle /
Desempenho e Manuteno / Ferramentas Administrativas e finalmente Fonte de
Dados ODBC. Ser ento exibida uma tela conforme a Figura 10.1.

Figura 10.1: Janela para configurao do ODBC.


Existem trs tipos de origem de dados possveis, que so: Fonte de Dados de
Usurio, Fonte de Dados de arquivo e Fonte de Dados de sistema. Definindo uma
Universidade do Sagrado Corao

85

ASP Active Server Pages

origem de dados na opo Fonte de Dados de sistema, o banco de dados ser aberto
para qualquer usurio do sistema, quando definido em Fonte de Dados de Usurio o
banco ser aberto para um usurio especfico e Fonte de Dados de Arquivo uma
descrio do banco.
Geralmente, para aplicaes Web deve ser criado uma origem de dados na
opo Fonte de Dados de sistema.
Como criar uma origem de dados de sistema
A Figura 10.2 mostra a tela de configurao de uma Fonte de Dados de
sistema, dever ser pressionado o boto Adicionar.

Figura 10.2: Tela de configurao da Fonte de Dados de sistema.


A Figura 10.3 mostra a prxima tela da configurao, nela deve ser escolhido o
tipo de drive ODBC para a aplicao desejada. Aps a escolha, deve ser pressionado
o boto concluir.
Depois de escolher o drive, preciso selecionar o arquivo que contm os
dados. A prxima tela, mostrada na Figura 10.4 pedir para indicar o local fsico
(diretrio e nome) do arquivo e um nome para a origem de dados que est sendo
criada. Dependendo da fonte de Dados escolhida, outras informaes sero
solicitadas, como por exemplo, o nome do host e servio para a origem dos dados.
Nesta tela deve ser especificado um nome qualquer para a origem de dados,
uma descrio qualquer e atravs do boto selecionar, localizar o arquivo desejado.

Universidade do Sagrado Corao

86

ASP Active Server Pages

Seguindo estes passos ser criada uma origem de dados para o banco de
dados. Quando precisar abrir um banco de dados, ser preciso apenas fazer a
referncia a origem de dados.

Figura 10.3: Configurao do tipo de drive ODBC.

Figura 10.4: Seleo do local e nome da Fonte de Dados.


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: de Sistema, de Usurio e de
Arquivo. A Fonte de Dados de Sistema utilizada quando vrios
usurios de um sistema podem acessar a base. A de Usurio utilizada
Universidade do Sagrado Corao

87

ASP Active Server Pages

quando um usurio especfico pode ter acesso, e a de Arquivo uma


descrio do banco.
? Geralmente, a opo escolhida para criar uma origem de dados a de
Sistema, pois uma aplicao na maioria das vezes, acessada por
vrios usurios.
? Os drivers ODBC so fornecidos com ODBC 3.0, mas funcionam com
ODBC 2.5.
? Eles foram desenvolvidos para serem usados a partir do Microsoft
Windows 95. 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.
? Pode-se 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.

Universidade do Sagrado Corao

88

ASP Active Server Pages

11. Acessando Banco de Dados


Em uma aplicao cliente/servidor, a aplicao cliente mantm uma conexo
com a aplicao servidor, consultando-o periodicamente para verificar se a conexo
est aberta. Se o servidor estiver fora do ar, a aplicao cliente no conseguir a
conexo e ento tomar as medidas apropriadas (se esta aplicao estiver preparada
para isso) como, por exemplo, enviar uma mensagem de erro para o usurio.
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,
preciso tambm se preocupar com a conexo do cliente e a Internet.
Neste captulo ser visto como recuperar e alterar informaes em um banco
de dados atravs de aplicaes Web, utilizando para isto a tecnologia ActiveX Data
Objects (ADO).
ActiveX Data Objects (ADO)
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 em diante.
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 pgina na Web e o
banco de dados. Para acessar o banco de dados, dever ser escritos 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).
A Figura 11.1 ilustra a comunicao do ADO com um banco de dados ODBC.

Universidade do Sagrado Corao

89

ASP Active Server Pages

ActiveX Data Objects


ADO

MSADSQL

ODBC

Dados
Figura 11.1: Comunicao do ADO com um banco de dados ODBC.
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, possvel criar os objetos independentemente, o que permite a
escrita de um cdigo mais simples e a criao apenas dos objetos necessrios.
Primeiramente, sero vistos os objetos Connection, Command e Recordset.
Os objetos Connection e Command possuem o mtodo Execute que executa um
comando e retorna um recordset. Tambm possvel utilizar a funo CreateObject
para instanciar objetos Recordset explicitamente, e ento utilizar o mtodo Open do
objeto instanciado para criar um recordset.
Connection
O objeto Connection representa uma conexo aberta com a origem de dados.
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.
Este objeto possui uma coleo que armazena qualquer erro que ocorra
quando o acesso feito chamada Errors.
Abrindo uma conexo atravs do objeto Connection

Universidade do Sagrado Corao

90

ASP Active Server Pages

Para estabelecer uma conexo com a fonte de dados, primeiramente deve-se


criar um objeto Connection. Para isto, utilizado o mtodo CreateObject. Para
conectar com a origem de dados, ser utilizado utiliza o mtodo Open.
Sintaxe do mtodo Open
Connection.Open DataSourceName, User, Senha
Onde DataSourceName o nome da Fonte de Dados de Sistema 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 Conexao e, atravs
dele, abre uma conexo com a origem de dados chamada Clientes (Fonte de Dados
de Sistema definido no ODBC).
<%
Set Conexao = Server.CreateObject (ADODB.Connection)
Conexao.Open Clientes, ,
%>
Fechando uma conexo
Quando se deseja encerrar o trabalhar com o banco de dados, preciso utilizar
o mtodo Close do objeto Connection para liberar qualquer associao com o
recurso do sistema. Usando o mtodo Close, a memria libera. Pode-se modificar
as propriedades do objeto, e ento utilizar o Open para abri-lo novamente. Para
remover o objeto da memria, voc deve-se atribuir ao objeto o valor Nothing.
Exemplo:
<%
Conexao.close
Set Conexao = Nothing
%>
Caso

objeto

Connection

no

seja

fechado

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,
pode-se armazenar o objeto Connection como uma varivel dos objetos Session ou
Application.

Universidade do Sagrado Corao

91

ASP Active Server Pages

Conectando-se a um Banco de Dados sem de uma Fonte de Dados de


Sistema
Existe ainda outra forma de conectar-se a um banco de dados sem a utilizao
de uma Fonte de Dados de Sistema, utilizando uma string de conexo, desta forma
elimina-se a necessidade de configurar uma fonte de dados ODBC no sistema.
A sintaxe para uma string de conexo a seguinte:
Conexo.ConnectionString =
"driver=MySQL;server=localhost;uid=<usurio>;pwd=<senha>;
database=<nome BD>"
O exemplo abaixo demonstra os passos completos para a conexo a um banco
de dados sem utilizar uma fonte de dados ODBC.
<%
Set Conexo = Server.CreateObject("ADODB.Connection")
Conexo.ConnectionString =
"driver=MySQL;server=localhost;uid=<usurio>;pwd=<senha>;
database=<nome BD>"
Conexo.Open
%>
Aps realizar a conexo com o banco de dados, os demais passos para montar
um RecordSet, etc. so os mesmos para ambas as formas de conexo.
Quando abrir ou fechar um objeto Connection?
muito importante pensar quando se deve 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.
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

Universidade do Sagrado Corao

92

ASP Active Server Pages

O objeto Recordset representa um conjunto de registros recuperados de uma


consulta a um banco de dados. Ser utilizado este objeto para realizar todas as aes
num banco, como recuperar, gravar, alterar ou excluir registros.
Criando um RecordSet
Para criar um novo RecordSet, utiliza-se o mtodo CreateObject (objeto
Server). Observe o exemplo:
<%
Set MeuRecordSet = Server.CreateObject ("ADODB.RecordSet")
%>
No exemplo acima, foi criado um objeto RecordSet chamado MeuRecordSet.
Agora, necessrio "preench-lo" com dados e "abr-lo". Para isso, utiliza-se seu
mtodo Open. Veja a sintaxe:
NomeRecordSet.Open Origem, Conexo, TipoCursor, TipoTrava
Onde:
NomeRecordSet: Nome dado ao objeto RecordSet criado com o mtodo
CreateObject.
Origem: O comando SQL o qual se vai "carregar" o RecordSet.
Conexo: O nome da conexo que ser utilizada (objeto Connection criado)
TipoCursor: Um RecordSet contm um cursor que aponta para o registro
atual. Quando se chama um MoveNext ou qualquer outro mtodo de navegao entre
registros, o cursor movido. Existem quatro tipos de cursores. So eles:
Forward Only (0): o cursor mais rpido. usado somente para mover o
cursor para frente e somente leitura. til quando se deseja ler o registro uma nica
vez e exibir os dados.
Keyset (1): Relativamente rpido. Associa um valor-chave a cada um dos
registros para uma navegao rpida. Move-se para frente e para trs e atualiza os
dados. O usurio no conseguir ver os registros adicionados por outros usurios. til
quando se quer atualizar dados.
Dynamic (2): o mais flexvel dos cursores e o mais lento. Quando utilizado,
possvel modificar registros e ver quaisquer modificaes e inseres realizadas por
outros usurios. til quando se deseja uma viso atual dos dados.

Universidade do Sagrado Corao

93

ASP Active Server Pages

Static (3): Permite que se mova para frente e para trs e que se realize escrita
e leitura de registros, mas no visualiza alteraes, adies ou excluses feitas por
outros usurios. til quando necessrio manipular registros.
TipoTrava: Ao selecionar um registro (ou um conjunto deles) num banco de
dados, o mesmo tem que ser travado para evitar inconsistncias geradas a partir de
tentativas de modificaes simultneas. Deste modo, deve-se especificar qual tipo de
trava utilizada para isso:
Read-Only (0): Os dados no podem ser alterados.
Pessimistic (1): O provedor faz o que necessrio para assegurar a edio
com sucesso de um registro, travando os registros no banco imediatamente antes da
edio dos mesmos .
Otimistic (2): O provedor s trava os registros quando o mtodo Update
chamado.
Batch Otimistic (3): Requerido para edio de blocos de registros.
Agora veja um exemplo:
<%
Set Conex = Server.CreateObject (ADODB.Connection)
Conex.Open BancoDados, ,
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open "SELECT * FROM TabClientes", Conex, 3, 3
%>
Com o cdigo acima, foi criada a conexo Conex com o DSN BancoDados.
Instanciou-se um RecordSet RS e nele colocados 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.
Propriedades BOF e EOF
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
Universidade do Sagrado Corao

94

ASP Active Server Pages

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"
%>

Universidade do Sagrado Corao

95

ASP Active Server Pages

12. Segurana
O Microsoft Internet Information Server (IIS) est integrado ao sistema
operacional Microsoft Windows para servidores o que significa que o IIS possui as
mesma caractersticas de segurana.
Segurana Integrada
A arquitetura de segurana do Windows (NT, 2000, XP quando utilizam sistema
de arquivos baseado em NTFS) utilizada por muitos componentes de sistemas com
uma camada de autenticao para controlar o acesso a todos os recursos do sistema.
O IIS est integrado a este modelo de segurana e aos servios do sistema
operacional como file system e diretrios. Como o I S utiliza o banco de contas de
usurios do NT, os administradores no precisam criar contas separadas em cada
servidor Web, e em uma Intranet, os usurios apenas logam em suas contas apenas
uma vez. O IIS automaticamente utiliza as mesmas permisses de arquivos e grupos.
Gerenciando
As permisses para controle de acesso aos arquivos e diretrios podem ser
configuradas graficamente pelo Windows, pois o IIS utiliza o ACLs (Server Access
Control Lists): uma lista contendo todas as permisses de cada usurio.
As permisses configuradas para um servidor Web no so diferentes das
permisses criadas para outros arquivos no servidor (permisses NTFS). Desta forma,
estes arquivos podem ser acessados atravs de outros protocolos, como o FTP, NFS
sem duplicar suas permisses.
Administradores no precisam manter bancos de contas de usurios
duplicados. Todos os servios de um servidor Intranet podem ser gerenciados a partir
de uma ferramenta grfica. O IIS e o Windows formam uma plataforma que permite
aos administradores criar novos usurios para acessar recursos do sistema, como
pginas em HTML, arquivos compartilhados, impressoras, bancos de dados
corporativos e outras aplicaes atravs de ferramentas grficas.
A integrao Windows 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 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:
Universidade do Sagrado Corao

96

ASP Active Server Pages

? Suporte para autenticao Windows NT Challenge/Response


? Acesso por IP das mquinas
? Habilidade para implementar restries de acesso ao servidor e
diretrio virtual.
? Suporte para Windows NT File System (NTFS).
? Certificados digitais para clientes e servidores
? Filtros de Segurana
Autenticao e Autorizao de Usurios
Como visto, a segurana do IIS integrada ao Windows NT File System.
Tenha sempre em mente que para acessar qualquer recurso do windows preciso
uma senha e um usurio. Este recurso permite aos administradores gerenciar as
contas, incluindo a sua auditoria e o armazenamento de toda a atividade
desempenhada em arquivos de logs, configurao de restries e data de expirao
das senhas.
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.
Senha e User Name
As aplicaes e arquivos que possuem o acesso restrito, necessitam que os
usurios se identifiquem atravs de uma conta e senha para permitir a visualizao
dos dados. O IIS pode ser configurado para pedir a autenticao HTTP bsica. Um
prompt mostrado para que o usurio possa digitar o nome de sua conta e sua senha,
depois disso uma comparao feita com o banco de contas existentes no Windows.
Entretanto, estes dados so passados pela rede sem encriptao, podendo ser
interceptados por um sniffer facilmente.
Segurana Windows Chanllege/Response
O IIS tambm suporta este tipo de autenticao do Windows, 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.

Universidade do Sagrado Corao

97

ASP Active Server Pages

Certificados Digitais
Um certificado verifica a identificao de um usurio do mesmo modo como
fazemos a identificao de uma licena para um drive ou cartes de corporao. A
rigorosidade desta identificao depende do nvel de segurana requerido para a
informao ou aplicao a ser acessada. O usurio digita a senha quando assina o
certificado, e esta senha requisitada toda vez que o usurio ativa a certificao.
Porm, apenas a certificao no garante que o usurio que est tentando realizar o
acesso realmente a pessoa que tem o acesso aplicao ou s informaes.
Importante lembrar que a senha deve ser secreta, ou seja, somente a pessoa que tem
a permisso de acesso aplicao deve sab-la e ter a conscincia de no revelar
mais ningum.
Uma autenticao baseada em certificados digitais requer um protocolo que
esteja habilitado a entender esta 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, contm o nome do Website, e o browser verificar se o
endereo URL o nome especificado no certificado.
Controle de Acesso utilizando filtros
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.
Recursos para o Controle de Acesso
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.

Universidade do Sagrado Corao

98

ASP Active Server Pages

Permisso Windows NT File System (NTFS)


O objetivo do NTFS oferecer segurana para os servidores Web nos
contextos Internet e Intranet. Ele 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 identifica cada usurio por uma identificao nica de segurana
global (SID) e no pelo nome da conta. este SID que o Windows 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
Uma das maneiras de determinar se um usurio est tentando acessar.
O IIS suporta duas maneiras de logs. A primeira o log padro onde todos os
pedidos de arquivos e objetos e erros gerados so armazenados. A segunda maneira,
seria a utilizao da ferramenta de administrao do NT Event Viewer.
Com isso, um administrador pode obter as seguintes informaes:
? Acesso a todos os arquivos do servidor.
? Tentativas de logon invlidas.
? Todos os logons efetuados.
Universidade do Sagrado Corao

99

ASP Active Server Pages

Configurando os requisitos de segurana no IIS


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 Segurana de Diretrio, conforme observado na Figura
12.1:

Figura 12.1: Segurana de Diretrio.


Controle de Acesso annimo e autenticao
Ao configurar este item, o sistema poder permitir o acesso annimo
solicitando ao usurio sua identificao no Windows NT por encriptao ou sem
encriptao, Conforme observado na Figura 12.2.

Universidade do Sagrado Corao

100

ASP Active Server Pages

Figura 12.2: Tela para configurao do acesso annimo.


Acesso annimo. Nesta opo possvel especificar a conta que pode fazer
acesso annimo.
Autenticao Bsica.
Neste item ser solicitado ao usurio sua identificao.
importante lembrar que a senha passada pela rede sem encriptao.
Ao escolher este item, uma mensagem de aviso mostrada, alertando que
inseguro a utilizao deste tipo de autenticao, coonforme exibido na Figura 12.3.

Figura 12.3: Aviso de item inseguro.


Universidade do Sagrado Corao

101

ASP Active Server Pages

Para continuar, basta clicar em sim,


Deve-se ento especificar o domnio onde esto cadastrados os usurios que
tero permisso de acesso.

Universidade do Sagrado Corao

102

ASP Active Server Pages

Apndice A Instalao do banco MySql


A instalao do MySql Server and Clients 3.23.55 bastante simples. Basta
executar o setup.exe que e os seguintes passos sero realizados:
A Figura A.1 exibe a primeira tela de instalao do software.

Figura A.1: Tela inicial de instalao do MySql Server and Clients 3.23.55
Aps clicar sobre o boto Next ser exibido um resumo das configuraes
pr-configuradas para a instalao. A Figura A.2 mostra esta tela.

Universidade do Sagrado Corao

103

ASP Active Server Pages

Figura A.2: Resumo das configuraes para instalao.


A seguir ser selecionado o caminho para a instalao, a Figura A.3 exibe a
tela que solicita o caminho para instalao.

Figura A.3: Seleo do caminho para instalao.


O prximo passo selecionar o tipo de instalao, que pode ser Tpica,
Compacta ou Personalizada. A Figura A.4 demonstra tela que permite esta seleo.

Universidade do Sagrado Corao

104

ASP Active Server Pages

Figura A.4: Seleo do tipo de instalao (tpica / compacta / personalizada).


Mesmo que seja selecionada a opo personalizada, o setup no permir a
alterao dos itens a serem instalados. Isto pode ser observado na Figura A.5.

Figura A.5: Relao de itens a serem instalados.


Executados estes passos o software ir instalar o MySql na pasta c:\mysql.
Este processo de instalao juntamente com a tela de concluso da instalao podem
ser vistos nas Figuras A.6 e A.7.
Universidade do Sagrado Corao

105

ASP Active Server Pages

Figura A.6: Progresso da instalao.

Figura A.7: Concluso da instalao.

Universidade do Sagrado Corao

106

ASP Active Server Pages

Aps concluda a instalao do mysql, necessrio configurar a senha para


utilizao do banco e tambm configur-lo para rodar como um servio do Windows.
Os passos a serem executados sero:
Primeiramente deve-se abrir uma tela do DOS e ir para o diretrio
c:\mysql\bin, conforme pode ser visto na Figura A.8.

Figura A.8: Tela do DOS para configurar o banco


Neste momento o banco estar fechado. Para abrir o mesmo, deve ser digitado
o comando mysqld
Com o banco aberto, deve-se conectar ao mesmo, executando o comando
mysql u root. A sintaxe para conexo ao banco pode ser alterada conforme a
necessidade.
Aps conectado ao mysql, deve ser selecionada o banco a ser utilizado. O
banco que possui as configuraes se chama mysql. O comando para informar a sua
utilizao use mysql;.
A prxima tarefa configurar a senha do administrador do banco. Est
configurao ser feita atravs de uma frase SQL que seta a senha no banco.
update user set password=password(<senha>) where user=root;
Aps realizadas estas tarefas, basta fechar o banco. Antes disto, altamente
recomendado descarregar o buffer no banco. Isto pode ser executado com o
comando:
flush privileges;
Para sair do banco basta executar:
Quit;
Maiores informaes podem ser obtidas no manual do MySql, que se encontra
no seguinte caminho: \mysql\docs\manual.txt

Universidade do Sagrado Corao

107

ASP Active Server Pages

Para configurar a abertura automtica do banco como um servio do


Windows, deve ser executado o seguinte comando:
mysqld-nt install
Este comando deve ser executado dentro da pasta: \mysql\bin. Desta forma,
toda vez que o Windows for iniciado, automaticamente o banco estar aberto para
utilizao.
Para iniciar este servio sem ter que reiniciar o Windows basta executar o
comando:
net start mysql

Universidade do Sagrado Corao

108

ASP Active Server Pages

Apndice B Instalao do MySql front verso 2.5


A instalao do MySql front verso 2.5 tambm muito simples. Basta
executar o MySQL-Front_2.5_Setup.exe que e os seguintes passos sero realizados:
A Figura B.1 mostra a tela inicial que solicita a confirmao para instalao.

Figura B.1: Solicitao da confirmao para instalao.


A tela seguinte que ser exibida, conforme a Figura B.2, apenas exibe
informaes sobre o front. Basta clicar sobre o boto Next.

Figura B.2: Informaes sobre o front.


A tela seguinte mostra informaes sobre a licena de software. Esta tela
mostrada na Figura B.3. Clicando o boto Yes a instalao passar para o prximo
estgio.

Universidade do Sagrado Corao

109

ASP Active Server Pages

Figura B.3: Informaes sobre a licena.


No prximo passo ser solicitada a pasta onde ser instalado o software. Isto
pode ser observado na Figura B.4.

Figura B.4: Seleo da pasta para instalao.


Universidade do Sagrado Corao

110

ASP Active Server Pages

A seguir, o programa de instalao solicita informaes a respeito do atalho a


ser criado para o front. Isto pode ser observado na Figura B.5.

Figura B.5: Informaes do atalho que ser criado.


O programa de instalao tambm solicita se o usurio deseja criar um atalho
na rea de trabalho. A tela que faz est solicitao pode ser vista na Figura B.6.

Universidade do Sagrado Corao

111

ASP Active Server Pages

Figura B.6: Informaes sobre a criao do atalho na rea de trabalho.


Em seguida ser exibido um resumo das tarefas que sero realizadas no
processo de instalao, isto pode ser observado na Figura B.7.

Figura B.7: Resumo das tarefas que sero executadas.


Universidade do Sagrado Corao

112

ASP Active Server Pages

Aps este processo, o front para o MySql estar instalado, sero exibidas ainda
duas telas de finalizao do processo de instalao. Estas telas podem ser
observadas nas Figuras B.8 e B.9.

Figura B.8: Finalizao da instalao.

Universidade do Sagrado Corao

113

ASP Active Server Pages

Figura B.9: ltima tela da instalao do front.

Universidade do Sagrado Corao

114

ASP Active Server Pages

Apndice C Instalao do MySql ODBC


Para que o MySql funcione adequadamente, para as aplicaes alvo desta
apostila, faz-se ainda necessrio a instalao do drive ODBC. A utilizao do drive,
assim como a configurao abordada no captulo 10 desta apostila.
Para iniciar a instalao do ODBC basta executar o software myodbc-2.50.39nt.zip. A Figura C.1 mostra a tela inicial que solicita a confirmao para instalao.

Figura C.1: Tela inicial da instalao do drive ODBC.


A seguir ser solicitado o tipo de drive que se deseja instalar. Neste caso, o
software fornecido fornece apenas a opo de instalar o drive para MySql. A Figura
C.2 mostra a tela que solicita o tipo de produto a ser instalado.

Figura C.2: Seleo do tipo de drive a ser instalado.


A seguir ser solicitado o tipo de banco de dados que o drive ir acessar.
Conforme demonstrao na Figura C.3, deve ser especificado sample-MySQL
(MySQL).

Universidade do Sagrado Corao

115

ASP Active Server Pages

Figura C.3: Seleo do tipo banco de dados a ser acessado.


Executados estes passos, a instalao estar completa. A ltima tela que ser
apresentada mostra o final na instalao, conforme pode ser observado na Figura C.4.

Figura C.4: Final da instalao do drive ODBC para MySQL.

Universidade do Sagrado Corao

116

Anda mungkin juga menyukai