Buscar

Programacao Apostila ASP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

ApostilaASP 1de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
ApostiladeAsp
OqueéASP?
Active Server Pages (ASP) é uma linguagem para geração de páginas HTML
dinamicamente.
A partir de um Windows NT Server com o IIS3 ou IIS4 (Internet Information Server)
instalado, é possível rodar códigos que geram páginas HTML dinamicamente, e então,
mandá-las para o Browser. Assim sendo, sempre que uma página ASP for requisitada
peloBrowser,estapáginaseráexecutadapeloservidor,eapartirdaí,serágeradauma
páginaHTML,aqualseráenviadaparaoBrowserquearequisitou.Épossívelentão,a
partirdeumaúnicarotina,gerarumapáginaHTMLcontendoosregistros,deumbanco
de dados, cujo o nome começa com a letra A. Ou então gerar uma página HTML
contendo todos os registros cuja cidade é São Paulo. Detalhando um pouco mais o
exemploacima,umusuárioqualquerentranapáginaprincipaldaagendavirtualdasua
empresa. Nesta página existem links para todas as letras do alfabeto e para todas as
cidadeslistadasnaagenda.EsseusuárioclicanolinknaletraA(poderiaserdequalquer
outraletra),eentãoumapáginaASP(umarotinaASP)éacionadanoservidor.Oservidor
por sua vez, vai ler e executar esta página, o que significa que, em primeiro lugar, o
servidor abrirá o banco de dados, ai então, fará uma consulta a este banco de dados
requisitandotodososregistroscujonomecomececomaletraA.Aíentãooservidorcria
umapáginaHTMLcontendotodosessesregistrosnumatabela.
A linguagem ASP não serve apenas para consultas a banco de dados. Serve também
paraenvioerecebimentodecorreioeletrônicoviapáginasHTML,paracriaçãorotinasde
propaganda rotativa, para identificação e autenticação de usuários, para leitura de
arquivostextoeumainfinidadedeoutrasaplicações.
VBScripteASP
A linguagem ASP é, na verdade, uma junção de programação em VBScript e Objetos
ActiveX.
VBScriptéumalinguagemcriadaapartirdoVisualBasic,mascomalgumaslimitações,
pormotivosdesegurança.
ObjetosActiveXsãoobjetos,oumelhor,funçõesprontas,jáexistentesnoservidor.Essas
funções captam os parâmetros de entrada dos dados, manipula-os de acordo a sua
funçãoeentãoenvia-osparaasaída.UmexemplodeActiveXéoObjetoASPMail,oqual
captaosdadosdeentrada (nome,email, corpodamensagem,etc), criaumemailcom
essesdadosedepoisenviaoemail.
UmavezquealinguagemASPéusadaapenasemalguns"pedaços"depáginasHTML,
existeumsímboloparadiferenciaroqueéprogramaçãoHTMLeoqueéprogramação
ASP:<%códigoasp%>
AbaixoumexemplodepáginaemHTMLeASP:
<head>
<title>páginaemHTMLeASP</title>
ApostilaASP 2de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
</head>
<html>
<p>OláMundo!!!</p>
<%
'(aspassimplessignificaobservaçãodentrodocódigo)
'alinhaabaixotemomesmoefeitodalinhaacima
response.write"<p>OláMundo</p>"
%>
</html>
Funcionamento,ConvençãoeSimbologia
Como Funciona o ASP? Qual a simbologia e a convenção usada na programação em
ASP?
ASPéuma linguagemqueveioparacomplementara linguagemHTML.Ela trazparaa
linguagemHTMLtodoopoderdoacessoabancodedados,doacessoaarquivostexto,
dacaptaçãodeinformaçõesdeformulário,dacaptaçãodeinformaçõessobreovisitante
esobreoservidor,dousodevariáveis,loops.Observeocódigoabaixo:
arquivo"olamundo.asp"
<html>
<head><title>ComofuncionaoASP?</title></head>
<bodybgcolor="#FFFFFF">
<p>OlaMundo!!!</p>
<%
response.write"<p>OlaMundo!!!</p>"
%>
<p><%="OlaMundo!!!"%></p>
</body></html>
OcódigoacimaexibeafraseOlaMundo!!!detrêsmodosdiferentes.Oprimeiro,usando
apenasprogramaçãoHTML,osegundo,usandoapenascomandosASP,eo terceiro,é
umamisturadecódigoHTMLcomASP.Comosepercebe,nãoénecessárioconstruira
páginainteiracomcódigosASP.Épossívelcriarpáginasondeháamesclagemdasduas
programações.Aúnicaexigênciaéque,apartirdomomentoemqueocódigodapágina
tenhapelomenosuma linhana linguagemASP,a terminaçãodonomedapáginadeve
ser.asp.Somenteassimoservidorpoderádistinguirquaispáginasdevemserexecutadas
antes de enviar ao Browser. Abaixo segue a simbologia e as convenções de uso da
linguagemASP.
<%->iníciodotrechodecódigoASP
%>->finaldotrechodecódigoASP
'(aspassimples)->usadaantesdecomentáriosdentrodocódigo
=->éusadonomododeprogramaçãopormesclagemdecódigosHTMLeASP.
A linguagem ASP tem uma estrutura muito bem elaborada, uma vez que ela pode ser
implementadacomoschamadosObjetos.AlinguagemASP,alémdetrazertodoopoder
do VBScript para a página HTML, traz ainda o poder dos Componentes ActiveX e dos
Objetos. Os componentes ActiveX, simplificando bastante, são bibliotecas que contém
vários objetos reunidos. Principalmente objetos que necessitam de instâncias para
funcionar, o que significa que, por exemplo, cada acesso a um bando de dados deve
ocupar uma instância daquele objeto.Objetos são add-ons que dão a capacidade de
captura e transmissão de variáveis entre as páginas, de criação e manipulação de
ApostilaASP 3de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
cookies, sessions e publicidade rotativa nos sites, a capacidade de captura de
informações sobre o Browser do usuário e sobre o servidor, de consulta, alteração e
adiçãodedadosemBandodeDados,deenvioerecebimentodeemailsviapáginaWEB,
eumainfinidadeoutrasfunções.Essesobjetospodemsercriadosporoutrasempresas,
implementandoassimopoderdalinguagemASP.
OObjetoResponse
O objeto Response se refere a todos os dados enviados do servidor para o cliente
(usuário-browser),ouseja,qualquerinformaçãoenviadadoservidorparaobrowserdo
usuárioseutilizadoobjetoResponse.
FunçõesdoObjetoResponse:
response.write-permiteenviartextoaobrowser
response.redirect-Redirecionaobrowserparaumendereçoespecificado.
response.buffer-avisaobrowserdousuárioqueapáginasódeverásermostradaapós
sertotalmentecarregada.Éinteressanteparausarcomafunçãoresponse.redirect.
response.cookies-gravainformaçõesnocookiedobrowser
response.write - envia textos ao browser. É interessante na construção de textos que
mixamtextosprontosevariáveis.
sintaxe:response.writetexto/variável
<html>
<head>
<title>response.asp</title>
</head>
<bodybgcolor="#FFFFFF">
<%
response.write"Olá!!!Abaixoumarotinacomoobjetoresponse.writecujotexto
variadeacordocomavariávelcounter"
forcounter=1to5000
response.writecounter&"->"
next
%>
</body>
</html>
response.redirect - redireciona obrowser do usuário para a páginaespecificada. Esta
funçãosópodeserusadaantesdobrowserdivulgaralgumainformaçãonatela.
sintaxe:response.redirect(URL)
<%
'Afunçãoresponse.redirectredirecionaobrowserdoclienteparaoendereço
contidonavariávelURLnova,nocaso,www.aspbrasil.com.br
URLnova="http://www.aspbrasil.com.br/"
response.redirect(URLnova)
%><html>
<head>
<title>response.asp</title>
</head>
ApostilaASP 4de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<bodybgcolor="#FFFFFF">
</body>
</html>
response.buffer-avisaobrowserdousuárioqueapáginasódeverásermostradaapós
ser totalmente carregada. É interessante para usar com a função response.redirect.
Observeoexemplo:
sintaxe:response.buffer=true/false
<%
response.buffer=true
%>
<html>
<head>
<title>response.asp</title>
</head>
<body>
<%
response.write"Oládenovo!!!Abaixoousodafunçãoresponse.buffer,aqual,
quandotiverovalortrue,avisaobrowserparamostrarasinformaçõessódepois
detotalmentecarregadas.Istopermitequehajaumresponse.redirectemqualquer
partedapágina.Masquandotiverovalorfalse,obrowsermostraasinformações
assimqueelasvãochegando."
response.redirect"http://www.aspbrasil.com.br/"
%>
</body>
</html>
response.cookies-gravainformaçõesnocookiedobrowser.
<html>
<head><title>cookies</title></head>
<body>
<%
'ocomandotimeinsereohorárioatualdoservidor
response.cookies("aspbrasil")("horariovisita")=time
%>
</body></html>
ObjetoRequest
O objeto Request se refere a todos os dados requisitados pelo servidor ao cliente, ou
seja,qualquerinformaçãorequisitadapeloservidoraobrowserdousuário.
FunçõesdoObjetoRequest:
request.form - recupera valores de variáveis enviadas via formulário pelo métodopost.
request.QueryString- recurepavaloresdevariáveisenviadasviaformuláriopelométodo
get.
request.servervariables - recupera informações sobre o browser do usuário e sobre o
ApostilaASP 5de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
servidor WEB.
request.cookies - recupera informações do cookie do browser do usuário.
request.ClientCertificate - mostra informações sobre o certificado de segurança do
usuário.Somenteéusadoemsitescomtransmissãoseguradedados(https)
exemplos:
request.form-recuperavaloresdevariáveisenviadasviaformuláriopelométodopost.
sintaxe:request.form("nomedavariavel")ousimplesmente
request("nomedavariavel")
Abaixo,formuláriodecadastramento.
<html><head><title>Formulário</title></head>
<body>
<formmethod="post"action="retrieve.asp">
<div>Nome:</div><inputtype="text"name="nome">
<div>Endereço:</div><inputtype="text"name="endereco">
<inputtype="submit"value="enviar">
</body>
</html>
aseguir,arotinaderecuperaçãodestesdadospreenchidos(nomeeendereço)
<html><head><title>Recuperaçãodosdados</title></head>
<body>
<div>Abaixo,nomeeendereçodousuárioquepreencheuoformulário:</div>
<%
response.write"<div>Nome:</div>"&request.form("nome")
response.write"<div>Endereço:</div>"&request.form("endereco")
%>
</body></html>
request.QueryString-recuperavaloresdevariáveisenviadasviaformuláriopelométodo
get.
sintaxe:request.querystring("nomedavariavel")ou,também,simplesmente
request("nomedavariavel")
Abaixo,formuláriodecadastramento.
<html><head><title>Formulário</title></head>
<body>
<formmethod="get"action="retrieve.asp">
<div>Nome:</div><inputtype="text"name="nome">
<div>Endereço:</div><inputtype="text"name="endereco">
<inputtype="submit"value="enviar">
</body>
</html>
aseguir,arotinaderecuperaçãodestesdadospreenchidos(nomeeendereço)
ApostilaASP 6de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<html><head><title>Recuperaçãodosdados</title></head>
<body>
<div>Abaixo,nomeeendereçodousuárioquepreencheuoformulário:</div>
<%
response.write"<div>Nome:</div>"&request.form("nome")
response.write"<div>Endereço:</div>"&request.form("endereco")
%>
</body></html>
request.servervariables-recuperainformaçõessobreobrowserdousuárioesobreo
servidorWEB.
sintaxe:request.servervariables("valorsolicitado")
AbaixoumexemplodecomoconseguiralgunsvaloresdoBrowserdousuário
<html><head><title>ServerVariables</title></head>
<body>
<%
response.write"<div>"&request.Servervariables("remote_Addr")&"</div>"
response.write"<div>"&request.Servervariables("server_name")&"</div>"
'request.servervariables("remote_addr")buscaoIPremotodousuário
'request.servervariables("server_name")buscaonomeouIPdoservidor
%>
</body></html>
request.cookies-recuperainformaçõesdocookiedobrowserdousuário.
sintaxe:request.cookies("nomedocookie")("parâmetrodocookie")
Abaixo,rotinaqueadiciona(response.cookies)equerecupera(request.cookies)
informaçõesdocookie
<html><head><title>ServerVariables</title></head>
<body>
<%
'afunçãotimeretornaohoráriodoservidor
response.cookies("aspbrasil")("horavisita")=time
'acima,rotinadecriaçãodecookie
response.write"<div>"&request.cookies("aspbrasil")("horavisita")&"</div>"
'acima,rotinaderecuperaçãodainformaçãocolocadanocookiedenomeaspbrasil
%>
</body></html>
request.ClientCertificate-mostrainformaçõessobreocertificadodesegurançado
usuário.Somenteéusadoemsitescomtransmissãoseguradedados(https).
sintaxe:request.clientcertificate(parâmetro[sub-parâmetro])
abaixo,exemploderecuperaçãodeinformaçõessobreumsiteseguro.
ApostilaASP 7de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<html><head><title>ServerVariables</title></head>
<body>
<%
reponse.write"<div>"&response.clientcertificate("validfrom")&"</div>"
'retornaadatainicialdavalidadedocertificado
%>
</body></html>
ObjetoServer
O objeto Server permite o acesso e a configuração de algumas funções e métodos
diretamenteligadosaoservidor.
FunçõesdoObjetoServer:
server.ScriptTimeOut - configuração do Timeout de carregamento da página
server.HTMLEncode - codifica strings. Usado para codificar strings que contenham
caracteres especiais.
server.URLEncode - transforma strings para o formato QueryString.
server.MapPath -mapeiaarquivosdeacordocomopath físico, a partir dopathvirtual.
server.CreatObject-permiteaberturadeinstânciasdeobjetosvinculadosacomponentes
ActiveX.
exemplos:
server.ScriptTimeOut-Configuraotempomáximoparaexecuçãoecarregamentoda
página.Otempopadrãoéde90segundos.
sintaxe:server.ScriptTimeOut=tempo
<html><head><title>TestandoScriptTimeOut</title></head>
<body>
<%
response.write(server.scriptTimeOut&"<BR>")
Server.ScriptTimeOut=120
response.write(server.ScriptTimeOut&"<br>")
%>
</body></html>
server.HTMLEncode-usa-separacodificartextosquecontenhamcaracteresespeciais,
taiscomo>ou<.Codificado,oBrowsersaberáqueocaracterefazpartedotexto,e
então,estecaracterenãoseráinterpretadocomcódigo.Éusadotambémparapara
codificarcaracteresdeoutrosidiomas,deformaqueoBrowseridentifiqueoidioma,e
entãoexponhaossímboloscorretosnatela.
sintaxe:server.HTMLEncode("string")
<html><head><title>HTMLEnconde</title></head>
<body>
<%
response.write(server.HTMLEncode("<<<OláMundo>>>"))
response.write(server.HTMLEncode("WELCOMETOMÜNCHEN"))
ApostilaASP 8de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
'oscaracteres<,>,eÜsãocaracteresespeciais.OcomandoHTMLEncode
asseguraqueessescódigosserãointerpretadosdeformacorretapeloBrowser.
%>
</body>
</html>
server.URLEncode-URLs(UniformResourceLocators)sãousadospararequisitar
arquivoseinformaçõesemservidoresWEB.Muitasvezes,osURLsnãocontémapenaso
nomedoarquivo,mastambémcarregamcomelesvaloresdevariáveisnoformato
QueryString.Ocomandoserver.URLEncodetransformastringsdetextoem
stringsnoformatoQueryString.
sintaxe:request.URLEncode("string")
<html><head><title>HTMLEnconde</title></head>
<body>
<%
response.write(server.URLEncode("test.asp?name=FernandoMedeiros&idade=25
anos"))
response.write("test.asp?"&server.URLEncode("name=Fernando
Medeiros&idade=25anos"))
%>
</body>
</html>
server.MapPath-retornaopathfísicodoarquivoapartirdopathvirtual.Nocasode
arquivosquenãotenhamhomônimosnomesmodomínio,afunçãoserver.MapPathé
capazdelocalizaroarquivonodomínioeretornaropathfísico.
sintaxe:server.MapPath("pathvirtual")
<html><head><title>server.MapPath</title></head>
<body>
<%
response.write(server.mappath("/test.asp"))
'alinhaacimaretornaopathfísicodoarquivotest.aspnoservidor.Nocaso,
c:\aspbrasil\test.asp
response.write(server.MapPath("test.asp"))
'alinhaacimaretornaomesmopathfísico,apesardenãoconteropathvirtual,e
sim,apenasonomedoarquivo.Talretornosóépossívelsenãoexistiremdois
arquivoscomomesmonomedentrodomesmodomínio.
%>
</body></html>
server.CreateObject-Éusadoparagerarinstânciasdecomponentesparausonos
Scripts.Porpadrão,cadaobjetocriadoapartirdocomponenteéautomaticamente
destruídoaoacabaroprocessamentodapágina.
sintaxe:Setnomedadoaoobjeto=Server.CreateObject("iddoobjeto")
ApostilaASP 9de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<html><head><title>CreateObject</title></head>
<body>
<%
Setobjtexto=Server.CreateObject("Scripting.FileSystemObject")
'alinhaacimacriouumainstânciadeobjetodocomponente
scripting.filesystemobject,usadoparaacessararquivostexto.
Setarquivotexto=objtexto.OpenTextFile(Server.MapPath("test.txt"))
'abreoarquivotextodentrodainstânciadoobjetoScripting.FileSystemObject
response.writearquivotexto.readline
'alinhaacimamostraaprimeiralinhadetextodoarquivoaberto.
arquivotexto.close
'alinhaabaixodestruíuimediatamente
%>
</body></html>
ComponenteFileAccess
O componente File Access é um componente usado para acessar arquivos texto. Os
arquivos tipo texto, muitas vezes, são usados como bancode dados de acesso
sequencial (nem sempre é vantagem se usar bancos de dados com acesso aleatório,
como o MSAccess, ...). Assim sendo, foi necessário a criação de um componente que
permitissealeituraegravaçãodedadosnestesarquivos.
sintaxe:
conexãocomocomponente:SetfsObj=
Server.CreateObject("Scripting.FileSystemObject")
criaçãodoarquivotest.txt:SettxtStreamObj=fsObj.CreateTextFile(name,[bOverWrite])
aberturadoarquivotest.txtparaleituraougravação:SettxtStreamObj=
fsObj.OpenTextFile(name,[iomode,[bCreate,[format]]])
fsObj,txtStreamObjsãovariáveisdefinidaspelousuário.
name-nomedoarquivotexto(colocaropathcasooarquivoselocalizeemoutrapasta
quenãoadoarquivoASPquepossuiestecódigo)
bOverWrite-TRUE:casooarquivoexiste,eleédeletado,eumnovoécriado.FALSE:
casooarquivoexista,elenãoésubstituído.
iomode-FROWRITING,FORREADING:mododeaberturadoarquivoselecionado(para
gravação,paraleitura)
bCreate-TRUE:casooarquivoselecionadoparaaberturanãoexista,eleécriado.
format-TRUE:écriadoumarquivotextousandooformatoUnicode.FALSE:écriadoum
arquivotextousandooformatoASCII.
OsvaloresTRUEouFALSEsãodeterminadosdeacordocomumatabelaexistentenum
arquivochamadofobjvbs.inc,oqualdeveserincluídonocódigodapáginaquecontémo
códigoASPdeleituradoarquivotexto.(vejaexemplomaisabaixo)
ApostilaASP 10de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
Abaixo,umatabeladosvárioscomandosdessecomponente:
AtEndOfLine
RetornaTRUEcasooponteirotenhachegadoao
finaldalinha.Usadoapenasemarquivosabertos
paraleitura.
AtEndOfStream
RetornaTRUEcasooponteirotenhachegadoao
finaldoarquivo.Usadoapenasemarquivosabertos
paraleitura.
Column Retornaonúmerodacolunaqueoponteirose
encontra.Aprimeiracolunatemnumeração1.
Line Retornaonúmerodalinhaqueoponteirose
encontra.Aprimeiralinhatemnumeração1.
Close Fechaumarquivoaberto.
Read Lêumdeterminadonúmerodecaracteresdoarquivo.
ReadAll
Lêtodooarquivo.Quandooarquivoformuito
grande,usaroutrosmétodosdeleitura,comoaleitura
delinhaporlinha.
ReadLine Lêumalinhainteira,ouseja,lêoscaracteresque
estãoentreaposiçãodoponteiroeofinaldalinha.
Skip pulaumdeterminadonumerodecaracteres.
SkipLine pulaumalinhainteira.
Write gravaumadeterminadastringparaoarquivo.
WriteLine gravaumadeterminadastringparaoarquivoeposicionaoponteironoiníciodalinhaseguinte.
WriteBlankLines gravaumadeterminadaquantiadelinhasbrancasao
arquivo.
Vejaosexemplosaseguir:
<HTML><HEAD><TITLE>ComponenteFileAccess</TITLE></HEAD>
<BODY>
<!--#includefile="fobjvbs.inc"-->
<%
Setobjeto=CreateObject("Scripting.FileSystemObjects")
'alinhaacimacriouumainstânciadocomponenteFileAccess
Setgv=objeto.OpenTextFile("c:\test.txt",ForWriting,True,False)
'alinhaacimaabreoarquivoC:\test.txtparagravação.Casoelenãoexista.,écriado
um.(estecódigotemexatamenteomesmoefeitodométodoCREATETEXTFILE.
gv.Writeline("EstalinhafoiinseridacomousodocomponenteFileAccess.")
gv.Close
'alinhaacimafechaoarquivoabertoparagravação
objeto=nothing
'alinhaacimaliberaavariávelobjeto,dessaforma,elanãoficaarmazenando
valoresquenãoserãomaisusadosapósofechamentodoarquivo.
%>
<p>Pronto.Foigravadaalinhaacima</p>
</BODY></HTML>
ComponenteBrowserCapabilities
ApostilaASP 11de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
OcomponenteBrowserCapabilities temcomoobjetivoserusadoparadeterminarquais
sãoaspropriedadesquecadaBrowser(navegador)queestáacessandooseusitetem.
DesdeonomeeversãoatéadetecçãodesuporteaJavaScript,Applet Java,Cookies,
etc.Abaixo,umalistacontendoaspropriedadesquepodemserdeterminadasapartirdo
componenteBrowserCapabilites.
ActiveXControls EspecificaquandoobrowsersuportacontrolesActiveX
backgroundsounds Especificaquandoobrowsertemcapacidadedetocarsomdefundo(backgroundsound)
beta Especificaquandoobroweréversãobeta.
browser Especificaonomedobrowser
cookies Especificaseobrowseraceitacookies
frames Especificaseobrowsersuportaframes
javaapplets
EspecificaseobrowsersuportaAppletsJava(ou,
emalgunscasos,seosuporteaAppletsJavaestá
ativo)
javascript EspecificaseobrowsersuportaJavaScript(ou,em
algunscasos,seosuporteaJavaScriptestáativo)
majorver EspecificaonúmeromaissignificativodaVersão(na
versão4.01,porexemplo,éretornadoonúmero4)
minorver EspecificaosnúmerosmenossignificativosdaVersão(noexemploacima,retornaonúmero01)
platform Especificaemqualsistemaoperacionalobrowser
estáinstalado
tables Especificaseobrowsersuportatabelas
vbscript
Especificaquandoobrowsersuportavbscript
(processamentolocaldevbscript-nãohánadaaver
comovbscriptusadonaprogramaçãoASP,oqualé
processadonoservidor)
version Retornaonúmerodaversãodobrowser(exemplo:4.01)
win16
Especificaseobrowserrodanumcomputadorcom
sistemaoperacional16bits(win3.x).Válidosomente
paraInternetExplorer.
Casoalgumadessasespecificaçõesnãosejadefinidapelobrowser,astring"UNKNOWN"
éretornada.
sintax:
Setbc=Server.CreateObject("MSWC.BrowserType")
...=bc.propriedade
<html><head>
<TITLE>ComponentebrowserCapabilities</TITLE>
</head><bodybgcolor="#FFFFFF">
<%Setbc=Server.CreateObject("MSWC.BrowserType")%>
Browser:<%=bc.browser%><p>
ApostilaASP 12de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
Versão:<%=bc.version%><p>
<%if(bc.frames=TRUE)then%>
Estebrowseraceitaframes<p><p>
<%else%>
ÉmelhorvocêtrocardeBrowser.Estenãosuportaframes...
<%endif%>
<%if(bc.tables=TRUE)then%>
Legal.Estebrowseraceitatabelas...<p>
<%else%>
ÉmelhorvocêtrocardeBrowser.Estenãosuportanemtabelas...ébem
velhinho...<p>
<%endif%>
<%if(bc.BackgroundSounds=TRUE)then%>
Estebrowserpermitequehajafundomusicalnaspáginas<p>
<%else%>
Ouestebrowserébemantiguinho,ouvocêrealmentenãogostademuito
barulho.<p>
<%endif%>
<%if(bc.vbscript=TRUE)then%>
EsteBrowseraceitaprocessamentolocaldeVBScript<p>
<%else%>
EsteBrowsernãopermiteoprocessamentolocaldeVBScript<p>
<%endif%>
<%if(bc.javascript=TRUE)then%>
EsteBrowseraceitaprocessamentolocaldeJavaScript<p>
<%else%>
EsteBrowsernãopermiteoprocessamentolocaldeJavaScript<p>
<%
endif
setbc=nothing
%>
</body></html>
Application/SessionObj.
O objeto Application tem como objetivo armazenar e compartilhar valores, estados e
propriedadesdeumgrupo.Nocaso,valorescomunsatodososvisitantesdosite,como
número totaldevisitantesnosite, quantaspessoasestãovisitandoosite nomomento,
etc.
O objeto session tem como objetivo armazenar e compartilhar valores, estados e
propriedades de cada visitante, individualmente. São bons exemplos o uso em lojas
virtuais, onde a cesta de compras pode ser armazenada dentro de uma session.
OobjetoApplicationéativadoquandoforfeitaaprimeiravisitaaosite,eterminaquando
o servidor for desligado (é permitido gravar todos esses valores em banco de dados,
assimnãohá perdados valores).Todoo script e códigos dearmazenamento somente
podemserescritosemumarquivochamadoglobal.asa,quedevepermanecernapasta
raiz do site.
Oobjetosessionécriadoparacadavisitante,cadavezqueumvisitanteentranosite,eé
ApostilaASP 13de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
destruídotodavezqueestevisitantesaidosite.Aoentrarnosite,cadavisitanterecebe
um ID (número de identificação), o qual é usado para identificar o usuário e para
armazenarosvalores,estadosepropriedadesdecadavisitante,individualmente.
Oarquivoglobal.asatemoseguinteformato:
<SCRIPTLANGUAGE=VBSCRIPTRUNAT=SERVER>
SubApplication_OnStart
Endsub
SubApplication_OnEnd
Endsub
SubSession_OnStart
Endsub
SubSession_OnEnd
Endsub
</SCRIPT>
Nos eventos Application_OnStart e Application_OnEnd estão armazenados os valores
comuns a todos os visitantes. Nos eventos Session_OnStart e Session_OnEnd estão
armazenadososcódigos,scriptsevaloresusadosnassessions(valoresindividuaispara
cadavisitante).
MétodosdosObjetosApplicationeSession:
Application.Lock -> é usado para bloquear o acesso de outras páginas ao evento
Application_OnStart ou Application_OnEnd, com excessão da página que requisitou o
bloqueio,permitindoassimquesomenteestapáginapossafazeralteraçõesnoevento.Application_Unlock->Desbloqueiaoacessodeoutraspáginas.
Esses métodos são usados para que duas páginas não tentem alterar as mesmas
propriedades ou valores ao mesmo tempo. Pois isso acarretaria numa perda de
consistênciadosdadosarmazenados.
Abaixo,umexemplodecomosaberonúmerodevisitantestotaisdositeeonúmerode
visitantesnositenopresentemomento.
<SCRIPTLANGUAGE=VBSCRIPTRUNAT=SERVER>
SubApplication_OnStart
Application("Totalvisitas")=0
Application("datainicial")=now
Application("Visitasatuais")=0
Endsub
SubApplication_OnEnd
Endsub
SubSession_OnStart
Application.Lock
Application("Totalvisitas")=Application("Totalvisitas")+1
Application("Visitasatuais")=Application("Visitasatuais")+1
Application.Unlock
Endsub
SubSession_OnEnd
Application.Lock
Application("Visitasatuais")=Application("Visitasatuais")-1
Application.Unlock
Endsub
</SCRIPT>
ApostilaASP 14de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
abaixo,códigoparaexibiressesvalores.
<HTML><header><title>Application&Session</title></header>
<body>
<%
response.write"Visitastotaisdesde"&application("datainicial")&":"&
application("Totalvisitas")
response.write"Visitantesnositenomomento:"&application("Visitasatuais")
%>
</body>
</html>
ComponenteDatabase
OcomponenteDatabaseAccesséumcomponenteusadoparaacessarbancosdedados
deacessoaleatório,taiscomoAccess,SQLServer,DBF,Oracle,...
O componente Database Access permite a consulta, inserção, alteração e exclusão de
dadosnosbancosdedados.Taisoperaçõessão,geralmente,feitasatravésdecomandos
SQL (Structured Query Language), a qual será exemplificada mais abaixo.
Este tutorial não contém todos os comandos e possibilidades de uso do componente
Database Access, uma vez que este é muito grande e complexo, mas os comandos e
métodosmaisutilizadosestãocitadosnestedocumento.
sintaxe:
conexãocomocomponente:SetConn=Server.CreateObject("ADODB.Connection")
aberturadeumbancodedadosjáexistente:Conn.Open"nomedaligaçãoODBCou
pathdoBD","UserID","Senha"
execuçãodecomandosSQL:SetrsQuery=Conn.Execute("stringSQL")
ummodoalternativodeseabrirumbancodedadosparagravação:
SetRS=Server.CreateObject("ADODB.RecordSet")
RS.Open"tabela",Conn,adOpenKeyset,adLockOptimistic
ParaofuncionamentocorretodocomponenteASP,oarquivoadovbs.incdeveser
incluídonocódigodapáginaquecontémocódigodemanipulaçãodobancodedados.
Abaixo,umatabelacomalgunsdoscomandosmaisusadosdessecomponente:
EOF RetornaTRUEcasooponteirotenhachegadoaofinaldoarquivo.(depoisdoúltimoregistro)
BOF RetornaTRUEcasooponteiroestejaposicionadonoiníciodoarquivo.(antesdoprimeiroregistro)
MoveFirst Posicionaoponteiroparaoiníciodobancodedados.
MoveLast Posicionaoponteironofinaldobancodedados
MoveNext Moveoponteiro1registroadiantenobancodedados.
MovePrevious Moveoponteiroparaoregistroanteriornobancodedados.
AddNew
Adicionaumnovoregistroaobancodedados.É
usadoquando,aoinvésdeusarSQL,abre-seo
bancodedadosnomodoRecordSet.
ApostilaASP 15de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
Update Salvaasalteraçõesfeitasnobancodedados,no
modoRecordSet.
Vejaosexemplosaseguir:
<HTML><HEAD><TITLE>Adicionandoumnovoregistroaobancodedados
cadastro</TITLE></HEAD>
<BODY>
<!--#includefile="adovbs.inc"-->
<%
'avariavelabaixo-Connstring-guardaopathfísicodobancodedadosno
servidor.poderiaarmazenar,nolugardopath,onomedaconexãoODBC,casoesta
tenhasidocriada(comoserávistonopróximoexemplo)
ConnString="DBQ=e:\aspbrasil\teste.mdb;Driver={MicrosoftAccessDriver(*.mdb)}"
SetConn=Server.CreateObject("ADODB.Connection")
SetRS=Server.CreateObject("ADODB.RecordSet")
Conn.OpenConnString,"",""
RS.Open"cadastro",Conn,adOpenKeyset,adLockOptimistic
RS.Addnew
RS("nome")="João"
'alinhaacimaatribuiovalorJoãoaocamponome,nessenovoregistro.
RS("email")="joao@aspbrasil.com.br"
'alinhaacimaatribuiovalorjoao@aspbrasil.com.braocampoemaildobancode
dados.
RS.update
'alinhaacimaconfirmaainclusãodosdados.Casoestecomandonãosejausado,o
registronãoéinserido.
RS.Close
SetConn=nothing
SetRS=nothing
%>
<p>Pronto.Foigravadooregistroacima.</p>
</BODY></HTML>
<HTML><HEAD><TITLE>Adicionandoumnovoregistroaobancodedados
cadastrousandoligaçãoODBC</TITLE></HEAD>
<BODY>
<!--#includefile="adovbs.inc"-->
<%
'avariavelabaixo-Connstring-guardaonomedaconexãoODBC(háa
necessidadedealigaçãoODBCjáestarcriada).
ConnString="odbcteste"
SetConn=Server.CreateObject("ADODB.Connection")
SetRS=Server.CreateObject("ADODB.RecordSet")
Conn.OpenConnString,"",""
RS.Open"cadastro",Conn,adOpenKeyset,adLockOptimistic
RS.Addnew
RS("nome")="João"
'alinhaacimaatribuiovalorJoãoaocamponome,nessenovoregistro.
RS("email")="joao@aspbrasil.com.br"
'alinhaacimaatribuiovalorjoao@aspbrasil.com.braocampoemaildobancode
dados.
RS.update
ApostilaASP 16de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
'alinhaacimaconfirmaainclusãodosdados.Casoestecomandonãosejausado,o
registronãoéinserido.
RS.Close
SetConn=nothing
SetRS=nothing
%>
<p>Pronto.Foigravadooregistroacima.</p>
</BODY></HTML>
<HTML><HEAD><TITLE>FazendoumaconsultaSQLemostrandoosdadosobtidos
emumatabela</TITLE></HEAD>
<BODY>
<!--#includefile="adovbs.inc"-->
<%
'avariavelabaixo-Connstring-guardaonomedaconexãoODBC(háa
necessidadedealigaçãoODBCjáestarcriada).
ConnString="odbcteste"
'avariávelabaixoguardaastringSQL,usadaparafazeraconsultanobancode
dados.Nocaso,pede-separagerarumaconsultaondeapenasosregistrosondeo
campoNOMEéigualaovalorJOÃO.
SQLstring="select*fromcadastrowherenome='joão'"
SetConn=Server.CreateObject("ADODB.Connection")
Conn.OpenConnString,"",""
SetrsQuery=Conn.Execute(SQLstring)
'alinhaacimagerouumaconsultachamadarsQuery.todososregistrosque
satisfazemaSQLstringestãoarmazenadosnestavariável.
%>
<table>
<tr><td>Nome</td><td>email</td></tr>
<%
WhilenotrsQuery.EOF
%>
<tr><td><%=rsQuery("nome").value%></td><td><%=rsQuery("email").value%></td>
</tr>
<%
rsQuery.Movenext
Wend
%>
</table>
<%
rsQuery.Close
setConn=nothing
SetrsQuery=nothing
%>
</BODY></HTML>
<HTML><HEAD><TITLE>FazendoumaalteraçãoviaSQL</TITLE></HEAD>
<BODY>
<!--#includefile="adovbs.inc"-->
<%
'avariavelabaixo-Connstring-guardaonomedaconexãoODBC(háa
necessidadedealigaçãoODBCjáestarcriada).
ConnString="odbcteste"
'avariávelabaixoguardaastringSQL,usadaparafazeraatualizaçãonobancode
ApostilaASP 17de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
dados.Nocaso,pede-separamudaronomeeoemaildoregistrodecódigo5.
SQLstring="updatecadastrosetnome='maria'and
email='maria@aspbrasil.com.br'"
SetConn=Server.CreateObject("ADODB.Connection")
Conn.OpenConnString,"",""
SetrsQuery=Conn.Execute(SQLstring)
rsQuery.Close
SetConn=nothing
SetrsQuery=nothing
%>
<p>Arquivoalterado.</p>
</BODY></HTML>
<HTML><HEAD><TITLE>Fazendoumaexclusãoderegistrovia
SQL</TITLE></HEAD>
<BODY>
<!--#includefile="adovbs.inc"-->
<%
'avariavelabaixo-Connstring-guardaonomedaconexãoODBC(háa
necessidadedealigaçãoODBCjáestarcriada).
ConnString="odbcteste"
'avariávelabaixoguardaastringSQL,usadaparafazeraexclusãodoregistrono
bancodedados.Nocaso,pede-separaexcluiro(s)registro(s)ondeocódigoé5.
Porsetratardeumnúmeroenãodeumastring,ovalordocódigo,nocaso5,não
ficaentreaspas.
SQLstring="delete*fromcadastrowherecodigo=5"
SetConn=Server.CreateObject("ADODB.Connection")
Conn.OpenConnString,"",""
SetrsQuery=Conn.Execute(SQLstring)
SetrsQuery=nothing
SetConn=nothing
%>
<p>RegistroExcluído</p>
</BODY></HTML>
ServerVariables
ServerVariableséumconjuntodevariáveisdesistema,quepodemindicardesdeoIP
remoto,protocolo,HOSTdoservidordeacessodousuário,etc.
sintaxe:
valor=Request.ServerVariables("variável")
Abaixo,umatabelacomasprincipaisvariáveisdesseconjunto.
CONTENT_LENGTH Retornaotipodeconteúdoquefoienviadoao
servidor.
QUERY_STRING Stringquesucedeo?noendereçoURL.
REMOTE_ADDR IPdousuário
REMOTE_HOST
Nomedoservidorcorrespondenteao
REMOTE_ADDR(nomedoprovedordeacessodo
usuário)
ApostilaASP 18de43
ApostilaseTutotriais:http://Apostilas.Fok.com.brREQUEST_METHOD Métodousadoparatransmissãodasvariáveisdeumapáginaparaoutra(GETouPOST)
SERVER_NAME Nomedoservidordehospedagem,comousadonoURL(podeseroIPouDNS)
URL endereçoURLrequisitado(semaquery_string)
Vejaosexemplosaseguir:
<HTML><HEAD><TITLE>ServerVariables</TITLE></HEAD>
<BODY><p>oIPusadopelasuaconexãoé:
<%=request.servervariables("REMOTE_ADDR")%></p></BODY>
</HTML>
Cookies
Cookiessãopequenosarquivosnoformatotxt,gravadosnoscomputadoresdosusuários,
contendoinformaçõesquepodemserrecuperadasposteriormente.
sintaxe:
gravaçãodeinformaçõesnocookie:
response.cookies("nomedocookie")("nomedoparametro")="valordoparâmetro"
recuperaçãodeinformaçõesdocookie:variável=
request.cookies("nomedocookie")("nomedoparametro")
determinaçãodadatadeexpiraçãodocookie:
Response.Cookies("nomedocookies").Expires=datanoformatomm/dd/aa
obs:casonãosejadeterminadaumadatadeexpiração,ocookieseráapagadoassimque
obrowserforfechado.
Vejaosexemplosaseguir:
<%
response.cookies("aspbrasilteste")("data")=now
response.cookies("aspbrasilteste")("nome")="João"
'aslinhasacimacriaramocookieaspbrasile2parâmetros,dataenome.
response.cookies("aspbrasilteste").expires="6/25/99"
'alinhaacimadeterminaumadatadeexpiraçãodocookie
%>
<HTML><HEAD><TITLE>Criandoumcookie</TITLE>
</HEAD>
<BODY>
<%
response.write"Ocookiesaspbrasiltestefoicriadoem:"&
request("aspbrasilteste")("data")
response.write"Quemcrioufoi:"&request("aspbrasilteste")("nome")
%>
</BODY></HTML>
ObjetosApplicationeSession
ApostilaASP 19de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
O objeto Application foi criado para armazenar propriedades (valores) ligados a um
conjuntodeusuários.Nocaso,osvisitantesdosite,deummodogeral.Comoexemplo,
podemoscitaronúmerototaldevisitantesnositeapartirdeumadeterminadadata,ouo
númerodevisitantesonlinenosite.
O objeto Session foi criado para armazenar propriedades (valores) ligados a cada
visitante, individualmente. Como exemplo, podemoscitar o carrinho de comprasde um
site de comércio online.
UmaSessionécriadaquandoovisitanteentranosite(cadavisitantetemumasessione
cadasessionrecebeumID),eédestruídaquandoovisitantesaidosite(sejaporlogoff
explícito ouporTimeOut). JáumaApplicationé iniciadaaohaver oprimeiro pedidode
acessoaoobjetoApplication,eéencerradoquandooservidorfordesligado.
Todoocódigoquesedesejaexecutaraocriaroudestruirumasession,bemcomouma
Application devem estar contidos no arquivo global.asa, um arquivo texto no formato
abaixodemonstrado,quedevesercolocadonodiretórioraizdosite.
AsvariáveisdoobjetoApplicationedoobjetoSessionsãoarmazenadasnoservidor,mas
énecessárioqueobrowseraceitecookies,poisumcookiecomoIDdasessãoécriado
nocomputadordovisitante,paraidentificá-lo.
Vejaoexemploabaixo:
Listagemdoarquivoglobal.asa
<SCRIPTLANGUAGE=VBSCRIPTRUNAT=SERVER>
SubApplication_OnStart
Application("totaldeusuarios")=0
Application("datainicial")=now
Application("usuariosonline")=0
EndSub
SubApplication_OnEnd
EndSub
SubSession_OnStart
Session.TimeOut=20
Application.Lock
Application("totaldeusuarios")=Application("totaldeusuarios")+1
Application("usuariosonline")=Application("usuariosonline")+1
Application.Unlock
EndSub
SubSession_OnEnd
Application.Lock
Application("usuariosonline")=Application("usuariosonline")-1
Application.Unlock
EndSub
</SCRIPT>
Abaixo,ocódigodeumapáginaquearmazenaumvalornumavariáveldesessãoe
mostraototaldeusuáriosconectadoseototaldevisitantesnosite.
<html><head><title>ApplicationeSession</title></head>
<%Session("variavelqualquer")="Estevalorfoiinseridonavariáveldesessãode
nomevariavelqualquer"%>
<body>
<p>NúmerodaSessão:<%=Session.SessionID%></p>
ApostilaASP 20de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<p>Existemnomomento<%=Application("usuariosonline")%>usuários
conectados.</p>
<p>Totaldevisitantesnositedesde<%=Application("datainicial")%>:
<%=Application("totaldeusuarios")%></p>
<p>Abaixo,astringquefoiinseridanavariavelvariavelqualquer</p>
<p><%=Session("variavelqualquer")%></p>
<%Session.Abandon%>
</body></html>
Os comandos Lock e Unlock servem para garantir que somente um visitante estará
alterandoasvariáveisporvez.OcomandoLockbloqueiaaacessodeoutrosvisitantesàs
variáveis, e o Unlock desbloqueia.
O comando Session.SessionID retorna o valor do ID da sessão.
OcomandoSession.TimeOutdeterminaqualotempomáximo,emminutos,deinatividade
do visitante até que a sessão possa ser considerada abandonada.
OcomandoSession.Abandonterminaasessãoiniciadaexplicitamente(nãoénecessário
esperarovencimentodoTimeOutparaconsiderarasessãoabandonada).
A procedure Application_OnStart contém a rotina que será rodada quando o objeto
Application for iniciado.
A procedure Application_OnEnd contém a rotina que será executada quando o objeto
Application for terminado (qdo. o servidor for desligado).
AprocedureSession_OnStartcontémocódigoqueserárodadoquandoumasessãofor
iniciada.
AprocedureSession_OnEndcontémocódigoqueserárodadoquandoumasessão for
terminada(portimeoutoulogoffexplícito).
Procedures
Algumasvezes,emprogramação,umamesmasequênciadecódigosprecisaserusado
constantemente. Ao invés de copiá-los toda vez que for preciso, pode-se usar as
Procedures.Proceduressãocaixaspretas,ondevcentracomalgunsdados,acaixapreta
processa,enocasodasFunctions,retornaoutrosvalores,deacordocomumalgorítimo.
ExistemdoistiposdeProcedures,asSubseasFunctions.Observeos
exemplosabaixo:
<html><body>
<%
Functionsoma(valor1,valor2)
Ifvalor1=""thenvalor1=0
Ifvalor2=""thenvalor2=0
soma=valor1+valor2
EndFunction
'acima,afunçãodenominadasomafoiapresentada
'abaixo,umachamadaàfunçãofoifeita.Entãoafunçãoexecutaarotinaeretorna
umdeterminadovalor,nocaso5.
response.writesoma(2,3)
%></body></html>
ApostilaASP 21de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
JáumaSubsimplesmenteexecutaumaação,nãoretornandovaloralgum.
<html><body>
<%
Subvisualizar_nome(nome)
response.write"Onomedositeé:"&nome
EndSub
'acima,aproceduredotipoSubfoidenominadavisualizar_nome
response.write"QualéositesobreASPqueofereceTutoriais,NewsgroupseLinks
aseusvisitantes?"
Callvisualizar_nome("ASPBRASIL")
response.write"<div><ahref=www.aspbrasil.com.br>Home</a></div>"
'acima,ocomandoCallfazachamadaàSubvisualizar_nome.Comopode-se
perceber,umaSubnãoretornanenhumvalor,esimexecutaumaação.
%>
</body></html>
If...Then...Else;SelectCase
Existem2comandoscapazesdeidentificaroconteúdodeumadeterminadavariável,ede
acordocomessevalor,executarumadeterminadarotina:
If...Then...Else
OcomandoIf...Then...Elsepossibilitaverificarseumadeterminadavariávelestáounão
deacordocomumcritériodeseleção.Observeoexemploabaixo:
<html><body>
<%
variavel_qualquer=hour(now)
Ifvariavel_qualquer<19then
response.write"BomDia"
Else
response.write"BoaNoite"
Endif
'ocomandoIF...then...Elsecomparouovalordavariavelvariavel_qualquercomum
determinadovalorestipulado(nocaso,19).Seovalorformenorque19,então
escrevanatela"BomDia".Casocontrário(Else),"BoaNoite"
%></body></html>
SelectCase
ApostilaASP 22de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
OcomandoSelectCasepermiteummaiorcontrolesobreosvaloresdeumadeterminada
variavel.ObserveoExemploAbaixo:
<html><body>
<%
variavel_qualquer=hour(now)
SelectCasevariavel_qualquer
case0,1,2,3,4,5,6,7,8,9,10,11,12
response.write"BomDia"
case13,14,15,16,17,18,19
response.write"BoaTarde"
case20,21,22,23,24
response.write"BoaNoite"
Caseelse
response.write"Esterelógioestámaluco"
EndSelect
%></body></html>
observequeocomandoSelectCasedeveserfechadocomocomandoEndSelect.
If...Then...Else;SelectCase
Existem2comandoscapazesdeidentificaroconteúdodeumadeterminadavariável,ede
acordocomessevalor,executarumadeterminadarotina:
If...Then...Else
OcomandoIf...Then...Elsepossibilitaverificarseumadeterminadavariávelestáounão
deacordocomumcritériodeseleção.Observeoexemploabaixo:<html><body>
<%
variavel_qualquer=hour(now)
Ifvariavel_qualquer<19then
response.write"BomDia"
Else
response.write"BoaNoite"
Endif
'ocomandoIF...then...Elsecomparouovalordavariavelvariavel_qualquercomum
determinadovalorestipulado(nocaso,19).Seovalorformenorque19,então
escrevanatela"BomDia".Casocontrário(Else),"BoaNoite"
%></body></html>
SelectCase
OcomandoSelectCasepermiteummaiorcontrolesobreosvaloresdeumadeterminada
variavel.ObserveoExemploAbaixo:
<html><body>
<%
variavel_qualquer=hour(now)
SelectCasevariavel_qualquer
ApostilaASP 23de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
caseis>0andqualquer_variavel<12
response.write"BomDia"
caseos>12andqualquer_variavel<19
response.write"BoaTarde"
case>19andqualquer_variavel<24
response.write"BoaNoite"
Caseelse
response.write"Esterelógioestámaluco"
EndSelect
%></body></html>
observequeocomandoSelectCasedeveserfechadocomocomandoEndSelect.
If...Then...Else;SelectCase
Existem2comandoscapazesdeidentificaroconteúdodeumadeterminadavariável,ede
acordocomessevalor,executarumadeterminadarotina:
If...Then...Else
OcomandoIf...Then...Elsepossibilitaverificarseumadeterminadavariávelestáounão
deacordocomumcritériodeseleção.Observeoexemploabaixo:
<html><body>
<%
variavel_qualquer=hour(now)
Ifvariavel_qualquer<19then
response.write"BomDia"
Else
response.write"BoaNoite"
Endif
'ocomandoIF...then...Elsecomparouovalordavariavelvariavel_qualquercomum
determinadovalorestipulado(nocaso,19).Seovalorformenorque19,então
escrevanatela"BomDia".Casocontrário(Else),"BoaNoite"
%></body></html>
SelectCase
OcomandoSelectCasepermiteummaiorcontrolesobreosvaloresdeumadeterminada
variavel.ObserveoExemploAbaixo:
<html><body>
<%
variavel_qualquer=hour(now)
SelectCasevariavel_qualquer
caseis>0andqualquer_variavel<12
response.write"BomDia"
caseos>12andqualquer_variavel<19
response.write"BoaTarde"
case>19andqualquer_variavel<24
ApostilaASP 24de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
response.write"BoaNoite"
Caseelse
response.write"Esterelógioestámaluco"
EndSelect
%></body></html>
observequeocomandoSelectCasedeveserfechadocomocomandoEndSelect.
RotinasdeLoop
Loopssãorotinasquedevemserrepetidasatéqueumadeterminadacondiçãoseja
satisfeita.Existem3comandosquepermitemtalsituação:
Abaixoseguemascaracterísticaseexemplosdecadacomando.
Do...Loop
OcomandoDo...Loopexecutaumadeterminadarotinaatéqueacondiçãosetorne
verdadeira.Observeoexemploabaixo:
<html><body>
<%
x=0
DoUntilx=10
x=x+1
Loop
response.writex
%></body></html>
parainterromperoLoop,usa-seocomandoExitDo
For...Next
OcomandoFor...Nextexecutaumadeterminadarotinaatéqueocontador(umavariável)
atinjaovalordeterminado.Observeoexemplo:
<html><body>
<%
Fori=1to50
response.writei
next
%></body></html>
observequenãoénecessárionenhumarotinadeincrementaçãodevaloresemi.A
cadaciclo,ovalordeiéacrescidodeumaunidade,automaticamente.
parainterromperoLoop,usa-seocomandoExitFor
While...Wend
ApostilaASP 25de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
OcomandoWhile...Wendexecutaumadeterminadarotinaatéqueacondiçãoimposta
sejaalcançada.Observeoexemplodado:
<html><body>
<%
q="SELECT*FROMcadastrowherecidade='SãoPaulo'"
connstring="DBQ=c:\teste.mdb;Driver={MicrosoftAccessDriver(*.mdb)}"
SetConexao=Server.CreateObject("ADODB.Connection")
Conexao.Openconnstring,"",""
Settabela=Conexao.Execute(q)
Whilenottabela.EOF
response.writetabela("nome").value
wend
%></body></html>
RotinasdeLoop
Loopssãorotinasquedevemserrepetidasatéqueumadeterminadacondiçãoseja
satisfeita.Existem3comandosquepermitemtalsituação:
Abaixoseguemascaracterísticaseexemplosdecadacomando.
Do...Loop
OcomandoDo...Loopexecutaumadeterminadarotinaatéqueacondiçãosetorne
verdadeira.Observeoexemploabaixo:
<html><body>
<%
x=0
DoUntilx=10
x=x+1
Loop
response.writex
%></body></html>
parainterromperoLoop,usa-seocomandoExitDo
For...Next
OcomandoFor...Nextexecutaumadeterminadarotinaatéqueocontador(umavariável)
atinjaovalordeterminado.Observeoexemplo:
<html><body>
<%
Fori=1to50
response.writei
next
%></body></html>
observequenãoénecessárionenhumarotinadeincrementaçãodevaloresemi.A
cadaciclo,ovalordeiéacrescidodeumaunidade,automaticamente.
ApostilaASP 26de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
parainterromperoLoop,usa-seocomandoExitFor
While...Wend
OcomandoWhile...Wendexecutaumadeterminadarotinaatéqueacondiçãoimposta
sejaalcançada.Observeoexemplodado:
<html><body>
<%
q="SELECT*FROMcadastrowherecidade='SãoPaulo'"
connstring="DBQ=c:\teste.mdb;Driver={MicrosoftAccessDriver(*.mdb)}"
SetConexao=Server.CreateObject("ADODB.Connection")
Conexao.Openconnstring,"",""
Settabela=Conexao.Execute(q)
Whilenottabela.EOF
response.writetabela("nome").value
wend
%></body></html>
RotinasdeLoop
Loopssãorotinasquedevemserrepetidasatéqueumadeterminadacondiçãoseja
satisfeita.Existem3comandosquepermitemtalsituação:
Abaixoseguemascaracterísticaseexemplosdecadacomando.
Do...Loop
OcomandoDo...Loopexecutaumadeterminadarotinaatéqueacondiçãosetorne
verdadeira.Observeoexemploabaixo:
<html><body>
<%
x=0
DoUntilx=10
x=x+1
Loop
response.writex
%></body></html>
parainterromperoLoop,usa-seocomandoExitDo
For...Next
OcomandoFor...Nextexecutaumadeterminadarotinaatéqueocontador(umavariável)
atinjaovalordeterminado.Observeoexemplo:
<html><body>
<%
Fori=1to50
ApostilaASP 27de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
response.writei
next
%></body></html>
observequenãoénecessárionenhumarotinadeincrementaçãodevaloresemi.A
cadaciclo,ovalordeiéacrescidodeumaunidade,automaticamente.
parainterromperoLoop,usa-seocomandoExitFor
While...Wend
OcomandoWhile...Wendexecutaumadeterminadarotinaatéqueacondiçãoimposta
sejaalcançada.Observeoexemplodado:
<html><body>
<%
q="SELECT*FROMcadastrowherecidade='SãoPaulo'"
connstring="DBQ=c:\teste.mdb;Driver={MicrosoftAccessDriver(*.mdb)}"
SetConexao=Server.CreateObject("ADODB.Connection")
Conexao.Openconnstring,"",""
Settabela=Conexao.Execute(q)
Whilenottabela.EOF
response.writetabela("nome").value
wend
%></body></html>
TiposdeDados
OVBScriptcontémapenasumtipodevariável,denominadoVariant.Otipovariantpode
armazenarqualquertipodedado,edeacordocomotipodedadosqueéarmazenado,é
possívelclassifica-lodeacordocomossubtiposdedados,abaixorelacionados:
Subtipo Descrição
Empty Variávelquecontém0paravaloresnuméricose""(string
vazia)parastrings.
Null Variávelquenãocontémdadoalgum.
Boolean ContémTrueouFalse
Byte Númerosinteirosentre0e255
Integer Númerosinteirosnointervalode-32,768a32,767.
Long Númerosinteirosnointervalode-2,147,483,648a2,147,483,647.
Single
Númeroscompontoflutuantedeprecisãosimplesnafaixade-
3.402823E38a-1.401298E-45paranúmerosnegativose
1.401298E-45a3.402823E38paranúmerospositivos.
Double
Númeroscompontoflutuantededuplaprecisãonafaixade-
1.79769313486232E308a-4.94065645841247E-324para
númerosnegativose4.94065645841247E-324a
1.79769313486232E308paranúmerospositivos.
Date DadosnoformatodeData(dataetempo)nafaixade1de
ApostilaASP 28de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
(Time) janeirode100a31dedezembrode999.(January1,100a
December31,9999).
String Contémdadosnoformatodestring,quepodemteraté
aproximadamente2bilhõesdecaracteresdetamanho.
PS:épossívelaconversãodedadosdeumtipoparaoutro,masparaisso,osdados
devemsercompatíveiscomosubtipodesejado,ouseja,aString"23/5/99"podeser
convertidaparaosubtipoDate,evice-versa.MasaString"ASPBRASIL"nãopode.
Éimportanteaconversãodetiposdedadosumavezqueomodocomoosdadosserão
manipuladosdependemdoseusubtipo.
ConvertendoDados
VerificandoeConvertendoTiposdeDadosAlinguagemVBScriptcontémalgumasfunçõesdeverificaçãoeconversãodetiposdedadosimportantesparaamelhor
manipulaçãodosdados.
Asfunçõesdeverificaçãosãoimportantesnahoradedetectarseosdadoscontidos
numavariávelsãocompatíveiscomosubtipoparaoqualsedesejaconverterestes
dados.
Asfunçõesdeconversãofazemaconversãodedadosdeumsubtipoparaoutro,mas
paraisso,énecessárioqueessesdadossejamcompatíveiscomosubtipoquesedeseja
obter.
FunçõesdeVerificação
IsArray-IsDate-IsEmpty-IsNull-IsNumeric
FunçõesdeConversão
CBool-CByte-CDate-CDbl-CInt-CLng-CStr-CSng
IsArray-retornaTruecasoavariávelsejaumarray,casocontrário,retornaFalse.
sintaxe:IsArray(nomedavariavel)
<%
Dimaspbrasil
DimArraybrasil(5)
response.writeIsArray(aspbrasil)'retornafalse
response.writeIsArray(Arraybrasil)'retornatrue
%>
IsDate-retornaTruecasoovalordavariávelpossaserconvertidoemdata,caso
contrário,retornaFalse.
sintaxe:IsDate(nomedavariavel)
<%
aspbrasil="23/5/99"
aspbrasil2="ASPBRASIL"
ApostilaASP 29de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
response.writeIsDate(aspbrasil)'retornatrue
response.writeIsDate(aspbrasil2)'retornafalse
%>
IsEmpty-retornaTruecasoavariávelcontenhaovalor0ou"",casocontrário,retorna
False.
sintaxe:IsEmpty(nomedavariavel)
<%
aspbrasil=""
aspbrasil2=0
aspbrasil3="ASPBRASIL"
response.writeIsEmpty(aspbrasil)'retornatrue
response.writeIsEmpty(aspbrasil2)'retornatrue
response.writeIsEmpty(aspbrasil3)'retornafalse
%>
IsNull-retornaTruecasoavariávelnãocontenhadadosválidos.
sintaxe:IsNull(nomedavariavel)
<%
aspbrasil="23/5/99"
response.writeIsNull(aspbrasil)'retornafalse
%>
IsNumeric-retornaTruecasoovalordavariávelpossaserconvertidoparaalgumtipode
dadosnuméricos.
*Aconversãodetipodedadosnuméricosentresi,ouseja,deumnúmeroDoubleparao
formatoSngpodeacarretaraperdadedados,oumesmo,podemserimcompatíveis,uma
vezqueexistemfaixasdeatuaçãoparacadatipodedado.
sintaxe:IsNumeric(nomedavariavel)
<%
aspbrasil="23"
aspbrasil2=56
response.writeIsNumeric(aspbrasil)'retornatrue
response.writeIsNumeric(aspbrasil2)'retornatrue
%>
CBool-retornaTrueouFalse(0ou1),deacordocomaexpressãoanalisadaoucomo
valordavariável.
sintaxe:CBool(nomedavariavelouexpressão)
<%
aspbrasil=5
aspbrasil2=5
aspbrasil3=0
ApostilaASP 30de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
response.writeCBool(aspbrasil=aspbrasil2)'retornatrue
response.writeCBoll(aspbrasil3)'retornafalse
%>
CByte-converteaexpressãodadaemumdadodosubtipoByte.
sintaxe:CByte(nomedavariavelouexpressão)
<%
aspbrasil="23"
aspbrasil2=34.67
response.writeIsArray(aspbrasil)'retorna23
response.writeIsArray(aspbrasil2)'retorna35,poisháumarredondamento
%>
CDate-converteaexpressãodadaemumdadodosubtipoDate.
sintaxe:CDate(nomedavariavel)
<%
aspbrasil="23/5/99"
response.writeCDate(aspbrasil)'convertendostringsdedataetempoparaosubtipo
Date,épossívelfazeroperaçõesmatemáticascomessasdatas,somandodias,meses,
segundos,anos...
%>
CDbl-converteaexpressãodadaemumdadodosubtipoDouble.
sintaxe:CDbl(nomedavariavelouexpressão)
<%
aspbrasil2=34.6767786543E56
response.writeCDbl(aspbrasil2)
%>
CInt-converteaexpressãodadaemumdadodosubtipoInteger.Adiferençaparao
subtipoByteéafaixadeabrangência.
sintaxe:CInt(nomedavariavelouexpressão)
<%
aspbrasil="23"
aspbrasil2=34.67
response.writeCIntaspbrasil)'retorna23
response.writeCInt(aspbrasil2)'retorna35,poisháumarredondamento
%>
CLng-converteaexpressãodadaemumdadodosubtipoLong.Adiferençaparao
subtipobyteéafaixadeabrangência.
sintaxe:CByte(nomedavariavelouexpressão)
ApostilaASP 31de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<%
aspbrasil="23"
aspbrasil2=34.6
7response.writeCLng(aspbrasil)'retorna23
response.writeCLng(aspbrasil2)'retorna35,poisháumarredondamento
%>
CSng-converteaexpressãodadaemumdadodosubtipoSingle.
sintaxe:CInt(nomedavariavelouexpressão)
<%
aspbrasil2=88734.679999
response.writeCInt(aspbrasil2)
%>
CStr-converteaexpressãodadaemumdadodosubtipoString.Qualqueroutrotipode
dado,doslistadosacima,podeserconvertidoemString.
sintaxe:CStr(nomedavariavelouexpressão)
<%
aspbrasil2=34.67
response.writeCStr(aspbrasil2)'retorna"23"
%>
ManipulandoNúmeros
ManipulandoDatas
OVBScriptcontémváriasfunçõesutilizadasparaamanipulaçãodedadosnuméricos.
Abaixoumalistadasprincipaisfunções.Osoperadoresbásicos(+,-,*,/,^)estãodescritos
notutorialsobreOperadoresBásicosdoVBScript.
Abs-Atn-Cos-Exp-Fix-Int-Log-Sin-Sqr-Tan
Abs-retornaomódulodovalordeentrada
sintaxe:Abs(número)
<%
aspbrasil=-78
response.writeAbs(aspbrasil)
%>
Atn-retornaovalordoarcotangentedovalorentrado(respostaemradianos)
sintaxe:Atn(número)
<%
aspbrasil=1
response.writeAtn(aspbrasil)
%>
ApostilaASP 32de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
Cos-retornaovalordocossenodoanguloentrado(entraranguloemradianos)
sintaxe:Cos(angulo)
<%
aspbrasil=3,1416
response.writeCos(aspbrasil)
%>
Exp-retornaovalordee(euler)elevedoaovalordeentrada(e^x)
sintaxe:Exp(numero)
<%
aspbrasil=3
response.writeExp(aspbrasil)
%>
Fix-retornaaparteinteiradeumnúmero.
sintaxe:Fix(número)
<%
aspbrasil=78.778
response.writeFix(aspbrasil)
%>
Int-retornaaparteinteiradeumnúmero.Casoonúmerosejanegativo,éretornadoo
valorimediatamentemenor.
sintaxe:Int(número)
<%
aspbrasil=-78,389
response.writeInt(aspbrasil)
%>
Log-retornaovalordoLogdonúmerodeentradanabasee.
sintaxe:Log(número)
<%
aspbrasil=4
response.writeLog(aspbrasil)
%>
Sin-retornaovalordosenodeumanguloentradoemradianos.
sintaxe:Sin(angulo)
<%
aspbrasil=3,1416
ApostilaASP 33de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
response.writeSin(aspbrasil)
%>
Sqr-retornaovalordaraizquadradadonúmerodeentrada.(valordevesermaiorou
igualazero)
sintaxe:Sqr(numero)
<%
aspbrasil=4
response.writeSqr(aspbrasil)i
%>
Tan-retornaovalordatangentedoangulopedido(entraranguloemradianos)
sintaxe:Tan(angulo)
<%
aspbrasil=2
response.writeTan(aspbrasil)
%>
ManipulandoDatas
OVBScriptpossibilitaaobtençãoemanipulaçãodedadosnoformatoDataeTempo
facilmente.Abaixo,umalistadasprincipaisfunçõesrelacionadasaessetópico.
CDate-Date-DateSerial-Day-Hour-IsDate-Minute-Month-Now-Second-Time-
TimeSerial-TimeValue-Weekday-Year
CDate-converteaexpressãodadaemumdadodosubtipoDate.
sintaxe:CDate(nomedavariavel)
<%
aspbrasil="23/5/99"
response.writeCDate(aspbrasil)'convertendostringsdedataetempoparaosubtipo
Date,épossívelfazeroperaçõesmatemáticascomessasdatas,somandodias,meses,
segundos,anos...
%>
Date-retornaadatadosistema(adataqueconstanorelógiodoservidor).
sintaxe:Date
<%
response.writeDate
%>
DateSerial-retornaumvalordosubtipodataparaumdeterminadovalordeano,mese
dia,ouseja,entrandoesses3valoresrespectivamente,afunçãoDateSerialretornaa
datarespectivanoformatoDate.
ApostilaASP 34de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
sintaxe:DateSerial(year,month,day)
<%
response.writeDateSerial(99,12,23)
%>
Day-retornaumnúmeroentre1e31,representandoodiadeumadeterminadadata.
sintaxe:Day(data)
<%
response.writeDay(now)
%>
Hour-retornaumnúmeroentre0e23representandoahoradeumadeterminada
expressãodetempo.
sintaxe:Date
<%
response.writeDate
%>
IsDate-retornaTruecasoovalordavariávelpossaserconvertidoemdata,caso
contrário,retornaFalse.
sintaxe:IsDate(nomedavariavel)
<%
aspbrasil="23/5/99"
aspbrasil2="ASPBRASIL"
response.writeIsDate(aspbrasil)'retornatrue
response.writeIsDate(aspbrasil2)'retornafalse
%>
Minute-retornaumnúmeroentre0e59representandoosminutosdeumadeterminada
expressãodetempo.
sintaxe:Minute(tempo)
<%
response.writeMinute(now)
%>
Month-retornaumnúmeroentre1e12representandoomêsdeumadeterminadadata.sintaxe:Month(data)
<%
response.writeMonth(now)
%>
ApostilaASP 35de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
Now-retornaadataeohoráriodorelógiodoservidor.
sintaxe:Now
<%
response.writeNow
%>
Second-retornaumnúmeroentre0e59representandoosminutosdosistema(ominuto
queconstanorelógiodoservidor).
sintaxe:Second(tempo)
<%
response.writeSecond(now)
%>
Time-retornaohoráriodorelógiodosistema.
sintaxe:Time
<%
response.writeTime
%>
TimeSerial-retornaumaexpressãodotipoDatecontendootempoparaumadadahora,
minutoesegundo.
sintaxe:TimeSerial(hora,minuto,segundo)
<%
response.writeTimeSerial(22,11,33)
%>
Weekday-retornaodiadasemanadeumadeterminadadata.
sintaxe:Weekday(date)
<%
response.writeweekday(now)
%>
Year-retornaoanodeumadeterminadadata.
sintaxe:Year(data)
<%
response.writeYear(now)
%>
ManipulandoStrings
ApostilaASP 36de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
OVBScriptdisponibilizaalgumasfunçõesutilizadasnamanipulaçãodeStrings.Abaixo,
asprincipaisfunções,queentreoutrascoisas,permitemsaberonúmerodecaracteresde
umastring,encontrardeterminadocaracterdentrodeumastring,compararduasstrings,
etc.
Asc-Chr-CStr-InStr-Lcase-Left-Len-LTrim-Mid-Right-RTrim-Trim-UCase
Asc-Retornaocaracter(pelatabelaANSI)correspondenteàprimeiraletradastringde
entrada.
sintaxe:Asc(string)
<%
aspbrasil="aspbrasil"
response.writeAsc(aspbrasil)
%>
Chr-Retornaocaractercorrespondenteaumdeterminadocodigo(numerico)databela
ANSI.
sintaxe:Chr(codigo)
<%
response.writeChr(34)
%>
CStr-ConverteumaexpressãoparaoformatoString.Casoumavariávelsejaum
número,elaseráconvertidanumastringquerepresentetalnúmero.Seforumadata,
essadataseráconvertidanumastringquerepresentetaldata.
sintaxe:CStr(expressão)
<%
aspbrasil=458
response.writeCStr(aspbrasil)'retornaastring,sequenciadecaracteres"458",enãoo
número458.
%>
InStr-Retornaaposiçãodaprimeiraocorrênciadeumastringdentrodaoutra.Épossível
delimitarapartirdequalcaracterseráfeitatalprocura.
sintaxe:InStr(posicaoinicial,string,stringdecomparação)
<%
aspbrasil="aspbrasil,sitesobreASPemPortuguês."
response.writeInstr(4,aspbrasil,"ASP")'4éaposiçãoapartirdaqualaprocuraseráfeita.
%>
LCase-Convertetodososcaracteresdeumastringparaminúsculas.
sintaxe:LCase(string)
ApostilaASP 37de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<%
aspbrasil="ASPBRASIL"
response.writeLCase(aspbrasil)'deveretornarASPBRASIL
%>
Left-Retornaumdeterminadonúmerodecaracteresapartirdoladoesquerdodastring.
sintaxe:Left(string,numerodecaracteres)
<%
aspbrasil="aspbrasil,sitesobreASP."
response.writeLeft(aspbrasil,4)'deveretornar"aspb"
%>
Len-Retornaonúmerodecaracteresnumastring(contandoespaçosembranco),ou,no
casodevariáveisnuméricas,ounoformatoDate,retornaaquantidadedebytes
necessáriosparaarmazenaraquelaexpressão.
sintaxe:Asc(string/expressão)
<%
aspbrasil="aspbrasil"
response.writeLen(aspbrasil)'retorna9
%>
LTrim-Retornaacópiadastringdeentrada,masosespaçosnocomeçodolado
esquerdo.
sintaxe:LTrim(string)
<%
aspbrasil="<--Trim->"
response.writeAsc(aspbrasil)'retorna"<--Trim->"
%>
Mid-Funçãousadapara"cortar"umastring.Delimita-seaposiçãoinicial,astringea
quantidadedecaracteresapartirdaposiçãoinicialquedevemser"capturados".
sintaxe:Mid(string,posicaoinicial,tamanho)
<%
aspbrasil="aspbrasil"
response.writeMid(aspbrasil,1,4)'deveretornar"aspb"
%>
Right-Retornaumdeterminadonúmerodecaracteresapartirdoladodireitodastring.
sintaxe:Right(string,numerodecaracteres)
<%
aspbrasil="aspbrasil"
ApostilaASP 38de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
response.writeRight(aspbrasil,3)'deveretornar"sil"
%>
RTrim-Retornaumacópiadastringdeentrada,massemosespaçosnofinaldastring.
sintaxe:RTrim(string)
<%
aspbrasil="aspbrasil"
response.writeAsc(aspbrasil)'deveretornar"aspbrasil"
%>
Trim-Retornaumacópiadastringdeentrada,massemosespaçosnoinícioenofinal
dastring.
sintaxe:Trim(string)
<%
aspbrasil="aspbrasil"
response.writeAsc(aspbrasil)'deveretornar"aspbrasil"
%>
UCase-ConvertetodaastringparaMAIÚSCULAS.
sintaxe:UCase(string)
<%
aspbrasil="aspbrasil"
response.writeAsc(aspbrasil)'deveretornar"ASPBRASIL"
%>
Operadores
Existemalgunscaracteresefunçõesquepermitemaligaçãodeumaoumaisexpressões,
deváriosmodosdiferentes.TaisfunçõesecaracteressãochamadosOperadores.
Abaixo,umalistadosmaisimportantes:
+-*/\and&Eqv^ImpModNotOrXor
+(mais)-Usadoparasomardoisvaloresnuméricos
sintaxe:resultado=expressão1+expressão2
<%
aspbrasil=5+6
response.write(aspbrasil)
%>
-(menos)-Fazasubtraçãoentredoisnúmerosouindicavalornegativonumaexpressão
numérica.
sintaxe:resultado=número1-número2
ApostilaASP 39de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<%
response.write(12-6)
%>
*(multiplicar)-Usadoparamultiplicardoisvaloresnuméricos
sintaxe:resultado=expressão1*expressão2
<%
aspbrasil=5*6
response.write(aspbrasil)
%>
/(dividir)-Usadoparadividirumvalorporoutro.
sintaxe:resultado=numerador/denominador
<%
aspbrasil=31/7
response.write(aspbrasil)
%>
\-Usadoparadividirumvalorporoutro,eretornarumvalorinteiro.
sintaxe:resultado=numerador/denominador
<%
aspbrasil=31/7
response.write(aspbrasil)
%>
and-Usadopara"validar"umconjuntodeduasexpressõeslógicas.Se,esomenteseas
duasexpressõestiveremcomoresuladoTRUE,éretornadoTRUE.Casocontrário,é
retornadoFALSE.
sintaxe:resultado=expressão1andexpressão2
<%
aspbrasil=(7>4)and(4<8)
response.write(aspbrasil)
%>
&-Usadoparasomarduascadeiasdecaracteres(strings).
sintaxe:resultado=string1&string2
<%
aspbrasil="ASPBRASIL."&"SitesobreASPnalinguaportuguesa."
response.write(aspbrasil)
%>
Eqv-Usadopara"validar"umconjuntodeexpressõeslógicasdeacordocomaseguinte
tabela:
Expressão1 Expressão2 Resultado
ApostilaASP 40de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
true true true
true false false
false true false
false false true
sintaxe:resultado=expressão1Eqvexpressão2
<%
aspbrasil=(6<4)Eqv(8>9)
response.write(aspbrasil)
%>
^-Usadopara"elevar"umnúmeroaoutro.
sintaxe:resultado=número1^número2
<%
aspbrasil=6^2
response.write(aspbrasil)
%>
Imp-Usadopara"validar"umconjuntodeexpressõeslógicas(ImplicaçãoLógica)de
acordocomatabela:
Expressão1 Expressão2 Resultado
true true true
true false false
true null null
false true true
false false true
false null true
null true true
null false null
null null null
sintaxe:resultado=expressão1Impexpressão2
<%
aspbrasil=(9<8)Imp(7>4)
response.write(aspbrasil)
%>
Mod-Usadoparadividirdoisnúmeroseretornarapenasoresto.
sintaxe:resultado=número1Modnúmero2
<%
aspbrasil=7Mod3
ApostilaASP 41de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
response.write(aspbrasil)
%>
Not-Usadoparainverter,ounegaroresultadodeumacomparação,comoseguena
tabela:
Expressão
1 Resultado
true false
false true
null null
sintaxe:resultado=Notexpressão
<%
aspbrasil=Not(7>6)
response.write(aspbrasil)
%>
Or-Usadopara"validar"umconjuntodeexpressõeslógicasdeacordocomatabela:
Expressão1 Expressão2 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=expressão1Impexpressão2
<%
aspbrasil=(9<8)or(7>4)
response.write(aspbrasil)
%>
Xor-Usadopara"validar"umconjuntodeexpressõeslógicasdeacordocomaseguinte
tabela:
Expressão1 Expressão2 Resultado
true true false
true false true
false true true
false false false
sintaxe:resultado=expressão1Xorexpressão2
<%
aspbrasil=(6<4)Xor(8>9)
ApostilaASP 42de43
ApostilaseTutotriais:http://Apostilas.Fok.com.brresponse.write(aspbrasil)
%>
DemaisFunçõesdoVBScript
Abaixo,algumasimportantesfunçõesdoVBScriptquenãoseencaixaramnorestantedos
tópicos.
LBound-Rnd/Randomize-Sgn-UBound-VarType
LBound-Retornaomenoríndicedeumadeterminadadimensãonumarray.
sintaxe:resultado=LBound(array,dimensão)'adimensãoéopcional.
<%
dimaspbrasil(8)
aspbrasil(2)="Tigre"
aspbrasil(4)="Onça"
response.writeLBound(aspbrasil)'deveretornar2
%>
Rnd-Retornaumnúmerorandômicoentre0e1.
sintaxe:
Randomize
Rnd(numero)
<%
Randomize
aspbrasil=Rnd
response.writeaspbrasil
%>
Sgn-Retornaanaturezadeumdeterminadonúmero(maior,menorouigualazero),
comovistoabaixo:
maiorquezero(numero>0)'retorna1
igualazero(numero=0)'retorna0
menorquezero(numero<0)'retorna-1
sintaxe:resultado=Sgn(numero)
<%
aspbrasil=Sgn(-67)
response.writeaspbrasil
%>
UBound-Retornaomaioríndicedeumadeterminadadimensãonumarray.
sintaxe:resultado=UBound(array,dimensão)'adimensãoéopcional.
ApostilaASP 43de43
ApostilaseTutotriais:http://Apostilas.Fok.com.br
<%
aspbrasil(2)="Tigre"
aspbrasil(4)="Onça"
response.writeUBound(aspbrasil)'deveretornar4
%>
Vartype-Retornaumvalor,deacordocomatabelaabaixo,indicandoosubtipoda
variável.
sintaxe:resultado=VarType(variável)
vel)
0 vazia(nãoinicializada)
1 null(nula)
2 inteiro(int)
3 inteirolongo(lng)
4 pontoflutuantedeprecisãosimples(Sng)
5 pontoflutuantededuplaprecisão(Dbl)
6 moeda(currency)
7 data(date)
8 String
9 objetoOLE
<%
aspbrasil="aspbrasil"
aspbrasil2=34
response.writevartype(aspbrasil)'deveretornar8
response.writevartype(aspbrasil2)'deveretornar3
%>

Outros materiais