Escolar Documentos
Profissional Documentos
Cultura Documentos
1 de 43
Apostila de Asp
O que ASP?
Active Server Pages (ASP) uma linguagem para gerao de pginas HTML
dinamicamente.
A partir de um Windows NT Server com o IIS3 ou IIS4 (Internet Information Server)
instalado, possvel rodar cdigos que geram pginas HTML dinamicamente, e ento,
mand-las para o Browser. Assim sendo, sempre que uma pgina ASP for requisitada
pelo Browser, esta pgina ser executada pelo servidor, e a partir da, ser gerada uma
pgina HTML, a qual ser enviada para o Browser que a requisitou. possvel ento, a
partir de uma nica rotina, gerar uma pgina HTML contendo os registros ,de um banco
de dados, cujo o nome comea com a letra A. Ou ento gerar uma pgina HTML
contendo todos os registros cuja cidade So Paulo. Detalhando um pouco mais o
exemplo acima, um usurio qualquer entra na pgina principal da agenda virtual da sua
empresa. Nesta pgina existem links para todas as letras do alfabeto e para todas as
cidades listadas na agenda. Esse usurio clica no link na letra A (poderia ser de qualquer
outra letra), e ento uma pgina ASP (uma rotina ASP) acionada no servidor. O servidor
por sua vez, vai ler e executar esta pgina, o que significa que, em primeiro lugar, o
servidor abrir o banco de dados, ai ento, far uma consulta a este banco de dados
requisitando todos os registros cujo nome comece com a letra A. A ento o servidor cria
uma pgina HTML contendo todos esses registros numa tabela.
A linguagem ASP no serve apenas para consultas a banco de dados. Serve tambm
para envio e recebimento de correio eletrnico via pginas HTML, para criao rotinas de
propaganda rotativa, para identificao e autenticao de usurios, para leitura de
arquivos texto e uma infinidade de outras aplicaes.
VBScript e ASP
A linguagem ASP , na verdade, uma juno de programao em VBScript e Objetos
ActiveX.
VBScript uma linguagem criada a partir do Visual Basic, mas com algumas limitaes,
por motivos de segurana.
Objetos ActiveX so objetos, ou melhor, funes prontas, j existentes no servidor. Essas
funes captam os parmetros de entrada dos dados, manipula-os de acordo a sua
funo e ento envia-os para a sada. Um exemplo de ActiveX o Objeto ASPMail, o qual
capta os dados de entrada (nome, email, corpo da mensagem, etc), cria um email com
esses dados e depois envia o email.
Uma vez que a linguagem ASP usada apenas em alguns "pedaos" de pginas HTML,
existe um smbolo para diferenciar o que programao HTML e o que programao
ASP: <% cdigo asp %>
Abaixo um exemplo de pgina em HTML e ASP:
<head>
<title>pgina em HTML e ASP</title>
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
2 de 43
</head>
<html>
<p>Ol Mundo!!!</p>
<%
' (aspas simples significa observao dentro do cdigo)
' a linha abaixo tem o mesmo efeito da linha acima
response.write "<p>Ol Mundo</p>"
%>
</html>
Funcionamento, Conveno e Simbologia
Como Funciona o ASP? Qual a simbologia e a conveno usada na programao em
ASP?
ASP uma linguagem que veio para complementar a linguagem HTML. Ela traz para a
linguagem HTML todo o poder do acesso a banco de dados, do acesso a arquivos texto,
da captao de informaes de formulrio, da captao de informaes sobre o visitante
e sobre o servidor, do uso de variveis, loops. Observe o cdigo abaixo:
arquivo "olamundo.asp"
<html>
<head><title>Como funciona o ASP?</title></head>
<body bgcolor="#FFFFFF">
<p>Ola Mundo!!!</p>
<%
response.write "<p>Ola Mundo!!!</p>"
%>
<p><%="Ola Mundo!!!"%></p>
</body></html>
O cdigo acima exibe a frase Ola Mundo!!! de trs modos diferentes. O primeiro, usando
apenas programao HTML, o segundo, usando apenas comandos ASP, e o terceiro,
uma mistura de cdigo HTML com ASP. Como se percebe, no necessrio construir a
pgina inteira com cdigos ASP. possvel criar pginas onde h a mesclagem das duas
programaes. A nica exigncia que, a partir do momento em que o cdigo da pgina
tenha pelo menos uma linha na linguagem ASP, a terminao do nome da pgina deve
ser .asp. Somente assim o servidor poder distinguir quais pginas devem ser executadas
antes de enviar ao Browser. Abaixo segue a simbologia e as convenes de uso da
linguagem ASP.
<% -> incio do trecho de cdigo ASP
%> -> final do trecho de cdigo ASP
' (aspas simples) -> usada antes de comentrios dentro do cdigo
= -> usado no modo de programao por mesclagem de cdigos HTML e ASP.
A linguagem ASP tem uma estrutura muito bem elaborada, uma vez que ela pode ser
implementada com os chamados Objetos. A linguagem ASP, alm de trazer todo o poder
do VBScript para a pgina HTML, traz ainda o poder dos Componentes ActiveX e dos
Objetos. Os componentes ActiveX, simplificando bastante, so bibliotecas que contm
vrios objetos reunidos. Principalmente objetos que necessitam de instncias para
funcionar, o que significa que, por exemplo, cada acesso a um bando de dados deve
ocupar uma instncia daquele objeto.Objetos so add-ons que do a capacidade de
captura e transmisso de variveis entre as pginas, de criao e manipulao de
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
3 de 43
Apostila ASP
4 de 43
<body bgcolor="#FFFFFF">
</body>
</html>
response.buffer - avisa o browser do usurio que a pgina s dever ser mostrada aps
ser totalmente carregada. interessante para usar com a funo response.redirect.
Observe o exemplo:
sintaxe: response.buffer = true/false
<%
response.buffer = true
%>
< html>
< head>
< title> response.asp< /title>
</head>
<body>
<%
response.write "Ol denovo!!! Abaixo o uso da funo response.buffer, a qual,
quando tiver o valor true, avisa o browser para mostrar as informaes s depois
de totalmente carregadas. Isto permite que haja um response.redirect em qualquer
parte da pgina. Mas quando tiver o valor false, o browser mostra as informaes
assim que elas vo chegando."
response.redirect "http://www.aspbrasil.com.br/"
%>
</body>
</html>
response.cookies - grava informaes no cookie do browser.
<html>
<head><title>cookies</title></head>
<body>
<%
'o comando time insere o horrio atual do servidor
response.cookies("aspbrasil")("horariovisita") = time
%>
</body></html>
Objeto Request
O objeto Request se refere a todos os dados requisitados pelo servidor ao cliente, ou
seja, qualquer informao requisitada pelo servidor ao browser do usurio.
Funes do Objeto Request:
request.form - recupera valores de variveis enviadas via formulrio pelo mtodo post.
request.QueryString - recurepa valores de variveis enviadas via formulrio pelo mtodo
get.
request.servervariables - recupera informaes sobre o browser do usurio e sobre o
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
5 de 43
servidor
WEB.
request.cookies - recupera informaes do cookie do browser do usurio.
request.ClientCertificate - mostra informaes sobre o certificado de segurana do
usurio. Somente usado em sites com transmisso segura de dados (https)
exemplos:
request.form - recupera valores de variveis enviadas via formulrio pelo mtodo post.
sintaxe: request.form("nomedavariavel") ou simplesmente
request("nomedavariavel")
Abaixo, formulrio de cadastramento.
<html><head><title>Formulrio</title></head>
<body>
<form method="post" action="retrieve.asp">
<div>Nome: </div><input type="text" name="nome">
<div>Endereo: </div><input type="text" name="endereco">
<input type="submit" value="enviar">
</body>
</html>
a seguir, a rotina de recuperao destes dados preenchidos (nome e endereo)
<html><head><title>Recuperao dos dados</title></head>
<body>
<div>Abaixo, nome e endereo do usurio que preencheu o formulrio: </div>
<%
response.write "<div>Nome: </div>" & request.form("nome")
response.write "<div>Endereo: </div>" & request.form("endereco")
%>
</body></html>
request.QueryString - recupera valores de variveis enviadas via formulrio pelo mtodo
get.
sintaxe: request.querystring("nomedavariavel") ou, tambm, simplesmente
request("nomedavariavel")
Abaixo, formulrio de cadastramento.
<html><head><title>Formulrio</title></head>
<body>
<form method="get" action="retrieve.asp">
<div>Nome: </div><input type="text" name="nome">
<div>Endereo: </div><input type="text" name="endereco">
<input type="submit" value="enviar">
</body>
</html>
a seguir, a rotina de recuperao destes dados preenchidos (nome e endereo)
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
6 de 43
Apostila ASP
7 de 43
<html><head><title>Server Variables</title></head>
<body>
<%
reponse.write "<div>" & response.clientcertificate("validfrom") & "</div>"
'retorna a data inicial da validade do certificado
%>
</body></html>
Objeto Server
O objeto Server permite o acesso e a configurao de algumas funes e mtodos
diretamente ligados ao servidor.
Funes do Objeto Server:
server.ScriptTimeOut - configurao do Timeout de carregamento da pgina
server.HTMLEncode - codifica strings. Usado para codificar strings que contenham
caracteres
especiais.
server.URLEncode
transforma
strings
para
o
formato
QueryString.
server.MapPath - mapeia arquivos de acordo com o path fsico, a partir do path virtual.
server.CreatObject - permite abertura de instncias de objetos vinculados a componentes
ActiveX.
exemplos:
server.ScriptTimeOut - Configura o tempo mximo para execuo e carregamento da
pgina. O tempo padro de 90 segundos.
sintaxe: server.ScriptTimeOut = tempo
<html><head><title>Testando ScriptTimeOut</title></head>
<body>
<%
response.write(server.scriptTimeOut & "<BR>")
Server.ScriptTimeOut = 120
response.write(server.ScriptTimeOut & "<br>")
%>
</body></html>
server.HTMLEncode - usa-se para codificar textos que contenham caracteres especiais,
tais como > ou <. Codificado, o Browser saber que o caractere faz parte do texto, e
ento, este caractere no ser interpretado com cdigo. usado tambm para para
codificar caracteres de outros idiomas, de forma que o Browser identifique o idioma, e
ento exponha os smbolos corretos na tela.
sintaxe: server.HTMLEncode("string")
<html><head><title>HTML Enconde</title></head>
<body>
<%
response.write(server.HTMLEncode("<<<Ol Mundo>>>"))
response.write(server.HTMLEncode("WELCOME TO MNCHEN"))
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
8 de 43
Apostila ASP
9 de 43
<html><head><title>Create Object</title></head>
<body>
<%
Set objtexto = Server.CreateObject("Scripting.FileSystemObject")
'a linha acima criou uma instncia de objeto do componente
scripting.filesystemobject, usado para acessar arquivos texto.
Set arquivotexto = objtexto.OpenTextFile(Server.MapPath("test.txt"))
'abre o arquivo texto dentro da instncia do objeto Scripting.FileSystemObject
response.write arquivotexto.readline
'a linha acima mostra a primeira linha de texto do arquivo aberto.
arquivotexto.close
'a linha abaixo destruu imediatamente
%>
</body></html>
Componente FileAccess
O componente File Access um componente usado para acessar arquivos texto. Os
arquivos tipo texto, muitas vezes, so usados como banco de dados de acesso
sequencial (nem sempre vantagem se usar bancos de dados com acesso aleatrio,
como o MSAccess, ...). Assim sendo, foi necessrio a criao de um componente que
permitisse a leitura e gravao de dados nestes arquivos.
sintaxe:
conexo com o componente: Set fsObj =
Server.CreateObject("Scripting.FileSystemObject")
criao do arquivo test.txt: Set txtStreamObj = fsObj.CreateTextFile(name,[bOverWrite])
abertura do arquivo test.txt para leitura ou gravao: Set txtStreamObj =
fsObj.OpenTextFile(name,[iomode,[bCreate,[format]]])
fsObj, txtStreamObj so variveis definidas pelo usurio.
name - nome do arquivo texto (colocar o path caso o arquivo se localize em outra pasta
que no a do arquivo ASP que possui este cdigo)
bOverWrite - TRUE: caso o arquivo existe, ele deletado, e um novo criado. FALSE:
caso o arquivo exista, ele no substitudo.
iomode - FROWRITING, FORREADING: modo de abertura do arquivo selecionado (para
gravao, para leitura)
bCreate - TRUE: caso o arquivo selecionado para abertura no exista, ele criado.
format - TRUE: criado um arquivo texto usando o formato Unicode. FALSE: criado um
arquivo texto usando o formato ASCII.
Os valores TRUE ou FALSE so determinados de acordo com uma tabela existente num
arquivo chamado fobjvbs.inc , o qual deve ser includo no cdigo da pgina que contm o
cdigo ASP de leitura do arquivo texto.(veja exemplo mais abaixo)
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
10 de 43
Apostila ASP
11 de 43
O componente Browser Capabilities tem como objetivo ser usado para determinar quais
so as propriedades que cada Browser (navegador) que est acessando o seu site tem.
Desde o nome e verso at a deteco de suporte a JavaScript, Applet Java, Cookies,
etc. Abaixo, uma lista contendo as propriedades que podem ser determinadas a partir do
componente Browser Capabilites.
ActiveXControls
backgroundsounds
beta
browser
cookies
frames
javaapplets
javascript
majorver
minorver
platform
tables
vbscript
version
win16
Caso alguma dessas especificaes no seja definida pelo browser, a string "UNKNOWN"
retornada.
sintax:
Set bc = Server.CreateObject("MSWC.BrowserType")
... = bc.propriedade
<html><head>
<TITLE>Componente browser Capabilities</TITLE>
</head><body bgcolor="#FFFFFF">
<% Set bc = Server.CreateObject("MSWC.BrowserType") %>
Browser: <%=bc.browser %><p>
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
12 de 43
Verso: <%=bc.version%><p>
<% if (bc.frames = TRUE) then %>
Este browser aceita frames<p><p>
<% else %>
melhor voc trocar de Browser. Este no suporta frames...
<% end if %>
<% if (bc.tables = TRUE) then %>
Legal. Este browser aceita tabelas...<p>
<% else %>
melhor voc trocar de Browser. Este no suporta nem tabelas... bem
velhinho...<p>
<% end if %>
<% if (bc.BackgroundSounds = TRUE)then %>
Este browser permite que haja fundo musical nas pginas<p>
<% else %>
Ou este browser bem antiguinho, ou voc realmente no gosta de muito
barulho.<p>
<% end if %>
<% if (bc.vbscript = TRUE) then %>
Este Browser aceita processamento local de VBScript<p>
<% else %>
Este Browser no permite o processamento local de VBScript<p>
<% end if %>
<% if (bc.javascript = TRUE) then %>
Este Browser aceita processamento local de JavaScript<p>
<% else %>
Este Browser no permite o processamento local de JavaScript<p>
<%
end if
set bc=nothing
%>
</body></html>
Application/Session Obj.
O objeto Application tem como objetivo armazenar e compartilhar valores, estados e
propriedades de um grupo. No caso, valores comuns a todos os visitantes do site, como
nmero total de visitantes no site, quantas pessoas esto visitando o site no momento,
etc.
O objeto session tem como objetivo armazenar e compartilhar valores, estados e
propriedades de cada visitante, individualmente. So bons exemplos o uso em lojas
virtuais, onde a cesta de compras pode ser armazenada dentro de uma session.
O objeto Application ativado quando for feita a primeira visita ao site, e termina quando
o servidor for desligado ( permitido gravar todos esses valores em banco de dados,
assim no h perda dos valores). Todo o script e cdigos de armazenamento somente
podem ser escritos em um arquivo chamado global.asa, que deve permanecer na pasta
raiz
do
site.
O objeto session criado para cada visitante, cada vez que um visitante entra no site, e
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
13 de 43
destrudo toda vez que este visitante sai do site. Ao entrar no site, cada visitante recebe
um ID (nmero de identificao), o qual usado para identificar o usurio e para
armazenar os valores, estados e propriedades de cada visitante, individualmente.
O arquivo global.asa tem o seguinte formato:
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Application_OnStart
End sub
Sub Application_OnEnd
End sub
Sub Session_OnStart
End sub
Sub Session_OnEnd
End sub
</SCRIPT>
Nos eventos Application_OnStart e Application_OnEnd esto armazenados os valores
comuns a todos os visitantes. Nos eventos Session_OnStart e Session_OnEnd esto
armazenados os cdigos, scripts e valores usados nas sessions (valores individuais para
cada visitante).
Mtodos dos Objetos Application e Session:
Application.Lock -> usado para bloquear o acesso de outras pginas ao evento
Application_OnStart ou Application_OnEnd, com excesso da pgina que requisitou o
bloqueio, permitindo assim que somente esta pgina possa fazer alteraes no evento.
Application_Unlock -> Desbloqueia o acesso de outras pginas.
Esses mtodos so usados para que duas pginas no tentem alterar as mesmas
propriedades ou valores ao mesmo tempo. Pois isso acarretaria numa perda de
consistncia dos dados armazenados.
Abaixo, um exemplo de como saber o nmero de visitantes totais do site e o nmero de
visitantes no site no presente momento.
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Application_OnStart
Application("Totalvisitas") = 0
Application("datainicial") = now
Application("Visitasatuais") = 0
End sub
Sub Application_OnEnd
End sub
Sub Session_OnStart
Application.Lock
Application("Totalvisitas") = Application("Totalvisitas") + 1
Application("Visitasatuais") = Application("Visitasatuais") + 1
Application.Unlock
End sub
Sub Session_OnEnd
Application.Lock
Application("Visitasatuais") = Application("Visitasatuais") -1
Application.Unlock
End sub
</SCRIPT>
Apostila ASP
14 de 43
Apostila ASP
Update
15 de 43
Apostila ASP
16 de 43
'a linha acima confirma a incluso dos dados. Caso este comando no seja usado, o
registro no inserido.
RS.Close
Set Conn = nothing
Set RS = nothing
%>
<p>Pronto. Foi gravado o registro acima.</p>
</BODY></HTML>
<HTML><HEAD><TITLE>Fazendo uma consulta SQL e mostrando os dados obtidos
em uma tabela</TITLE></HEAD>
<BODY>
<!--#include file="adovbs.inc"-->
<%
'a variavel abaixo - Connstring - guarda o nome da conexo ODBC (h a
necessidade de a ligao ODBC j estar criada).
ConnString="odbcteste"
'a varivel abaixo guarda a string SQL, usada para fazer a consulta no banco de
dados. No caso, pede-se para gerar uma consulta onde apenas os registros onde o
campo NOME igual ao valor JOO.
SQLstring = "select * from cadastro where nome = 'joo' "
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnString,"",""
Set rsQuery = Conn.Execute(SQLstring)
'a linha acima gerou uma consulta chamada rsQuery. todos os registros que
satisfazem a SQLstring esto armazenados nesta varivel.
%>
<table>
<tr><td>Nome</td><td>email</td></tr>
<%
While not rsQuery.EOF
%>
<tr><td><%=rsQuery("nome").value%></td><td><%=rsQuery("email").value%></td>
</tr>
<%
rsQuery.Movenext
Wend
%>
</table>
<%
rsQuery.Close
set Conn = nothing
Set rsQuery = nothing
%>
</BODY></HTML>
<HTML><HEAD><TITLE>Fazendo uma alterao via SQL</TITLE></HEAD>
<BODY>
<!--#include file="adovbs.inc"-->
<%
'a variavel abaixo - Connstring - guarda o nome da conexo ODBC (h a
necessidade de a ligao ODBC j estar criada).
ConnString="odbcteste"
'a varivel abaixo guarda a string SQL, usada para fazer a atualizao no banco de
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
17 de 43
Apostila ASP
18 de 43
Cookies
Cookies so pequenos arquivos no formato txt, gravados nos computadores dos usurios,
contendo informaes que podem ser recuperadas posteriormente.
sintaxe:
gravao de informaes no cookie:
response.cookies("nomedocookie")("nomedoparametro") = "valordoparmetro"
recuperao de informaes do cookie: varivel =
request.cookies("nomedocookie")("nomedoparametro")
determinao da data de expirao do cookie:
Response.Cookies("nomedocookies").Expires = data no formato mm/dd/aa
obs: caso no seja determinada uma data de expirao, o cookie ser apagado assim que
o browser for fechado.
Veja os exemplos a seguir:
<%
response.cookies("aspbrasilteste")("data") = now
response.cookies("aspbrasilteste")("nome") = "Joo"
'as linhas acima criaram o cookie aspbrasil e 2 parmetros, data e nome.
response.cookies("aspbrasilteste").expires = "6/25/99"
'a linha acima determina uma data de expirao do cookie
%>
<HTML><HEAD> <TITLE>Criando um cookie</TITLE>
</HEAD>
<BODY>
<%
response.write "O cookies aspbrasilteste foi criado em: " &
request("aspbrasilteste")("data")
response.write "Quem criou foi: " & request("aspbrasilteste")("nome")
%>
</BODY></HTML>
Apostila ASP
19 de 43
Apostila ASP
20 de 43
Procedures
Algumas vezes, em programao, uma mesma sequncia de cdigos precisa ser usado
constantemente. Ao invs de copi-los toda vez que for preciso, pode-se usar as
Procedures. Procedures so caixas pretas, onde vc entra com alguns dados, a caixa preta
processa, e no caso das Functions, retorna outros valores, de acordo com um algortimo.
Existem dois tipos de Procedures, as Subs e as Functions. Observe os
exemplos abaixo:
<html><body>
<%
Function soma(valor1,valor2)
If valor1 = "" then valor1 = 0
If valor2 = "" then valor2 = 0
soma = valor1 + valor2
End Function
'acima, a funo denominada soma foi apresentada
'abaixo, uma chamada funo foi feita. Ento a funo executa a rotina e retorna
um determinado valor, no caso 5.
response.write soma(2,3)
%></body></html>
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
21 de 43
Select Case
Apostila ASP
22 de 43
O comando Select Case permite um maior controle sobre os valores de uma determinada
variavel. Observe o Exemplo Abaixo:
<html><body>
<%
variavel_qualquer = hour(now)
Select Case variavel_qualquer
case 0,1,2,3,4,5,6,7,8,9,10,11,12
response.write "Bom Dia"
case 13,14,15,16,17,18,19
response.write "Boa Tarde"
case 20,21,22,23,24
response.write "Boa Noite"
Case else
response.write "Este relgio est maluco"
End Select
%></body></html>
observe que o comando Select Case deve ser fechado com o comando End Select.
If...Then...Else ; Select Case
Existem 2 comandos capazes de identificar o contedo de uma determinada varivel, e de
acordo com esse valor, executar uma determinada rotina:
If...Then...Else
O comando If...Then...Else possibilita verificar se uma determinada varivel est ou no
de acordo com um critrio de seleo. Observe o exemplo abaixo:
<html><body>
<%
variavel_qualquer = hour(now)
If variavel_qualquer < 19 then
response.write "Bom Dia"
Else
response.write "Boa Noite"
End if
'o comando IF...then...Else comparou o valor da variavel variavel_qualquer com um
determinado valor estipulado (no caso, 19). Se o valor for menor que 19, ento
escreva na tela "Bom Dia". Caso contrrio (Else), "Boa Noite"
%></body></html>
Select Case
O comando Select Case permite um maior controle sobre os valores de uma determinada
variavel. Observe o Exemplo Abaixo:
<html><body>
<%
variavel_qualquer = hour(now)
Select Case variavel_qualquer
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
23 de 43
Select Case
O comando Select Case permite um maior controle sobre os valores de uma determinada
variavel. Observe o Exemplo Abaixo:
<html><body>
<%
variavel_qualquer = hour(now)
Select Case variavel_qualquer
case is > 0 and qualquer_variavel < 12
response.write "Bom Dia"
case os > 12 and qualquer_variavel < 19
response.write "Boa Tarde"
case > 19 and qualquer_variavel < 24
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
24 de 43
For...Next
O comando For...Next executa uma determinada rotina at que o contador (uma varivel)
atinja o valor determinado. Observe o exemplo:
<html><body>
<%
For i=1 to 50
response.write i
next
%></body></html>
observe que no necessrio nenhuma rotina de incrementao de valores em i. A
cada ciclo, o valor de i acrescido de uma unidade, automaticamente.
para interromper o Loop, usa-se o comando Exit For
While...Wend
Apostila ASP
25 de 43
For...Next
O comando For...Next executa uma determinada rotina at que o contador (uma varivel)
atinja o valor determinado. Observe o exemplo:
<html><body>
<%
For i=1 to 50
response.write i
next
%></body></html>
observe que no necessrio nenhuma rotina de incrementao de valores em i. A
cada ciclo, o valor de i acrescido de uma unidade, automaticamente.
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
26 de 43
Apostila ASP
27 de 43
response.write i
next
%></body></html>
observe que no necessrio nenhuma rotina de incrementao de valores em i. A
cada ciclo, o valor de i acrescido de uma unidade, automaticamente.
para interromper o Loop, usa-se o comando Exit For
While...Wend
O comando While...Wend executa uma determinada rotina at que a condio imposta
seja alcanada. Observe o exemplo dado:
<html><body>
<%
q = "SELECT * FROM cadastro where cidade = 'So Paulo'"
connstring = "DBQ=c:\teste.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open connstring, "",""
Set tabela = Conexao.Execute (q)
While not tabela.EOF
response.write tabela("nome").value
wend
%></body></html>
Tipos de Dados
O VBScript contm apenas um tipo de varivel, denominado Variant. O tipo variant pode
armazenar qualquer tipo de dado, e de acordo com o tipo de dados que armazenado,
possvel classifica-lo de acordo com os subtipos de dados, abaixo relacionados:
Subtipo
Empty
Null
Boolean
Byte
Integer
Long
Single
Double
Date
Descrio
Varivel que contm 0 para valores numricos e "" (string
vazia) para strings.
Varivel que no contm dado algum.
Contm True ou False
Nmeros inteiros entre 0 e 255
Nmeros inteiros no intervalo de -32,768 a 32,767.
Nmeros inteiros no intervalo de -2,147,483,648 a
2,147,483,647.
Nmeros com ponto flutuante de preciso simples na faixa de 3.402823E38 a -1.401298E-45 para nmeros negativos e
1.401298E-45 a 3.402823E38 para nmeros positivos.
Nmeros com ponto flutuante de dupla preciso na faixa de 1.79769313486232E308 a -4.94065645841247E-324 para
nmeros negativos e 4.94065645841247E-324 a
1.79769313486232E308 para nmeros positivos.
Dados no formato de Data (data e tempo) na faixa de 1 de
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
(Time)
String
28 de 43
PS: possvel a converso de dados de um tipo para outro, mas para isso, os dados
devem ser compatveis com o subtipo desejado, ou seja, a String "23/5/99" pode ser
convertida para o subtipo Date, e vice-versa. Mas a String "ASPBRASIL" no pode.
importante a converso de tipos de dados uma vez que o modo como os dados sero
manipulados dependem do seu subtipo.
Convertendo Dados
Verificando e Convertendo Tipos de Dados A linguagem VBScript contm algumas
funes de verificao e converso de tipos de dados importantes para a melhor
manipulao dos dados.
As funes de verificao so importantes na hora de detectar se os dados contidos
numa varivel so compatveis com o subtipo para o qual se deseja converter estes
dados.
As funes de converso fazem a converso de dados de um subtipo para outro, mas
para isso, necessrio que esses dados sejam compatveis com o subtipo que se deseja
obter.
Funes de Verificao
IsArray - IsDate - IsEmpty - IsNull - IsNumeric
Funes de Converso
CBool - CByte - CDate - CDbl - CInt - CLng - CStr - CSng
IsArray - retorna True caso a varivel seja um array, caso contrrio, retorna False.
sintaxe: IsArray(nomedavariavel)
<%
Dim aspbrasil
Dim Arraybrasil(5)
response.write IsArray(aspbrasil) 'retorna false
response.write IsArray(Arraybrasil) 'retorna true
%>
IsDate - retorna True caso o valor da varivel possa ser convertido em data, caso
contrrio, retorna False.
sintaxe: IsDate(nomedavariavel)
<%
aspbrasil = "23/5/99"
aspbrasil2 = "ASPBRASIL"
Apostila ASP
29 de 43
Apostila ASP
30 de 43
Apostila ASP
31 de 43
<%
aspbrasil = "23"
aspbrasil2 = 34.6
7response.write CLng(aspbrasil) 'retorna 23
response.write CLng(aspbrasil2) 'retorna 35, pois h um arredondamento
%>
CSng - converte a expresso dada em um dado do subtipo Single.
sintaxe: CInt(nomedavariavel ou expresso)
<%
aspbrasil2 = 88734.679999
response.write CInt(aspbrasil2)
%>
CStr- converte a expresso dada em um dado do subtipo String. Qualquer outro tipo de
dado, dos listados acima, pode ser convertido em String.
sintaxe: CStr(nomedavariavel ou expresso)
<%
aspbrasil2 = 34.67
response.write CStr(aspbrasil2) 'retorna "23"
%>
Manipulando Nmeros
Manipulando Datas
O VBScript contm vrias funes utilizadas para a manipulao de dados numricos.
Abaixo uma lista das principais funes. Os operadores bsicos (+,-,*,/,^) esto descritos
no tutorial sobre Operadores Bsicos do VBScript.
Abs - Atn - Cos - Exp - Fix - Int - Log - Sin - Sqr - Tan
Abs - retorna o mdulo do valor de entrada
sintaxe: Abs(nmero)
<%
aspbrasil = -78
response.write Abs(aspbrasil)
%>
Atn - retorna o valor do arcotangente do valor entrado (resposta em radianos)
sintaxe: Atn(nmero)
<%
aspbrasil = 1
response.write Atn(aspbrasil)
%>
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
32 de 43
Apostila ASP
33 de 43
response.write Sin(aspbrasil)
%>
Sqr - retorna o valor da raiz quadrada do nmero de entrada.(valor deve ser maior ou
igual a zero)
sintaxe: Sqr(numero)
<%
aspbrasil = 4
response.write Sqr(aspbrasil)i
%>
Tan - retorna o valor da tangente do angulo pedido (entrar angulo em radianos)
sintaxe: Tan(angulo)
<%
aspbrasil = 2
response.write Tan(aspbrasil)
%>
Manipulando Datas
O VBScript possibilita a obteno e manipulao de dados no formato Data e Tempo
facilmente. Abaixo, uma lista das principais funes relacionadas a esse tpico.
CDate - Date - DateSerial - Day - Hour - IsDate - Minute - Month - Now - Second - Time TimeSerial - TimeValue - Weekday - Year
CDate - converte a expresso dada em um dado do subtipo Date.
sintaxe: CDate(nomedavariavel)
<%
aspbrasil = "23/5/99"
response.write CDate(aspbrasil) 'convertendo strings de data e tempo para o subtipo
Date, possvel fazer operaes matemticas com essas datas, somando dias, meses,
segundos, anos...
%>
Date - retorna a data do sistema (a data que consta no relgio do servidor).
sintaxe: Date
<%
response.write Date
%>
DateSerial - retorna um valor do subtipo data para um determinado valor de ano, mes e
dia, ou seja, entrando esses 3 valores respectivamente, a funo DateSerial retorna a
data respectiva no formato Date.
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
34 de 43
Apostila ASP
35 de 43
Apostila ASP
36 de 43
Apostila ASP
37 de 43
<%
aspbrasil = "ASPBRASIL"
response.write LCase(aspbrasil) 'deve retornar ASPBRASIL
%>
Left - Retorna um determinado nmero de caracteres a partir do lado esquerdo da string.
sintaxe: Left(string, numerodecaracteres)
<%
aspbrasil = "aspbrasil, site sobre ASP."
response.write Left(aspbrasil,4) 'deve retornar "aspb"
%>
Len - Retorna o nmero de caracteres numa string (contando espaos em branco), ou, no
caso de variveis numricas, ou no formato Date, retorna a quantidade de bytes
necessrios para armazenar aquela expresso.
sintaxe: Asc(string/expresso)
<%
aspbrasil = "aspbrasil"
response.write Len(aspbrasil) 'retorna 9
%>
LTrim - Retorna a cpia da string de entrada, mas os espaos no comeo do lado
esquerdo.
sintaxe: LTrim(string)
<%
aspbrasil = " <--Trim-> "
response.write Asc(aspbrasil) 'retorna "<--Trim-> "
%>
Mid - Funo usada para "cortar" uma string. Delimita-se a posio inicial, a string e a
quantidade de caracteres a partir da posio inicial que devem ser "capturados".
sintaxe: Mid(string, posicaoinicial, tamanho)
<%
aspbrasil = "aspbrasil"
response.write Mid(aspbrasil,1,4) 'deve retornar "aspb"
%>
Right - Retorna um determinado nmero de caracteres a partir do lado direito da string.
sintaxe: Right(string, numerodecaracteres)
<%
aspbrasil = "aspbrasil"
Apostila ASP
38 de 43
Apostila ASP
39 de 43
<%
response.write (12 - 6)
%>
* (multiplicar) - Usado para multiplicar dois valores numricos
sintaxe: resultado = expresso1 * expresso2
<%
aspbrasil = 5 * 6
response.write (aspbrasil)
%>
/(dividir) - Usado para dividir um valor por outro.
sintaxe: resultado = numerador/denominador
<%
aspbrasil = 31/7
response.write (aspbrasil)
%>
\ - Usado para dividir um valor por outro, e retornar um valor inteiro.
sintaxe: resultado = numerador/denominador
<%
aspbrasil = 31/7
response.write (aspbrasil)
%>
and - Usado para "validar" um conjunto de duas expresses lgicas. Se, e somente se as
duas expresses tiverem como resulado TRUE, retornado TRUE. Caso contrrio,
retornado FALSE.
sintaxe: resultado = expresso1 and expresso2
<%
aspbrasil = (7>4) and (4<8)
response.write (aspbrasil)
%>
& - Usado para somar duas cadeias de caracteres (strings).
sintaxe: resultado = string1 & string2
<%
aspbrasil = "ASPBRASIL." & "Site sobre ASP na lingua portuguesa."
response.write (aspbrasil)
%>
Eqv - Usado para "validar" um conjunto de expresses lgicas de acordo com a seguinte
tabela:
Expresso1
Expresso2
Resultado
Apostila ASP
true
true
false
false
40 de 43
true
false
true
false
true
false
false
true
Expresso2
true
false
null
true
false
null
true
false
null
Resultado
true
false
null
true
true
true
true
null
null
Apostila ASP
41 de 43
response.write (aspbrasil)
%>
Not - Usado para inverter, ou negar o resultado de uma comparao, como segue na
tabela:
Expresso
Resultado
1
true
false
false
true
null
null
sintaxe: resultado = Not expresso
<%
aspbrasil = Not (7>6)
response.write (aspbrasil)
%>
Or - Usado para "validar" um conjunto de expresses lgicas de acordo com a tabela:
Expresso1 Expresso2 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
sintaxe: resultado = expresso1 Imp expresso2
<%
aspbrasil = (9<8) or (7>4)
response.write (aspbrasil)
%>
Xor - Usado para "validar" um conjunto de expresses lgicas de acordo com a seguinte
tabela:
Expresso1 Expresso2 Resultado
true
true
false
true
false
true
false
true
true
false
false
false
sintaxe: resultado = expresso1 Xor expresso2
<%
aspbrasil = (6<4) Xor (8>9)
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
42 de 43
response.write (aspbrasil)
%>
Demais Funes do VBScript
Abaixo, algumas importantes funes do VBScript que no se encaixaram no restante dos
tpicos.
LBound - Rnd/Randomize - Sgn - UBound - VarType
LBound - Retorna o menor ndice de uma determinada dimenso num array.
sintaxe: resultado = LBound(array,dimenso) 'a dimenso opcional.
<%
dim aspbrasil(8)
aspbrasil(2)="Tigre"
aspbrasil(4)="Ona"
response.write LBound(aspbrasil) 'deve retornar 2
%>
Rnd - Retorna um nmero randmico entre 0 e 1.
sintaxe:
Randomize
Rnd (numero)
<%
Randomize
aspbrasil = Rnd
response.write aspbrasil
%>
Sgn - Retorna a natureza de um determinado nmero (maior, menor ou igual a zero),
como visto abaixo:
maior que zero (numero>0) 'retorna 1
igual a zero (numero=0) 'retorna 0
menor que zero (numero<0) 'retorna -1
sintaxe: resultado = Sgn(numero)
<%
aspbrasil = Sgn(-67)
response.write aspbrasil
%>
UBound - Retorna o maior ndice de uma determinada dimenso num array.
sintaxe: resultado = UBound(array,dimenso) 'a dimenso opcional.
Apostilas e Tutotriais: http://Apostilas.Fok.com.br
Apostila ASP
43 de 43
<%
aspbrasil(2)="Tigre"
aspbrasil(4)="Ona"
response.write UBound(aspbrasil) 'deve retornar 4
%>
Vartype - Retorna um valor, de acordo com a tabela abaixo, indicando o subtipo da
varivel.
sintaxe: resultado = VarType(varivel)
vel)
0
1
2
3
4
5
6
7
8
9
<%
aspbrasil="aspbrasil"
aspbrasil2 = 34
response.write vartype(aspbrasil) 'deve retornar 8
response.write vartype(aspbrasil2) 'deve retornar 3
%>