Baixe o app para aproveitar ainda mais
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 %>
Compartilhar