Inclui VBScript

ASP

GUIA DE CONSULTA RÁPIDA

Rubens Prates

novatec

www.novateceditora.com.br

Guia de Consulta Rápida

ASP
Rubens Prates

Novatec Editora
www.novateceditora.com.br

Guia de Consulta Rápida ASP de Rubens Prates

Copyright@2000 da Novatec Editora Ltda.

Todos os direitos reservados. É proibida a reprodução dessa obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, dos autores e da Editora.

Revisão de texto: Sonia Maike

ISBN: 85-85184-??-?

Novatec Editora Ltda. Rua Cons. Moreira de Barros 1084 Conj 01 02018-012 São Paulo - SP Brasil Fone: (0xx11) 6959-6529 Fax: (0xx11) 6950-8869 E-mail: novatec@novateceditora.com.br Site: www.novateceditora.com.br

2

Sumário Conceitos Básicos ............................................................ 5 Introdução .................................................................... 5 Definindo a Linguagem de Script ............................. 11 Objetos e Componentes ........................................... 12 Diretivas de Processamento ..................................... 15 Diretivas SSI (Server-Side Include) ........................... 16 Arquivo Global.asa .................................................... 17 Objetos Intrínsecos do ASP ............................................ 20 Objeto Application ...................................................... 20 Objeto ASPError (ASP 3.0) ........................................ 24 Objeto ObjectContext ................................................. 26 Objeto Request .......................................................... 27 Objeto Response ...................................................... 33 Objeto Server ............................................................. 42 Objeto Session .......................................................... 45 Componentes do IIS ....................................................... 50 ADO ............................................................................ 50 Ad Rotator .................................................................. 51 Browser Capabilities ................................................. 54 Content Linking .......................................................... 56 Content Rotator .......................................................... 59 Counters .................................................................... 61 Logging Utility (ASP 3.0) ............................................ 62 MyInfo ......................................................................... 66 Page Counter ............................................................. 67 Permission Checker ................................................. 68 Tools .......................................................................... 69 Objetos de Scripting Run-Time ...................................... 70 Objeto Dictionary ....................................................... 70 Objeto FileSystemObject .......................................... 72 Objeto Drive ............................................................... 77 Objeto Folder ............................................................ 79 Objeto File .................................................................. 83 Objeto TextStream .................................................... 86 Objetos do VBScript ........................................................ 89 Objeto RegExp .......................................................... 89 Objeto Err .................................................................. 93 VBScript ........................................................................... 95 Instruções do VBScript .............................................. 95 Funções do VBScript ............................................... 102 Operadores .............................................................. 119 Subtipos de Dados .................................................. 120 Apêndice ........................................................................ 121 Códigos da Propriedade Status ............................. 121 Itens da Coleção ServerVariables ........................... 122 Onde obter mais informações ................................ 124 Notação Sintática Utilizada ...................................... 125 Novatec na Internet .................................................. 125 Índice ............................................................................. 126

3

4

Conceitos Básicos

Introdução

O que é ASP
ASP (Active Server Pages) é uma tecnologia criada pela Microsoft, que combina HTML, comandos script e componentes ActiveX, para criar páginas web com conteúdo dinâmico.

Scripts executados no servidor
Os scripts em páginas ASP são executados no servidor web ("server-side"), ao contrário de scripts client-side,executados no browser do cliente.

Linguagens de scripting
Em ASP podem ser utilizadas qualquer linguagem que suporte ActiveX scripting, tais como: VBScript, JScript, PerlScript, Rexx e Python. As linguagens VBScript e JScript (similar a JavaScript) são instalados automaticamente pelo servidor web, sendo VBScript a linguagem default. Os exemplos neste guia estão em VBScript.

Independência de browsers
A saída gerada pelo ASP é somente HTML padrão, o que significa que pode ser interpretada igualmente pelos browsers Microsoft Explorer, Netscape Navigator, ou qualquer outro browser.

Plataforma para ASP
Originalmente ASP somente poderia ser utilizada com servidores web da Microsoft (PWS - Personal Web Server e IIS - Internet Information Server) para a plataforma Windows. Atualmente existem ferramentas de terceiros que oferecem a mesma funcionalidade ASP para outros servidores web, tais como o Netscape Enterprise, disponível para vários sistemas operacionais, como o Unix. As mais conhecidas são o Chili!Soft (www.chilisoft.com) e o Instant ASP (www.halcyon.com).

Ferramentas de Desenvolvimento
Embora as páginas ASP possam ser criadas utilizando editores de texto, como o Notepad, ou mais especializados como o FrontPage, existem diversas ferramentas para desenvolvimento de aplicações web, tais como o Visual InterDev, um dos componentes do Visual Studio da Microsoft. Outras ferramentas bastante utilizadas são: • Drumbeat (www.drumbeat.com) • Cold Fusion (www.allaire.com) Para uma lista das ferramentas disponíveis veja a página www.15seconds.com/tool/default.htm.

Depuração de scripts ASP
A maneira mais fácil de depurar scripts é utilizar o Microsoft Script Debugger. Pode ser instalado como parte do NT Option Pack ou através de download em http://msdn.microsoft.com/scripting/ debugger/.

5

Conceitos Básicos

Introdução

Página ASP
Uma página ASP é um arquivo texto com a extensão .asp que contém qualquer combinação de: • texto • tags HTML • scripts Um exemplo simples de página ASP:

Veja na tela abaixo o resultado da execução da página ASP acima:

Os usuários não podem ver os comandos de script que criaram a página que está sendo visualizada. Verificando o código fonte da página exibida (opção View > Source do Internet Explorer ou View > Page Source do Netscape), percebemos que no lugar do código script está o resultado do script, conforme mostrado na tela abaixo:

6

Conceitos Básicos

Introdução

Delimitadores de scripts server-side
Nas páginas .asp, os scripts são diferenciados de textos e HTML por delimitadores <% e %> ou pelo elemento <SCRIPT RUNAT="SERVER"> ... </SCRIPT>. Dentro dos delimitadores, pode ser incluído qualquer comando da linguagem de scripting utilizada. O exemplo abaixo mostra uma página HTML que contém um comando script delimitado por <% e %>:
<HTML> <BODY> D t eh r : aa oa <%Response.WriteNow()%> </BODY> </HTML>

A função Now() retorna a data e hora correntes. Quando o servidor processa esta página, ele substitui <%= Now() %> pela data e hora correntes e retorna a página para o browser, como por exemplo:
Dataehora: 03/25/20008:47:00PM

O comando script do exemplo acima também poderia ser delimitado com elemento <SCRIPT RUNAT=SERVER>, como mostrado abaixo:
<HTML> <BODY> D t eh r : aa oa <SCRIPT RUNAT="SERVER"> Rsos.rt Nw) epneWie o( </SCRIPT> </BODY> </HTML>

Scripting Server-side x Client-side
Uma página Asp pode conter ambos os tipos de scripts: server-side e client-side. O script server-side deve ter a cláusula RUNAT="SERVER". O script client-side (com RUNAT="CLIENT" ou com o atributo RUNAT omitido) é ignorado pelo interpretador ASP e passado para o browser cliente como texto normal. Veja abaixo um exemplo de como isso funciona:
<HTML> <BODY> Textoe<B>HTML</B>enviadosdiretamenteparaobrowsercliente. <SCRIPT RUNAT="SERVER"> REMCódigoscriptserver-sideexecutadopeloASPnoservidor. </SCRIPT> <SCRIPT> <!R MC d g s r p c i n - i ee e u a on b o s rc i n e E óio cit letsd xctd o rwe let. -> </SCRIPT> </BODY> </HTML>

7

Conceitos Básicos

Introdução

Enviando conteúdo para o browser
Para enviar conteúdo para o browser dentro dos delimitadores de scripting utilize o método Write do objeto Response. Por exemplo, o seguinte comando envia uma mensagem diferente para o usuário dependendo se ele visitou a página antes:
<% I bnrme Te f lPiVz hn Response.Write“<H3ALIGN=CENTER>Bem-vindoàNovatec</H3>” Es le Response.Write“<H3ALIGN=CENTER>Sejanovamentebem-vindoà Novatec</H3>” E dI n f %>

Qualquer conteúdo que não estiver dentro de delimitadores de scripting são enviados diretamente para o browser. Por exemplo, o seguinte script produz a mesma saída que o script anterior:
<H3 ALIGN=CENTER> <%IfblnPrimVezThen%> Bem-vindoàNovatec <% Else %> Sejanovamentebem-vindoàNovatec <% End If %> </H3>

Intercalar comandos script e HTML quando você necessita apenas retornar a saída uma vez ou quanto é mais conveniente adicionar comandos ao texto HTML existente. Use Response.Write quando você não deseja dividir um comando com delimitadores quando você deseja construir o string que será retornado para o browser. Por exemplo, você pode construir um string de texto que constrói uma linha da tabela com valores enviados por um formulário HTML:
Response.Write“<TR><TD>”&Request.Form(“FirstName”)_ &“</TD><TD>”&Request.Form(“LastName”)&“</TD></TR>”

Incluindo arquivos de scripts
Também é possível incluir na página ASP arquivos de script separados que contém código de scripting, tornando mais fácil escrever funções que devem estar disponíveis para muitas páginas. Desta forma, as alterações no código de scripting serão automaticamente refletidas em todas as páginas na próxima vez que elas forem executadas. Para incluir um arquivo de script separado, utilize o atributo SRC do elemento <SCRIPT> para especificar um path virtual, relativo ou físico e o nome do arquivo:
<SCRIPTRUNAT="SERVER"SRC="/scripts/valida.inc"></SCRIPT>

O arquivo separado deve conter somente código script válido, não pode conter conteúdo de página, tais como texto ou HTML.

8

Conceitos Básicos

Introdução

Arquitetura do ASP
A tecnologia ASP é encapsulada em uma simples DLL chamada ASP.DLL, que é instalada por default no diretório Winnt\System32\inetsrv. Quando um servidor web recebe uma solicitação de um página web, o servidor verifica a extensão do arquivo da página solicitada. Se a extensão for .asp o servidor passa esse arquivo para a dll ASP.DLL para ser interpretado. O resultado é devolvido para para o servidor web, que por sua vez envia para browser que solicitou a página. Até o ASP 2.0 o processamento de arquivos .asp requeria processamento extra. A partir do ASP 3.0 pode-se usar a extensão .asp para todas as páginas, tendo ou não scripts embutidos, sem prejudicar o desempenho.

inserir ILUSTRAÇÃO

9

Conceitos Básicos

Introdução

Diretórios no servidor IIS
Na instalação do servidor IIS é criado o subdiretório \Inetpub no computador do servidor IIS, onde normalmente são colocados os arquivos de páginas web. Esse subdiretório, por sua vez, contém subdiretórios, entre eles o \wwwroot, que é o topo da árvore para os web sites, e é o diretório web default. \Inetpub \wwwroot Essa estrutura é conhecida como estrutura de diretórios físicos, que nós visualizamos no Windows Explorer. Por exemplo, a pasta C:\My Documents é um diretório físico. Existe contudo uma segunda estrutura de diretórios no computador do servidor web, que reflete a estrutura do site. Consiste de um hierarquia de diretórios virtuais. Através do Managment Console do IIS podemos criar esses diretórios, e definir o relacionamento entre os diretórios virtuais e os diretórios físicos. Nós podemos criar aplicações virtuais em qualquer subdiretório do site. Um diretório virtual é um diretório que não precisa localizar-se em seu diretório home; na verdade, ele pode residir em outro disco ou computador, mas pode ser acessado por um browser cliente através da Internet como se estivesse localizado em seu diretório home. O diretório home por padrão é X:\InetPub\wwwroot, onde X é o disco rígido do sistema operacional em uma instalação padrão. O diretório home é o diretório raiz do seu site. Para cada site em um computador sob o IIS, existe um diretório raiz no servidor, que é usualmente C:\InetPub\WWWRoot. Diretórios virtuais são diretórios mapeados na árvore de diretórios do site; no entanto, eles fisicamente ficam fora dessa árvore. A localização física pode ser até mesmo um outro servidor.

Aplicação
Uma página ASP usualmente existe como parte de uma aplicação ASP. Uma aplicação ASP é realmente todas as páginas e conteúdo associado de um diretório real ou virtual, tendo as páginas extensão .asp ou não. Uma aplicação ASP pode ser criada pela criação de um site real ou virtual dentro do servidor web. Uma aplicação é a soma de todos os arquivos que podem ser acessados através de um diretório virtual e seus subdiretórios. Esse contexto de aplicação é o mesmo para todos os clientes da aplicação. Por exemplo, um cliente da Tailandia que solicita páginas do diretório virtual /SearchApp está acessando a mesma aplicação que um segundo cliente da Suécia que estiver acessando páginas do mesmo diretório virtual, independente de qual página dentro do diretório virtual cada um estiver solicitando. Você pode compartilhar informações entre todos os clientes de uma aplicação através do objeto Application.

Configuração de aplicações ASP no IIS
Antes de você criar uma aplicação ASP, você deve criar um diretório virtual. Antes de você criar uma aplicação ASP, você deve criar um diretório virtual.Para criar um diretório virtual siga os seguintes passos: 101. Clique com o botão direito do mouse o servidor onde você deseja criar o diretório virtual.

Conceitos Básicos

Linguagem de Scripting

Definindo a Linguagem de Script
Uma aplicação ASP pode utilizar diferentes linguagens de scripting. As linguagens VBScript e JScript (similar à JavaScript) são instaladas por default. As outras linguagens devem ser obtidas e instaladas separadamente. Existem três formas de especificar a linguagem de scripting a ser utilizada: para o site inteiro, para uma página ASP e para uma função específica:

Site inteiro
Para definir a linguagem de script padrão para todas as páginas em um site, habilite a opção Default ASP Language da App Options na configuração do servidor web onde ASP estiver instalada. Se não especificada na configuração do servidor web, será assumido VBScript, por default.

Página ASP
Para definir a linguagem de script para uma única página, utilize a diretiva <%@ LANGUAGE=linguagem %>. Essa diretiva deve ocorrer apenas uma vez e deve ser a primeira linha da página. Por exemplo, para definir a linguagem JScript colocamos a seguinte instrução no início da página:
<%@ LANGUAGEM = JScript %>

Recomenda-se definir a linguagem no nível de página pois no caso do arquivo da página ser utilizada em um outro servidor web onde não pode ser garantido que a linguagem de scripting padrão seja a que você deseja.

Função
Para definir a linguagem de scripting somente para uma função específica de uma página, utilize a opção LANGUAGE da tag <SCRIPT>. Essa opção anula as definições de linguagem de scripting definidas para o site e para a página. <SCRIPT LANGUAGE=linguagem RUNAT=SERVER> ... </SCRIPT> A diretiva RUNAT=SERVER deve ser incluída para indicar que trata-se de um script server-side. Se não for especificada, será assumida que trata-se de um script client-server.

Tags <% e %>
As tags <% e %> sempre utilizam a linguagem de scripting padrão definida para o site ou a linguagem definida para a página, caso tenha sido especificada.

11

Conceitos Básicos

Objetos e Componentes

Objetos e Componentes
Diversos tipos de objetos e componentes podem ser utilizados com ASP. Embora sejam acessíveis da mesma forma, através da tecnologia COM, conceitualmente eles são divididos em grupos:

Objetos Intrínsecos do ASP
São objetos fornecidos diretamente pela DLL ASP e estão sempre disponíveis para scripts server-side, e não precisam serem criados. • Application (mais detalhes na página 20). • ASPError (mais detalhes na página 24). • ObjectContext (mais detalhes na página 26). • Request (mais detalhes na página 27). • Response (mais detalhes na página 33). • Server (mais detalhes na página 42). • Session (mais detalhes na página 45).

Componentes do IIS
Esses componentes são instalados pelo IIS, no diretório WinNT\System32\inetsrv\ do Windows. Precisam ser registrados no servidor antes de serem instanciados em suas aplicações web, caso não tenham sido instalados por default pelo IIS. • ADO (mais detalhes na página 50). • Ad Rotator (mais detalhes na página 51). • Browser Capabilities (mais detalhes na página 54). • Content Linking (mais detalhes na página 56). • Content Rotator (mais detalhes na página 59). • Counters (mais detalhes na página 61). • Logging Utility (mais detalhes na página 62). • MyInfo (mais detalhes na página 66). • Page Counter (mais detalhes na página 67). • Permission Checker (mais detalhes na página 68). • Tools (mais detalhes na página 69).

Objetos de Scripting Run-Time
Esses objetos são parte da Scripting Runtime Objects library, contidos em scrrun.dll. Eles são expostos pelo "scripting engine", independente da linguagem de scripting utilizada (VBScript, JScript, etc) e podem ser utilizados tanto do lado cliente quanto do lado servidor. • Dictionary (mais detalhes na página 70). • FileSystemObject (mais detalhes na página 72). • TextStream (mais detalhes na página 86).

12

Conceitos Básicos

Objetos e Componentes

Objetos do VBScript
Objetos fornecidos pela linguagem VBScript (vbscript.dll), e podem ser utilizados tanto do lado cliente quando do lado servidor. • RegExp (mais detalhes na página 80). • Err (mais detalhes na página 93). Outras linguagens de scripting, tais como o JScript, oferecem objetos similares aos objetos acima.

Outros Componentes
Componentes de terceiros ou criados pelo próprio usuário. Normalmente implementados como DLLs separadas. Esses componentes podem ser desenvolvidos em Visual Basic, Visual C++ ou qualquer outra linguagem compatível com a tecnologia COM, tais como Delphi, Java e PowerBuilder. Devem ser instalados e registrados no seu sistema antes de serem utilizados. Você pode obter um catálogo de componentes em www.activeserverpages.com/ components.

Instâncias de Objetos e Componentes
Objetos e componentes são criados e instanciados da mesma forma. Uma instância é uma cópia de execução de um objeto. Existem duas maneiras de criar uma instância de um componente. pelo método Server.CreateObject ou pelo elemento <OBJECT>. Um componente somente pode ser utilizado após ter sido instalado e registrado em seu sistema.

Usando o método Server.CreateObject
É a maneira mais comum para criar uma instância de um objeto. Por exemplo, para criar uma instância do componente Browser Capabilities:
<% D mo j r w e i bBosr S to j r w e =S r e . r a e b e t " S C B o s r y e ) e bBosr evrCetOjc(MW.rweTp" %>

No exemplo acima o parâmetro MSWC.BrowserType é o ProgID do componente Browser Capabilities.

13

Conceitos Básicos

Objetos e Componentes

Usando o elemento <OBJECT>
Podemos usar o elemento <OBJECT> padrão HTML para criar instâncias de um componente no servidor adicionando o parâmetro RUNAT="SERVER". Normalmente utiliza-se o PROGID em vez do ClassID numérico. <OBJECT RUNAT="Server" SCOPE=escopo ID=identificador {PROGID="progid"|CLASSID="ClassID"}> <PARAM NAME="param1" VALUE="valor1"> <PARAM NAME="param2" VALUE="valor2"> </OBJECT> Parâmetros SCOPE Descrição Especifica o escopo do objeto. Se SCOPE="PAGE" ou se for omitido, indica que o escopo é a página corrente. Caso <OBJECT> estiver no arquivo Global.asa, os escopos Session ou Application podem ser informados. Especifica o nome para a instância do objeto. Identificador do objeto. Especifica um identificador único para um objeto COM. ProgID ou ClassID devem ser especificados. Define os valores das propriedades expostas pelo objeto para uso em nossos scripts

ID PROGID CLASSID PARAM

Exemplos
<OBJECTRUNAT=ServerSCOPE=SessionID=MinhaConexao PROGID=”ADODB.Connection”> R MO j c S r p E bet cit </OBJECT> <OBJECT RUNAT=ServerSCOPE=SessionID=MinhaConexao CLASSID=”Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> R MO j c S r p E bet cit </OBJECT>

Como podemos perceber, a utilização do ProgID é mais fácil do que ClassID.

Diferença entre CreateObject e <OBJECT>
O método Server.CreateObject cria uma instância do objeto imediatamente. O elemento <OBJECT> somente cria uma instância do objeto na primeira vez que o objeto for referenciado.

Escopo das Instâncias de Objetos
Por default, todas as instâncias de objetos e componentes criados em uma página ASP tem escopo da página. Eles existem somente enquanto a página estiver sendo executada, e são destruidos automaticamente após a página corrente ter sido encerrada e os resultados terem sidos enviados ao browser cliente. Entretanto se nós colocarmos o elemento <OBJECT> no arquivo Global.asa que existe no diretório raiz da aplicação, pode ser especificado que o objeto ou componente deverá ter escopo Application ou Session. 14

Conceitos Básicos

Diretivas de Processamento

Diretivas de Processamento
As diretivas de processamento indicam ao servidor web como processar o arquivo .asp. Elas devem ser colocadas na primeira linha do script, e não podem ser incluídas em um arquivo incluído com #include. O formato destas diretivas é: <%@ diretiva=valor diretiva=valor ...%> Parâmetro diretiva valor Descrição Nome da diretiva (deve ser precedido por um espaço). Valor da diretiva (sem espaços em torno do sinal "=").

Exemplo:
<%@ LANGUAGE="JScript" CODEPAGE="1252" LCID="2057"%>

CODEPAGE
Define a página de código para interpretar o script no servidor. Ao contrário, a propriedade Session.CodePage, define a página de código para interpretação do HTML enviado ao browser. <@ CODEPAGE=página_código %>

ENABLESESSIONSTATE
Habilita (True) ou desabilita (False) o armazenamento de informações de sessão através de cookie de sessão. <%@ ENABLESESSIONSTATE=True|False%>

LANGUAGE
Define a linguagem de script default para toda a página. <%@ LANGUAGE=linguagem%>

LCID
Define um identificador de localidade para o script no servidor. O identificador é utilizado para definir a formatação de strings de dados, como datas e horas. Ao contrário, a propriedade Session.LCID, define o identificador de localidade para interpretação do HTML enviado ao browser. <%@ LCID=identificador%>

TRANSACTION
Declara a página como transacional. <%@ TRANSACTION=tipo%> Parâmetro Required Descrição Executa a página dentro de uma transação existente (se existir), ou iniciará uma nova transação. Requires_New A página sempre iniciará uma nova transação, mesmo que já exista uma. Supported Executa a página dentro de uma transação existente (se existir), mas não iniciará uma nova transação. Not_Supported A página não será executada dentro de uma transação existente, nem iniciará uma nova transação. 15

Conceitos Básicos

Diretivas SSI

Diretivas SSI (Server-Side Include)
As diretivas SSI (Server Side Includes) são diretivas executadas no servidor web que permitem a inserção dinâmica de informações (tais como a data corrente, um arquivo HTML, etc) em uma página HTML. Essas diretivas são implementadas no servidor web através da DLL ssinc.dll. Por default o servidor IIS mapeia qualquer página com as extensões .shtml, .shtm ou .stm para essa DLL. Todas as diretivas SSI são permitidas em HTML. Entretanto, somente a diretiva #include é permitida em HTML e ASP. Para utilizar diretivas SSI, você deve renomear as extensões .htm ou .html para .shtml. Por exemplo, index.html deverá ser chamado index.shtml.

#config
Especifica o formato usado para mensagens de erro, datas, e tamanhos de arquivo retornado para o browser cliente.
<!--#configtimefmt=”%m/%d/%y”-->

#echo
Insere o valor de uma variável de ambiente em uma página HTML.
<!--#echovar=”DATE_LOCAL”-->

#exec
Executa uma aplicação ou comando shell e insere a saída em uma página HTML.
< - # x cc i ” c i b n m u c i t c i - > !- ee g=/g-i/esrp.g”-

#flastmod
Insere a data/hora da última modificação de um arquivo em uma página HTML.
< - # l s m df l = s i h m - > !- fato ie”s.t” -

#fsize
Insere o tamanho de um arquivo em uma página HTML.
<- #sz fl=dfutap -> !- fie ie"eal.s" -

#include
Inclui um arquivo em uma página HTML ou ASP. A extensão do arquivo a ser incluído deve estar mapeada, na configuração do servidor web, para SSINC.DLL, a DLL que interpreta diretivas SSI. Por default, o IIS mapea as extensões .shtml, .shtm e .stm. <!--#include file|virtual ="nomearq" --> Parâmetro file Descrição Inclui um arquivo. O nome do arquivo é relativo ao diretório da página corrente.
<-#nld fl=xzap-> !-icue ie”y.s”-

virtual

Inclui um arquivo. O nome do arquivo representa um path que é relativo à raiz do site.
<-#nld vrul”xzap-> !-icue ita=/y.s”-

16

Conceitos Básicos

Global.asa

Arquivo Global.asa
Global.asa é um arquivo opcional, localizado na raiz do diretório virtual. Deve existir somente um arquivo global.asa por aplicação. Ele armazena informações e objetos usados globalmente pela aplicação, e não pode conter qualquer conteúdo que possa ser exibido para o usuário. O código contido no arquivo Global.asa será executado automaticamente no início e no final de uma sessão de usuário e também no início e no final da aplicação ASP. Normalmente o código no arquivo Global.asa é utilizado para inicializar variáveis no início de cada sessão de usuário ou para criar conexões a bancos de dados que são utilizadas em toda a aplicação.

Exemplo de Arquivo Global.asa
<OBJECT RUNAT=Server SCOPE=Session I=ol DTo1 PROGID="MSWC.Tools"> </OBJECT> <SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER> S bA p i a i n O S a t u plcto_ntr Apiain"saistvs)0 plcto(UuroAio"= End Sub SubApplication_OnEnd End Sub SubSession_OnStart Session.Timeout=20 S s i n " n c o )=N w eso(Iii" o ApiainLc plcto.ok A p i a i n " s a i s t v s )=A p i a i n " s a i s t v s )+1 plcto(UuroAio" plcto(UuroAio" ApiainULc plcto.nok End Sub SubSession_OnEnd ApiainLc plcto.ok A p i a i n " s a i s t v s ) A p i a i n " s a i s t v s )-1 plcto(UuroAio"=plcto(UuroAio" ApiainULc plcto.nok End Sub </SCRIPT> <!--METADATATYPE="TypeLibrary" FL=Rpr.I" IE"eotLB VERSION="1.5" LCID="1306" -> -

17

Conceitos Básicos

Global.asa

Partes do Arquivo Global.asa
O arquivo Global.asa é dividido em quatro segmentos: • Eventos do objeto Application • Eventos do objeto Session • Declarações <OBJECT> • Declarações TypeLibrary

Eventos do objeto Application
Uma aplicação ASP é formada por todos os arquivos em um diretório virtual e nos subdiretórios deste. Pode ter dois eventos: o evento Application_OnStart e o Application_OnEnd. Evento Application_OnStart Descrição Ocorre na primeira vez que um usuário abre uma das páginas da aplicação. Pode-se definir um script a ser executado quando da ocorrência deste evento. Ocorre quando o servidor web é desligado. Podese definir um scritpt a ser executado após todas as sessões de usuários terem terminado. Por exemplo, você pode querer calcular e armazenar estatísticas sobre sessões de usuário para referência futura.

Application_OnEnd

Eventos do objeto Session
O servidor web cria automaticamente uma sessão quando o usuário que previamente não tinha uma sessão, abre uma página na aplicação. Essa sessão é encerrada quanto atingir o timeout ou quando o servidor chamar o método Abandon. A sessão têm dois eventos: Session_OnStart e Session_OnEnd. Evento Session_OnStart Descrição Ocorre antes do início de uma nova sessão por um usuário. Pode-se definir um script para esse evento, que será executado antes que a página solicitada pelo usuário seja processada. Ocorre quando a sessão de um usuário é encerrada, por timeout (default=20 minutos) ou pela execução do método Abandon.

Session_OnEnd

Declarações <OBJECT>
O elemento <OBJECT> cria objetos com escopo Session ou Application. Por exemplo:
<OBJECTRUNAT=ServerSCOPE=SessionID=MeuAdRot PROGID=”MSWC.AdRotator”> </OBJECT>

Então esse objeto poderá ser referênciado em qualquer página da aplicação:
<%=MeuAdRot.GetAdvertisement(“/ads/adrot.txt”)%>

Para mais detalhes sobre o elemento <OBJECT> veja a página 14.

18

Conceitos Básicos

Global.asa

Declarações Type Library
Uma type library é um arquivo que contém informações sobre objetos e tipos suportados por um componente ActiveX. A declaração, no arquivo Global.asa, das type libraries dos objetos ActiveX utilizados na aplicação, permite referenciar em qualquer script da aplicação, os tipos de dados das type libraries.

Sintaxe:
<!—METADATA TYPE=”TypeLib” FILE=”nomearquivo” UUID=”typelibraryuuid” VERSION=”majorversionnumber.minorversionnumber” LCID=”localeid” —> Parâmetro nomearquivo typelibraryuuid majorversionnumber minorversionnumber localeid Significado Path para a type library. Identificador universal único para a type library. Número mais significativo da versão. Número menos significativo da versão. Identificador de local usado pela type library.

Informações Adicionais
• Os delimitadores <% %> não são permitidos no arquivo global.asa. Devem ser usadas as tags <SCRIPT> e </SCRIPT>. O parâmetro RUNAT=Server deve ser especificado na tag. O arquivo global.asa é significativo somente para inicialização e finalização. Qualquer código que tentar enviar dados para o cliente será ignorado. Por exemplo, você pode ter HTML em seu arquivo Global.asa mais ele será ignorado. Do mesmo modo, você não tem acesso ao método Response.Write. Não é necessário "lock" e "unlock" o objeto Application na rotina Application_onStart pois isto é executado uma única vez. Quando alterações são gravadas no arquivo Global.asa, o servidor termina todo processamento da aplicação corrente antes de recompilar o arquivo Global.asa. Durante esse tempo o servidor não aceita solicitações adicionais e retorna uma mensagem de erro indicando que a solicitação não pode ser processada enquanto a aplicação estiver sendo reiniciada. Após todas as solicitações do usuário corrente tiverem sido processadas, o servidor elimina todas as sessões ativas, chamando o evento Session_OnEnd para cada sessão que ele elimina, fecha a aplicação e chama o evento Application_OnEnd. O arquivo Global.asa é então recompilado. Subseqüentes solicitações de usuário iniciarão a aplicação e criarão novas sessões. Procedures declaradas no arquivo Global.asa somente podem ser chamadas pelos scripts associados com os eventos Application_OnStart, Application_OnEnd, Session_OnStart, e Session_OnEnd. Elas não estão disponíveis para as páginas ASP em uma aplicação ASP. 19

• •

Objetos Intrínsecos do ASP

Application

Objeto Application
O objeto Application representa a própria aplicação ASP, que é definida como o conjunto de todos os arquivos .asp em um diretório virtual e seus subdiretórios. O objeto Application é criado pelo servidor web no momento da primeira solicitação de página do primeiro usuário da aplicação, e permanece na memória até que o servidor web seja desativado. Existe somente um objeto Aplication para todos os usuários da aplicação ASP, que é usado para armazenamento de variáveis e referências a objetos disponíveis para todas as páginas da aplicação. Uma variável armazenada no objeto Application pode ser lida e modificada por qualquer página dentro da aplicação e por qualquer usuário. Por exemplo:
<% ApiainLc plcto.ok Application("minhavar")="Alômundo" ApiainUlc plcto.nok Rsos.rt Apiain"ihvr) epneWie plcto(mnaa" %>

As variáveis e objetos criados através de scripts (não através da tag <OBJECT> são armazenados na coleção Contents do objeto Application. As referências a instâncias de objetos criados com o elemento <OBJECT> são armazenadas na coleção StaticObjects do objeto Application.

Sumário do Objeto Application Coleções
Contents StaticObjects

Métodos
Contents.Remove Contents.RemoveAll Lock() Unlock()

Eventos
OnStart (definido no arquivo Global.asa, ver página 18). OnEnd (definido no arquivo Global.asa, ver página 18).

20

Objetos Intrínsecos do ASP

Application

Coleções do objeto Application
Contents
A coleção Contents do objeto Application pode armazenar variáveis escalares e instâncias de objetos criados com Server.CreateObject (e não através da tag <OBJECT>). Application.Contents(nome_item)

Propriedades da coleção Contents
Como todas as coleções ASP, a coleção Contents tem as seguintes propriedades: Item, Key e Count.

Item
Define ou retorna o valor de um elemento específico na coleção Contents. O elemento pode ser especificado através de um número de índice (inicia em 1) ou de uma chave. Por exemplo: • Utilizando um número de índice:
ApiainCnet.tm1=nvtc plcto.otnsIe()"oae"

Utilizando uma chave:
ApiainCnet.tm"dtr"=nvtc plcto.otnsIe(eioa)"oae"

A propriedade Item é a propriedade default da coleção Contents, que por sua vez é a coleção default do objeto Application. Os três exemplos abaixo são eqüivalentes:
A p i a i n C n e t . t m 1 =" o a e " plcto.otnsIe() nvtc A p i a i n C n e t ( )=" o a e " plcto.otns1 nvtc A p i a i n 1 =" o a e " plcto() nvtc

do mesmo modo, os exemplos abaixo também são eqüivalentes:
A p i a i n C n e t . t m " d t r " =" o a e " plcto.otnsIe(eioa) nvtc A p i a i n C n e t ( e i o a )=" o a e " plcto.otns"dtr" nvtc A p i a i n " d t r " =" o a e " plcto(eioa) nvtc

Key
Define ou retorna o nome de um elemento específico na coleção Contents. Utilizando o exemplo da propriedade Item, então:
s r o e h v =A p i a i n C n e t . e ( ) tNmCae plcto.otnsKy1

retorna "editora", e o exemplo abaixo
s r a o C a e=A p i a i n C n e t . e ( e i o a ) tVlrhv plcto.otnsKy"dtr"

retorna "novatec".

Count
Representa o número de elementos na coleção Contents.

21

Objetos Intrínsecos do ASP

Application

Exemplo da utilização de coleções
<% Application(“nome”)=“GuiadeASP” A p i a i n “ a a )=“ 5 0 / 0 0 plcto(dt” 0/120” A p i a i n “ u o ” =“ u e sP a e ” plcto(atr) Rbn rts S tA p i a i n “ b 1 )=S r e . r a e b e t “ D D . o n c i n ) e plcto(Oj” evrCetOjc(AOBCneto” F rE c I e i A p i a i n C n e t o ah tm n plcto.otns I I O j c (A p i a i n C n e t ( t m )T e f sbet plcto.otnsIe) hn Response.WriteItem&“éumobjeto.<BR>” Es le Response.WriteItem&“=”&Application.Contents(Item)&“<BR>” E dI n f Nx et %>

StaticObjects
A coleção StaticObject do objeto Application pode armazenar instâncias de objetos criadas com o elemento <OBJECT>. Application.StaticObjects(nome_item)

Propriedades da coleção StaticObjects
Como todas as coleções ASP, a coleção StaticObjects tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 21.

Exemplo
—————arquivo Global.asa——————<OBJECTRUNAT=ServerSCOPE=ApplicationID=ObjInfo PROGID=”MSWC.MyInfo”> </OBJECT> <OBJECTRUNAT=ServerSCOPE=ApplicationID=ObjConexao PROGID=”ADODB.Connection”> </OBJECT> <OBJECTRUNAT=ServerSCOPE=ApplicationID=ObjAdRot PROGID=”MSWC.ADRotator”> </OBJECT> —————arquivo.asp————————<% F rE c o jI A p i a i n S a i O j c s o ah b n plcto.ttcbet Response.Writeobj&“<BR>” Nx et \%>

22

Objetos Intrínsecos do ASP

Application

Métodos do objeto Application
Contents.Remove
Remove uma variável da coleção Application.Contents. Não é possível remover variáveis da coleção Application.StaticObjects. Application.Contents.Remove (nome | índice) Argumento nome índice Descrição Nome do item a ser removido. Índice do item a ser removido.

Contents.RemoveAll
Remove todas as variáveis da coleção Application.Contents. Application.Contents.RemoveAll

Lock
O método Lock impede que outros clientes alterem valores da coleção Contents do objeto Application. Para retirar o bloqueio utilize Unlock. Exemplo: Application.Lock
<% ApiainLc plcto.ok A p i a i n " u V s t s )=A p i a i n " u V s t s )+1 plcto(Nmiia" plcto(Nmiia" ApiainUlc plcto.nok %> E t p g n d a l c ç oj f iv s t d sa áia a piaã á o iiaa <%=Application("NumVisitas")%>vezes.

Unlock
Retira o bloqueio do objeto Application (efetuado por Lock), permitindo que qualquer cliente acesse e altere qualquer valor da coleção Contents do objeto Application. Application.Unlock

Eventos do objeto Application
Application_OnEnd
O evento OnEnd ocorre quando a Application é encerrada. O código para este evento deve ser colocado no arquivo Global.asa. Para mais detalhes veja a página 18.

Application_OnStart
Este evento ocorre quando a aplicação é referenciada pela primeira vez. O código para este evento deve ser colocado no arquivo Global.asa. Para mais detalhes veja a página 18.

23

Objetos Intrínsecos do ASP

ASPError

Objeto ASPError (ASP 3.0)
O objeto ASPError é usado para obter informações sobre um erro ocorrido em uma página ASP. O objeto ASPError é retornado pelo método Server.GetLastError.

Sumário do Objeto ASPError
Propriedades
ASPCode ASPDescription Category Column Description Line Number File Source

Propriedades do objeto ASPError
ASPCode
Retorna o código do erro gerado pelo servidor IIS. ASPError.ASPCode () Código ASP 0100 ASP 0101 ASP 0102 ASP 0103 ASP 0104 ASP 0105 ASP 0106 ASP 0107 ASP 0115 ASP 0177 ASP 0190 ASP 0191 ASP 0192 ASP 0193 ASP 0194 ASP 0240 ASP 0241 ASP 0242 Significado Out of memory Unexpected error Expecting string input Expecting numeric input Operation not allowed Index out of range Type Mismatch Stack Overflow Unexpected error Server.CreateObject Failed Unexpected error Unexpected error Unexpected error OnStartPage Failed OnEndPage Failed Script Engine Exception CreateObject Exception Query OnStartPage Interface Exception

ASPDescription
Retorna uma descrição detalhada do erro, se for um erro relacionado com ASP. ASPError.ASPDescription ()

24

Objetos Intrínsecos do ASP

ASPError

Category
Indica a fonte do erro: IIS, linguagem de scripting ou um componente. ASPError.Category ()

Column
Indica a coluna na linha dentro do arquivo .asp que gerou o erro. ASPError.Column ()

Description
Retorna uma breve descrição do erro. ASPError.Description ()

Line
Indica a linha dentro do arquivo .asp que gerou o erro. ASPError.Line ()

Number
Retorna o código de erro padrão COM. ASPError.Number ()

File
Indica o nome do arquivo .asp que estava sendo processado quando ocorreu o erro. ASPError.File ()

Source
Retorna o código, se disponível, da linha que causou o erro. ASPError.Source ()

25

Objetos Intrínsecos do ASP

ObjectContext

Objeto ObjectContext
O objeto ObjectContext é utilizado para encerrar ou abortar uma transação em uma página ASP. Quando uma página ASP contém, em sua primeira linha, a diretiva @TRANSACTION, a página será executada em um contexto de transação e não será encerrada até que a transação seja encerrada com sucesso ou falhe. As transações em uma aplicação ASP eram controladas, até o ASP 2.0, pelo MTS (Microsoft Transaction Server), que a partir do Windows 2000, foi incorporado à tecnologia COM+. O MTS continua entretanto sendo suportado nas versões anteriores ao Windows 2000.

Sumário do Objeto Request
Eventos
OnTransactionAbort OnTransactionCommit

Métodos
SetAbort SetComplete

Eventos do objeto ObjectContext
OnTransactionAbort
Ocorre quando uma transação for abortada. A subrotina associada ao evento OnTransactionAbort é executada, se tiver sido especificada no script.

OnTransactionCommit
Ocorre quando uma transação for executada com sucesso. A subrotina associada ao evento OnTransactionCommit é executada, se tiver sido especificada no script.

Métodos do objeto ObjectContext
SetAbort
Aborta uma transação. Quanto uma transação é abortada, o evento OnTransactionAbort é acionado. ObjectContext.SetAbort

SetComplete
Indica que uma transação foi completada com sucesso. Aciona o evento OnTransactionCommit. A chamada para SetComplete não significa que a transação inteira está completa. Cada componente chamado no script deve também chamar o método SetComplete. Se SetComplete não for chamado, a transação só será considerada encerrada após todo o código ter sido processado sem qualquer chamada para SetAbort. ObjectContext.SetComplete 26

Objetos Intrínsecos do ASP

Request

Objeto Request
O objeto Request fornece acesso às informações passadas, na solicitação (request) do browser ao servidor. Essas informações são armazenadas nas coleções do objeto Request.

Sumário do Objeto Request
Coleções
ClientCertificate Cookies Form QueryString ServerVariables

Propriedade
TotalBytes

Método
BinaryRead

Coleções do objeto Request
Todas as variáveis podem ser acessadas diretamente chamando Request(variável) sem o nome da coleção. Nesse caso, o servidor web pesquisa as coleções na seguinte ordem: 1. QueryString 2. Form 3. Cookies 4. ClientCertificate 5. ServerVariables Se uma variável existe com mesmo nome em mais de uma coleção, o objeto Request retorna a primeira instância encontrada. Recomendase que quando se referir a membros de uma coleção utilizar o nome completo;istofazcomqueoservidorlocalizeumitemmaisrapidamente. Por exemplo, utilize Request.ServerVariables(AUTH_USER) em vez de Request(AUTH_USER).

ClientCertificate
A coleção ClientCertificate contêm os valores dos campos do certificado digital do cliente enviado na solicitação (request) HTTP. Certificados digitais possibilitam transações eletrônicas seguras e são enviados pelo browser cliente para o servidor web quando o browser cliente suportar Secure Sockets Layer (SSL) e o browser estiver conectado a um servidor web que também está executando o SSL (o URL começa com https://). Request.ClientCertificate(Chave [Subcampo]) Argumento Chave Certificate Descrição Nome do campo de certificação a ser obtido. Um string contendo o stream binário do conteúdo do certificado. 27

Objetos Intrínsecos do ASP Flags

Request

Issuer

SerialNumber Subject

ValidFrom ValidUntil SubChave

C CN GN I L O OU S T

Existem duas flags que fornecem informações adicionais sobre o certificado do cliente. Necessita da inclusão do arquivo cervbs.inc. A flag ceCertPresent indica que um certificado do cliente está presente. A flag ceUnrecognizedIssuer indica que o certificado digital do cliente foi atribuído por uma autoridade de certificação desconhecida. Um string contendo informações sobre o emissor do certificado digital do cliente. Se o parâmetro SubChave não for especificado, a utilização da chave Issuer retorna uma lista de todos os valores de subcampos Issuer separados por vírgulas. Representação ASCII dos bytes hexadecimais do número serial da certificação. Uma lista de strings delimitados por vírgulas que fornecem informações sobre o proprietário do certificado digital. Data inicial da validade do certificado. Data de expiração do certificado. O argumento opcional SubChave é um sufixo adicionado aos campos Issuer ou Subject. Por exemplo, IssuerL que é a localidade do Issuer. Nome do país de origem do Subject ou Issuer. Nome comum da chave Subject. Nome do Subject ou Issuer. Iniciais do Subject ou Issuer. Localidade. Nome da empresa ou organização. Nome da unidade organizacional dentro da organização Estado (ou provincia) do Subject ou Issuer. Cargo do Subject ou Issuer.

Exemplo
<HTML> <HEAD> </HEAD> <BODY> E t c r i i a oév l d d se etfcd áio e < =R q e t C i n C r i i a e “ a i F o ” % a é % eus.letetfct(Vldrm) > t < =R q e t C i n C r i i a e “ a i U t l )% % eus.letetfct(Vldni” > </BODY> </HTML>

Propriedades da coleção ClientCertificate
Como todas as coleções ASP, a coleção ClientCertificate tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 21.

28

Objetos Intrínsecos do ASP

Request

Cookies
A coleção Cookies contêm os valores dos cookies enviados pelo browser cliente na solicitação (request) HTTP ao servidor web. Um cookie é um pequeno arquivo texto fornecido pelo servidor web e armazenado no computador do cliente, utilizado para identificar as sessões de cada cliente conectado ao seu servidor web. Mais informações sobre cookies podem ser obtidas em www.cookiecentral.com. Request.Cookies(nome)[(campo)|.atributo] Parâmetro nome campo atributo True False Descrição Nome do cookie. Parâmetro opcional usado para obter os valores dos campos de dicionários cookie. Valor booleano que indica se o cookie possui campos. Indica que o cookie possui campos. Indica que o cookie não possui campos.

Exemplo
Exibe os valores do cookie recebido na request HTTP:
<% F rE c s r t mI R q e t C o i s o ah tIe n eus.oke Response.WritestrItem&“=“&Request.Cookies(strItem)&“<BR>” I RqetCoissrtm.aKy Te f eus.oke(tIe)Hses hn F rE c s r u i e I R q e t C o i s s r t m o ah tSbtm n eus.oke(tIe) Response.Write“->”&strItem&“(“&strSubitem&“)=“&_ R q e t C o i s s r t m ( t S b t m &“ B > eus.oke(tIe)sruie) <R” Nx et E dI n f Nx et %>

Propriedades da coleção Cookies
Como todas as coleções ASP, a coleção Cookies tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 21.

Form
A coleção Form contém os valores dos elementos de um formulário enviados no corpo (body) da solicitação (request) HTTP, usando o método POST. Request.Form(elemento)[(índice)|.Count] Parâmetro elemento índice Descrição Nome do elemento <FORM>. Parâmetro opcional usado quando o elemento tem mais de um valor. É um número inteiro entre 1 e Request.Form(elemento).Count. Número de valores do elemento.

Count

29

Objetos Intrínsecos do ASP

Request

Exemplo
Considere o seguinte formulário:
<FORM ACTION = “submit.asp” METHOD = “POST”> <P>Nome: <INPUT NAME = “nome” SIZE = 48> <P>Qualéasuacervejapreferida:<SELECTNAME=“cerveja”> <OPTION>Brahma <OPTION>Antartica <OPTION>Bavária <OPTION>Skol</SELECT> <P><INPUT TYPE = SUBMIT> </FORM>

Desse formulário, o seguinte corpo (body) poderia ser enviado:
nome=Joel&cerveja=Brahma

O seguinte script poderia ser usado:
Benvindo, <%=Request.Form(“nome”)%>. Suacervejapreferidaé<%=Request.Form(“cerveja”)%>.

O resultado seria:
B n i d ,J e .S ac r e ap e e i aéB a m . evno ol u evj rfrd rha

Propriedades da coleção Form
Como todas as coleções ASP, a coleção Form tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 21.

QueryString
A coleção QueryString contém os valores das variáveis enviadas no query string da solicitação (request) HTTP, usando o método GET. Query string é um string anexado ao URL usado para o envio de pequenos volumes de dados ao servidor. A query string é especificada após o sinal de (?), contendo pares de nomes e valores de variáveis, separados por &. Os espaços são substituídos pelo sinal de "+" dentro de valores. Diferentes processos podem gerar uma query string, tais como uma tag <A HEF>, a submissão de um formulário ou a digitação de uma consulta na caixa de endereço do browser. Por exemplo, a tag:
<AHREF=“exemplo?string=istoéumexemplo”>exemplostring</A>

gera a variável string com o valor "isto é um exemplo". Request.QueryString(variável)[(índice)|.Count] Parâmetro variável índice Descrição Nome da variável. Parâmetro opcional usado quando o elemento tiver mais de um valor. É um número inteiro entre 1 e Request.Querystring(variável).Count. Número de valores do parâmetro.

Count

30

Objetos Intrínsecos do ASP

Request

Exemplo
Considere o seguinte formulário:
<FORM ACTION = “submit.asp” METHOD = “GET”> <P>Nome: <INPUT NAME = “nome” SIZE = 48> <P>Qualéasuacervejapreferida:<SELECTNAME=“cerveja”> <OPTION>Brahma <OPTION>Antartica <OPTION>Bavária <OPTION>Skol</SELECT> <P><INPUT TYPE = SUBMIT> </FORM>

Desse formulário, a seguinte query string poderia ser enviado:
nome=Joel&cerveja=Brahma

O seguinte script poderia ser usado:
Benvindo, <%=Request.QueryString(“nome”)%>. Suacervejapreferidaé<%=Request.QueryString(“cerveja”)%>.

O resultado seria:
B n i d ,J e .S ac r e ap e e i aéB a m . evno ol u evj rfrd rha

Propriedades da coleção QueryString
Como todas as coleções ASP, a coleção QueryString tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 21.

ServerVariables
Uma coleção dos valores do header HTTP enviados na solicitação (request) do browser cliente para o servidor, mais os valores de variáveis de ambiente do servidor web. Cada vez que uma página ASP é acessada, o servidor web cria variáveis de ambiente com informações sobre o browser, o servidor web e a página ASP que está sendo acessada. strValor = Request.ServerVariables("nome") Parâmetro nome Descrição Nome do elemento da coleção ServerVariables. Veja na página 122 a lista dos possíveis valores.

Exemplo
<% EnderecoIP=Request.ServerVariables(“REMOTE_ADDR”) Response.Write“SeuendereçoIPé“&EnderecoIP %>

Propriedades da coleção ServerVariables
Como todas as coleções ASP, a coleção ServerVariables tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 21.

31

Objetos Intrínsecos do ASP

Request

Propriedade do objeto Request
TotalBytes
Retorna o número total de bytes no corpo (body) da solicitação (request) HTTP enviada pelo browser cliente. Var = Request.TotalBytes

Método do objeto Request
BinaryRead
O método BinaryRead lê um número de bytes diretamente do corpo (body) da solicitação (request) HTTP enviada pelo cliente como parte de um HTTP Post. Esse método obtém os dados do cliente e armazena-os em um SafeArray. Um SafeArray é um array especial que contém, além de seus itens, o número de dimensões no array e os limites dessas dimensões. Variant=Request.BinaryRead(numbytes) Parâmetro variant numbytes Descrição Array contendo os bytes lidos pelo método. Número de bytes a serem lidos.

32

Objetos Intrínsecos do ASP

Response

Objeto Response
O objeto Response permite enviar informações para o browser cliente, tais como texto, dados e cookies. Pode incluir informação de header HTTP, como também a saída usada para criar a página HTML. Algumas dessas informações são parte do header da página, que devem ser enviadas para o browser cliente antes que outro conteúdo seja enviado, a não ser que Response.Buffer esteja habilitado.

Sumário do Objeto Response
Coleção
Cookies

Propriedades
Buffer CacheControl Charset ContentType Expires ExpiresAbsolute IsClientConnected PICS Status

Métodos
AddHeader AppendToLog BinaryWrite Clear End Flush Redirect Write

Coleção do objeto Response
Cookies
A coleção Cookies é usada para enviar um cookie para o browser cliente. Permite atribuir um novo valor para um cookie (se ele já existir); caso contrário, o cookie é criado e o valor é atribuído. Por alterarem valores do header HTTP response, os valores da coleção Cookies devem ser enviados antes que qualquer código HTML seja enviado para o browser cliente, exceto se Response.Buffer estiver habilitado. Response.Cookies(item)[(subitem)|.atributo]=valor Parâmetro item subitem Descrição Nome do cookie. Nome do campo do cookie. Por exemplo: Response.Cookie("MeuCookie")("Codigo")="X13" 33

Objetos Intrínsecos do ASP valor atributo Domain Expires

Response

HasKeys Path

Secure

Valor atribuído à chave ou o atributo. Atributos dos elementos da coleção Cookies. Indica que o browser cliente deve enviar o valor do cookie somente para páginas no domínio especificado. Data em que o cookie expira e é descartado no computador do cliente. Se não for especificado, o cookie residirá no computador somente durante a sessão do cliente. Retorna um valor booleano (True/False) indicando se o cookie contém campos. Indica o diretório virtual para onde o cookie deve ser enviado. Para enviar o cookie para todas as páginas do site utilize Path="/". Se não for especificado, assume o path da aplicação ASP corrente. Indica que o cookie deve ser enviado somente se o browser cliente estiver utilizando Secure Sockets Layer (SSL) (True/False).

Exemplo:
<% ' n i u c o i p r ob o s rc i n e Eva m oke aa rwe let R s o s . o k e ( M u o k e ) D m i =" n v t c . o / epneCois"eCoi".oan /oae1cm" R s o s . o k e ( M u o k e ) P t =" c o i s epneCois"eCoi".ah /oke" Response.Cookies("MeuCookie").Expires=#08/30/2000# R s o s . o k e ( M u o k e ) S c r =F l e epneCois"eCoi".eue as %>

A coleção Cookies pode armazenar múltiplos valores em um único item. Esses subitens podem ser acessados individualmente. Por exemplo:
<% ‘Enviaumcookiecomsubitensparaobrowsercliente R s o s . o k e ( U u r o ) “ d )=“ o l epneCois“sai”(I” Je” R s o s . o k e ( U u r o ) “ e h ” =“ l d g epneCois“sai”(Sna) odo” R s o s . o k e ( U u r o ) P t =" " epneCois"sai".ah / R s o s . o k e ( U u r o ) E p r s=D t A d " " 3 N w epneCois"sai".xie aed(m, , o) %>

Informações adicionais sobre cookies
Os cookies são armazenados como arquivos de texto, seu nome identifica o usuário e o site. No browser Internet Explorer os cookies são gravados no subdiretório Cookies do Windows, do computador do usuário. Para visualizar o conteúdo de um cookie, clique com o botão direito do mouse nele e selecione Open no menu de contexto. O usuário pode desabilitar o recebimento de cookies, alterando a configuração do seu browser.

Propriedades da coleção Cookies
Como todas as coleções ASP, a coleção Cookies tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 21.

34

Objetos Intrínsecos do ASP

Response

Propriedades do objeto Response
Buffer
Determina se a saída de uma página ASP deve ser colocada em um buffer até que todos os scripts na página sejam processados, ou até que os métodos Flush ou End serem executados. Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.Buffer = blnSetting Parâmetro True Descrição Indica que a saída da página será colocado em um buffer até que todo o script da página corrente tenha sido processado ou até que o método Flush ou End do objeto Response tenha sido chamado (default no ASP 3.0). Não coloca no buffer. A saída é enviada imediatamente ao browser cliente após cada linha criada e introduzida no stream HTML (default no ASP 2.0).

False

CacheControl
Determina se servidores proxy devem armazenar as páginas ASP em cache. Um servidor proxy é usado para acelerar a obtenção de páginas, mantendo uma cópia local da página em cache. As propriedades Response.Expires e Response.ExpiresAbsolute podem ser utilizadas para definir a hora e/ou data limite da existência do cache. Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.CacheControl [="Private" | "Public"] Parâmetro Private Public Descrição Desabilita o armazenamento em cache do proxy (default). Permite que os servidores proxy armazenem as páginas em cache.

Charset
Define o character set para o conteúdo do response HTTP. O nome do character set é adicionado ao final do header "contenttype" no objeto Response. Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.Charset (strNomeCharset) Parâmetro strNomeCharset Descrição String correspondente ao character set (default=ISOLATIN-1).

Exemplo
<%Response.Charset(“ISO-LATIN-7”)%>

35

Objetos Intrínsecos do ASP

Response

ContentType
Define o valor do item Content-Type no header HTTP enviado para o browser cliente. Informa ao browser cliente o tipo de conteúdo enviado no corpo (body) na resposta do servidor, por exemplo, se é texto ou imagem. Isto permite ao browser determinar se ele pode exibir o arquivo ou é necessário chamar outra aplicação.Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.ContentType = strTipoConteúdo Parâmetro strTipoConteúdo Descrição Representa o tipo do conteúdo, como um tipo MIME padrão, no formato tipo/subtipo. A parte tipo do valor representa o conteúdo geral e o subtipo representa o conteúdo específico (default=text/html).

Exemplo
<% iftipodados="jpg"Then Response.ContentType="image/JPEG" Es le R s o s . o t n T p =" e t p a n epneCnetye tx/li" E dI n f %>

Expires
Especifica a quantidade de tempo (em minutos) que a página corrente deve ser mantida no cache do computador cliente. Se o usuário retornar para essa página dentro do tempo especificado, a versão em cache da página será exibida. Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.Expires [= intNumMinutos] Argumento intNumMinutos Descrição Número de minutos que o browser cliente deve deixar no cache a página corrente. O valor zero força o browser cliente a solicitar novamente a página do servidor toda a vez que o cliente navegue pela página.

ExpiresAbsolute
Especifica que a página corrente deve ser mantida no cache do computador cliente até a data e hora especificados. Se o usuário retornar para esta página antes desta data e hora, a versão em cache da página será exibida. Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.ExpiresAbsolute [=[data] [hora]] 36

Objetos Intrínsecos do ASP Parâmetro data Descrição

Response

hora

Data após a qual a página corrente não deve permanecer no cache (formato mês/dia/ano). Se a data não for especificada, a página expirará no horário especificado no mesmo dia em que script for executado. Hora na data especificada a qual a página corrente não deve permanecer no cache. Se não for especificado, a página expirará exatamente à meia-noite da data especificada.

Exemplo
<% Response.ExpiresAbsolute=#February20,200018:00:00# %>

IsClientConnected
Retorna True se o cliente estiver conectado e carregando a página do servidor; caso contrário, retorna False. Pode ser utilizada para finalizar o processamento (com o método Response.End) se o cliente passar para outra página antes da página corrente ter sido encerrada. Esta propriedade é útil se o script corrente for longo; evita que o servidor continue tentando enviar informações quando o usuário não está mais conectado. No ASP 2.0 verificava se o usuário continuava conectado após a última chamada do método Response.Write; na versão 3.0 pode ser utilizada antes de qualquer conteúdo ter sido enviado para o cliente. Response.IsClientConnected

Exemplo
<% i Rsos.sletonce Te f epneICinCnetd hn

cdg.. óio.
es le Rsos.n epneEd E dI n f %>

Pics
Adiciona um label PICS ao header HTTP response. PICS é um sistema de classificação usado voluntariamente por sites para classificar o conteúdo da página em termos de violência, sexo, linguagem inapropriada, etc. Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Se o label possui aspas embutidas, estas devem ser substituídas por & chr(34) &. Mais informações sobre PICS podem ser obtidas em www.rsac.org. Response.Pics (strLabelPICS)

37

Objetos Intrínsecos do ASP

Response

Status
Especifica o valor do status e da mensagem enviada para o cliente nos headers HTTP da resposta para indicar o resultado do processamento da página (erro ou sucesso). Quando um servidor responde a uma solicitação (request) HTTP, a primeira linha retornada é a linha de status. Por alterar valores do header HTTP da resposta, deve ser definida antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.Status = strStatus Argumento strStatus Descrição Valor string contendo um código de três dígitos que indica o status da solicitação (request) HTTP e uma breve descrição do código de status. Veja na página 121 os códigos de status.

Exemplo
<% EnderecoIP=Request.ServerVariables(“REMOTE_ADDR”) IfEnderecoIP<>“208.5.64.223”Then Response.Status=“403AccessForbidden” Rsos.rt Rsos.tts epneWie epneSau Rsos.n epneEd E dI n f %>

Métodos do objeto Response
AddHeader
Adiciona um header HTTP à resposta enviada ao browser cliente. Não substitui um header existente com mesmo nome, e após adicionado, não pode ser removido. Por alterar valores do header HTTP da resposta, deve ser executado antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Response.AddHeader strNome,strValor Parâmetro strNome strValor Descrição Nome do header a ser adicionado. Pode ser um nome predefinido ou criado pelo próprio usuário. Valor inicial do novo header.

Exemplo
<% Response.Status="302ObjectMoved" Response.AddHeader"Location","novopath/novapag.asp" %>

38

Objetos Intrínsecos do ASP

Response

AppendToLog
Acrescenta um string (sem vírgulas) no final de uma entrada no log do servidor web para a solicitação (request) corrente do cliente. O servidor IIS permite registrar, em um arquivo, a atividade do usuário. Esse arquivo pode ser um arquivo texto ou um banco de dados ODBC. Cada entrada no log contém: data/hora da visita do usuário, páginas solicitadas, endereço IP do cliente e o tempo de conexão com o servidor. Os arquivos de log do IIS estão localizados em winnt\system32\LogFiles\W3svc1\ex[data].log. Response.AppendToLog strEntradaLog Parâmetro Descrição strEntradaLog String a ser acrescentado. Até 80 caracteres, não pode conter vírgulas, porque os campos do log do IIS são delimitados por vírgulas.

Exemplo
<% Response.AppendToLog(“ErronoProcessamento”) %>

Saída adicionada no final do arquivo de log do IIS:
10.78.176.37,-,02/15/2000,14:05:20,W3SVC,VENDAS1,10.78.176.37, ErronoProcessamento

BinaryWrite
Envia dados binários diretamente para a saída HTTPcorrente sem qualquer conversão de character-set. Utilizado para enviar informação não-string, tais como dados binários requeridos por uma aplicação cliente ou os bytes que compõem um arquivo imagem. Response.BinaryWrite arbyteDados Parâmetro arbyteDados Descrição Array do tipo Variant de bytes a ser enviado à saída HTTP.

Clear
Limpa o buffer de saída HTML. Não limpa headers HTTP, somente o conteúdo do buffer. Ocorrerá um erro de run-time se Response.Buffer não estiver definido como True. Response.Clear

39

Objetos Intrínsecos do ASP

Response

End
Interrompe o processamento do script, e envia o resultado corrente para o browser cliente, sem processar o resto do arquivo ASP. Se Response.Buffer estiver definido como True, Response.End esvazia o buffer e então finaliza. Response.End

Exemplo
<% Response.Write“Alômundo” Rsos.n epneEd R s o s . r t “ s al n an os r m s r d ” epneWie Et ih ã eá otaa %>

Flush
Envia o conteúdo do buffer de saída imediatamente ao browser cliente. Ocorrerá erro de run-time se Response.Buffer não estiver definido como True. Response.Flush

Redirect
Redireciona a solicitação (request) do cliente para um outro URL. Além de redirecionar o browser para um outro endereço, retorna um HTTP status "302 Object Moved" indicando a ocorrência de um redirecionamento.Nenhuma saída deve ser executada antes de uma instrução Response.Redirect. Response.Redirect(strURL) Parâmetro strURL Descrição String com o endereço URL da página para onde o browser cliente é redirecionado.

Exemplo
<% I S s i n “ D l e t ” =“ T e f eso(ICine) ” hn R s o s . e i e t“ e i t o a p epneRdrc Rgsr.s” E dI n f %>

40

Objetos Intrínsecos do ASP

Response

Write
Envia informações diretamente para a saída HTTP corrente. Pode ser utilizado o atalho <%= vntDados %> no lugar de Response.Write. Response.Write vntDados Parâmetro vntDados Descrição Argumento Variant contendo os dados a serem enviados. Inclui textos, tags HTML, scripts client-side, e assim por diante. Não pode conter a combinação de caracteres %>, pois o servidor interpretará como o final do script ativo. Caso seu script requeira esta seqüência de caracteres, use a seqüência escape %\> no lugar.

Exemplo
<BODY> <H1>TabelasdasServerVariables</H1> <TABLEborder=0width=90%align=centercellspacing=5> <% F re c n m I R q e t S r e V r a l s o ah oe n eus.evraibe Response.Write"<TR><TD>"&nome&"</TD><TD>" Response.WriteRequest.ServerVariables(nome)&"</TD></TR>" Nx et %> </TABLE> </BODY> </HTML>

41

Objetos Intrínsecos do ASP

Server

Objeto Server
O objeto Server fornece acesso a métodos e propriedades do servidor.

Sumário do Objeto Server
Propriedade
ScriptTimeout

Métodos
CreateObject Execute GetLastError HTMLEncode MapPath Transfer URLEncode

Propriedade do Objeto Server
ScriptTimeout
Define ou retorna a quantidade de tempo (em segundos) que scripts na página podem ser executados antes do servidor abortar a execução da página. É normalmente utilizada para evitar a sobrecarga do servidor com páginas com erros que podem ocasionar loops (default=90 segundos). Server.ScriptTimeout [=lngNumSegundos]

Exemplo
<%Server.ScriptTimeout=150%>

Métodos do Objeto Server
CreateObject
Cria uma instância de um objeto no servidor para uso em uma página ASP. Uma vez instanciado, você pode acessar quaisquer coleções, eventos, métodos e proprieadades associadas com esse objeto. Os objetos a serem instanciados devem estar instalados e registrados no servidor web. Set objMeuObjeto = Server.CreateObject(strProgID) Parâmetro Descrição objMeuObjeto Nome da variável que irá conter uma referência para o objeto que está sendo instanciado. strProgID Identificação da classe do objeto que será instanciado. Este valor é encontrado no Registry e representa como a DLL do componente está registrada.

Exemplo
<%SetobjConn=Server.CreateObject(“ADODB.Connection”)%>

42

Objetos Intrínsecos do ASP

Server

Execute (ASP 3.0)
Interrompe a execução da página corrente e transfere o controle para uma outra página. O ambiente corrente do usuário é carregado para a nova página. Após aquela página ter sido executada, o controle volta para a página original e a execução continua no comando seguinte ao método Execute. O método Execute é similar a uma chamada de procedure em muitas linguagens de programação. Server.Execute(strUrl) Exemplo:
<% IfblnUsaDHTMLThen Sre.xct(DTLap) evrEeue“HM.s” Es le Sre.xct(HM.s” evrEeue“TLap) E dI n f %>

GetLastError (ASP 3.0)
Retorna uma referência para um objeto ASPError que armazena detalhes do último erro ocorrido no processamento da página. Por alterar valores do header HTTP da resposta, deve ser executado antes que qualquer saída tenha sido enviada ao browser cliente, a não ser que a resposta esteja buferizada. Server.GetLastError()

HTMLEncode
O método HTMLEncode aplica a sintaxe de codificação HTML em um string. Caracteres especiais, tais como: < e > são convertidos para &lt; e &gt;, respectivamente. Server.HTMLEncode(strHTMLString) Parâmetro strHTMLString Descrição String a ser codificado.

Exemplo
<% Response.WriteServer.HTMLEncode(“Atagparaumatabelaé:<Table>”) %>

Produz a saída:
At gp r u at b l é & t T b e g ; a aa m aea : l;al&t

43

Objetos Intrínsecos do ASP

Server

MapPath
O método MapPath mapeia um path virtual ou relativo para o correspondente diretório físico no servidor. Server.MapPath(strPath) Parâmetro strPath Descrição Especifica o path virtual ou relativo a ser mapeado para um diretório físico. Se path inicia com (/) ou (\), é assumido ser um path virtual completo. Caso contrário, é assumido ser um path relativo ao diretório que o arquivo .asp está sendo processado.

Exemplo
<HTML> Opathdoarquivoteste.aspé: <%Response.WriteServer.MapPath(“teste.asp”)%> </HTML>

Saída do script:
Op t d s ea q i oéD \ n t u \ w r o \ e t . s ah et ruv :Iepbwwottseap

Transfer (ASP 3.0)
Interrompe a execução da página corrente e transfere o controle para uma outra página. O ambiente corrente do usuário é carregado para a nova página. Ao contrário do método Execute, a execução não é retornada para a página original. Server.Transfer(strUrl)

Exemplo
<% I Ssin“lVnaelzd” Te f eso(bnedRaiaa) hn Sre.rnfr“Pdd/gaeeap) evrTase(/eioArdc.s” Es le Sre.rnfr“Pdd/asnoap) evrTase(/eioMiIf.s” E di n f %>

URLEncode
O método URLEncode converte um string utilizando as regras de codificação URL, para que possa ser enviado em linha de endereço como um query string. Server.URLEncode(strURL) Parâmetro strURL Descrição String a ser codificado.

Exemplo
<Rsos.rt(evrULnoe“tp/wwmcootcm) % %epneWieSre.REcd(ht:/w.irsf.o”) >

produz a saída:
http%3A%2F%2Fwww%2Emicrosoft%2Ecom

44

Objetos Intrínsecos do ASP

Session

Objeto Session
Um objeto Session armazena informações para uma sessão de usuário. A sessão de usuário inicia no momento que o usuário solicita a primeira página do site. Variáveis armazenadas no objeto Session não são descartadas quando o usuário passa para outras páginas da aplicação; em vez disso, essas variáveis persistem para a sessão inteira do usuário. O servidor destrói o objeto Session quando o tempo da sessão expira ou é abandonada. As variáveis Session funcionam somente com browsers que suportam cookies. Se o usuário desabilitar os cookies em seu browser, então todas as variáveis Session do usuário serão perdidas tão logo uma nova página for solicitada. Por default, o objeto Session é destruído após a sessão ficar inativa por 20 minutos. O seguinte script mostra como criar uma variável Session chamada minhavar com o valor “Alô mundo”:
Session(“minhavar”)=“Alômundo”

Após a variável minhavar ter sido criada, você pode exibí-la em qualquer página subseqüente usando o seguinte comando:
Rsos.rt Ssin “ihvr ) epneWie eso( mnaa”

Sumário do Objeto Session Coleções
Contents StaticObjects

Propriedades
CodePage LCID SessionID Timeout

Métodos
Contents.Remove Contents.RemoveAll Abandon

Eventos
onStart onEnd

Coleções do Objeto Session
Contents
A coleção Contents do objeto Session pode armazenar variáveis escalares e instâncias de objetos criados com Server.CreateObject (e não através da tag <OBJECT>). Session.Contents(nome_item)

45

Objetos Intrínsecos do ASP

Session

Propriedades da coleção Contents
Como todas as coleções ASP, a coleção Contents tem as seguintes propriedades: Item, Key e Count.

Item
Define ou retorna o valor de um elemento específico na coleção Contents. O elemento pode ser especificado através de um número de índice (inicia em 1) ou de uma chave. Por exemplo: • Utilizando um número de índice:
SsinCnet.tm1=nvtc eso.otnsIe()"oae"

Utilizando uma chave:
SsinCnet.tm"dtr"=nvtc eso.otnsIe(eioa)"oae"

A propriedade Item é a propriedade default da coleção Contents, que por sua vez é a coleção default do objeto Session. Os três exemplos abaixo são eqüivalentes:
S s i n C n e t . t m 1 =" o a e " eso.otnsIe() nvtc S s i n C n e t ( )=" o a e " eso.otns1 nvtc Session(1)="novatec"

do mesmo modo, os exemplos abaixo também são eqüivalentes:
S s i n C n e t . t m " d t r " =" o a e " eso.otnsIe(eioa) nvtc S s i n C n e t ( e i o a )=" o a e " eso.otns"dtr" nvtc S s i n " d t r " =" o a e " eso(eioa) nvtc

Key
Define ou retorna o nome de um elemento específico na coleção Contents. Utilizando o exemplo da propriedade Item, então:
s r o e h v =S s i n C n e t . e ( ) tNmCae eso.otnsKy1

retorna "editora", e o exemplo abaixo
s r a o C a e=S s i n C n e t . e ( e i o a ) tVlrhv eso.otnsKy"dtr"

retorna "novatec".

Count
Representa o número de elementos na coleção Contents.

Exemplo da utilização de coleções
<% Session(“nome”)=“GuiadeASP” Session(“data”)=“05/01/2000” Session(“autor”)=“RubensPrates” S tS s i n “ b 1 )=S r e . r a e b e t “ D D . o n c i n ) e eso(Oj” evrCetOjc(AOBCneto” F rE c I e i S s i n C n e t o ah tm n eso.otns I I O j c (S s i n C n e t ( t m )T e f sbet eso.otnsIe) hn Response.WriteItem&“éumobjeto.<BR>” Es le Response.WriteItem&“=”&Session.Contents(Item)&“<BR>” E dI n f Nx et %>

46

Objetos Intrínsecos do ASP

Session

StaticObjects
A coleção StaticObject do objeto Session pode armazenar instâncias de objetos criadas com o elemento <OBJECT>. Session.StaticObjects(nome_item)

Propriedades da coleção StaticObjects
Como todas as coleções ASP, a coleção StaticObjects tem as seguintes propriedades: Item, Key e Count. Para mais detalhes veja a coleção Contents na página 46.

Exemplo
—————arquivo Global.asa——————<OBJECTRUNAT=ServerSCOPE=SessionID=ObjInfo PROGID=”MSWC.MyInfo”> </OBJECT> <OBJECTRUNAT=ServerSCOPE=SessionID=ObjConexao PROGID=”ADODB.Connection”> </OBJECT> <OBJECTRUNAT=ServerSCOPE=SessionID=ObjAdRot PROGID=”MSWC.ADRotator”> </OBJECT> —————arquivo.asp————————<% F rE c o jI A p i a i n S a i O j c s o ah b n plcto.ttcbet Response.Writeobj&“<BR>” Nx et \%>

Propriedades do Objeto Session
CodePage
Especifica a página de código usado para exibir o texto enviado para o browser cliente. Session.CodePage(=Codepage)

LCID
Especifica o identificador de localização que será usado para exibir o texto enviado para o browser cliente. Permite formatar datas, números e moeda de acordo com as especificações de cada país ou região. Por exemplo, o identificador para o Brasil é 1046. Session.LCID intLCID

47

Objetos Intrínsecos do ASP

Session

SessionID
Retorna o número de identificação de sessão para o usuário corrente. Esse número é usado para rastrear um usuário, e é gerado pelo servidor web (através de um algorítmo complexo) na primeira vez que o usuário solicita uma página. Esse número é armazenado como um cookie, no computador do usuário. Posteriormente, cada vez que o usuário requisita uma página do servidor web, o browser envia o cookie para o servidor, no header HTTP da request, como forma de identificá-lo perante o servidor. O cookie somente é reinicializado quando o browser ou o servidor forem reinicializados. Se o browser não suportar cookies ou estiver com a opção de cookies desabilitada, a propriedade SessionID não será enviada como parte do header HTTP da request, e portanto não poderá ser utilizada para identificar o usuário. Session.SessionID

Exemplo
<%Response.Write“SuaIDdesessãoé“&Session.SessionID%>

Saída:
SuaIDdesessãoé465107831

Timeout
Especifica o tempo máximo (em minutos) de inatividade de uma sessão até que o servidor a considere encerrada (default=20 minutos). Se o usuário não atualizar a imagem da página ou solicitar outra página no tempo especificado, a sessão é encerrada automaticamente e os recursos liberados. Session.Timeout [=número]

Métodos do Objeto Session
Contents.Remove
Remove uma variável da coleção Session.Contents. Não é possível remover variáveis da coleção Session.StaticObjects. Session.Contents.Remove (nome | índice) Argumento nome índice Descrição Nome do item a ser removido. Índice do item a ser removido.

Contents.RemoveAll
Remove todas as variáveis da coleção Session.Contents. Session.Contents.RemoveAll

48

Objetos Intrínsecos do ASP

Session

Abandon
Encerra a sessão do usuário, remove todos os dados e objetos do objeto Session corrente, liberando seus recursos. Por default, mesmo que o método Abandon não seja executado, o objeto Session é encerrado após vinte minutos de inatividade. Session.Abandon

Eventos do Objeto Session
Session_OnEnd
O evento OnEnd ocorre quando a Session é encerrada. A procedure para este evento, se existir, deve ser colocada no arquivo Global.asa da aplicação que contém a página solicitada. Para mais detalhes veja a página 18.

Session_OnStart
O evento OnEnd ocorre quando a Session é iniciada. A procedure para este evento, se existir, deve ser colocada no arquivo Global.asa da aplicação que contém a página solicitada. Para mais detalhes veja a página 18.

49

Componentes do IIS

ADO

ADO
ADO (ActiveX Data Objects) é uma tecnologia complementar ao ASP, fornecendo a interface com bancos de dados. ADO faz parte da suite de componentes MDAC (Microsoft Data Access Components) incluída no pacote II 5.0 / ASP 3.0, e também em outros produtos da Microsoft. Você pode fazer o download da versão mais recente em http://www.microsoft.com/data/ download.htm. A explicação completa do ADO exige um livro inteiro, o que é inviável nesse guia. Colocamos nessa página apenas um exemplo. Para mais informações veja o guia ADO desta mesma série. Sintaxe para instanciação do componente: Set objADO = Server.CreateObject(“strProgID”) Parâmetro ProgID Significado ProgID do objeto ADO a ser instanciado.

Arquivos utilizados pelo componente
Arquivo/DLL Descrição msado15.dll adovbs.inc Nome da DLL que contém os objetos ADO. Contém declarações VBScript para todas as constantes usadas pelo ADO.

Utilização do componente
Veja abaixo um exemplo de como listar os nomes dos produtos no banco de dados Northwind, o banco de dados de exemplo é fornecido pela Microsoft no Access e SQL Server.
<% Oto Epii pin xlct Response.Expires=0 D mo j o n o j s s r u r ,s r o e a i bCn, bR, tQey tCnxo S to j o n=S r e . r a e b e t " D D . o n c i n ) e bCn evrCetOjc(AOBCneto" 'necessitadeumaconexãoODBCparaobancodedadosNorthwind strConexao="DSN=Northwind;Database=Northwind;UID=sa;PWD=;" objConn.OpenstrConexao strQuery="SELECTProductnameFROMProductsORDERBYProductName S to j s=o j o n E e u e s r u r ) e bR bCn.xct(tQey WhileNotobjRs.EOF Rsos.rt ojs"rdcnm" & epneWie bR(Poutae) ojsMvNx bR.oeet Wend %>

50

Componentes do IIS

Ad Rotator

Ad Rotator
Esse componente controla a exibição rotativa de banners (imagens com conteúdo publicitário) exibidos na página. Cada vez que um usuário abre ou recarrega a página, será exibido um novo banner baseado na informação contida no arquivo Rotator Schedule. Sintaxe para instanciação do componente: Set objAdRot = Server.CreateObject("MSWC.AdRotator")

Arquivos utilizados pelo componente
Arquivo/DLL Descrição Adrot.dll Nome da DLL que contém o componente Ad Rotator. Rotator Schedule Um arquivo texto com informações que o componente Ad Rotator utiliza para gerenciar e exibir os banners. Página Redirect URL do arquivo de redirecionamento opcional. Pode ser uma página ASP, uma DLL ou uma aplicação CGI. Normalmente inclui script para analisar o "query string" enviado pelo componente Ad Rotator, contabilizar as informações sobre visitantes, e redirecionar o usuário para o URL associado com o anúncio que foi clicado.

Layout do arquivo Rotator Schedule
Esse arquivo consiste de duas seções, separadas por uma linha contendo um asterisco (*): informações para todas as imagens e informações de cada anúncio:

Informações para todas as imagens
Aplica-se a todos os banners na página. Parâmetro REDIRECT WIDTH HEIGHT BORDER Significado Especifica o URL da página Redirect. Pode ser URL absoluto ou relativo ao diretório virtual. Largura (em pixels) dos banners (default=60). Altura (em pixels) dos banners (default=440). Espessura (em pixels) da borda ao redor dos banners (default=1). Pode ser substituído pela propriedade Border.

Informações de cada banner
Contêm informações sobre cada banner na página. Todos os elementos de cada banner são opcionais. Coloque hifen (-) no lugar de um elemento omitido. Elemento Significado adURL URL do banner a ser exibido. adHomePageUrl URL para a homepage do anunciante para onde o usuário será redirecionado quando clicar o banner. texto alternativo Texto a ser exibido quando o browser não suportar imagens ou quando a opção de exibir imagens estiver desabilitada. peso relativo Um número que especifica o peso relativo desse anúncio. Todos os pesos de todos os anúncios são somados e o tempo de exibição é determinado pela porcentagem do peso em relação ao total. 51

Componentes do IIS

Ad Rotator

Exemplo do arquivo Rotator Schedule
RDRC cnaiiaap EIET otblz.s WIDTH500 HEIGHT80 BORDER 0 * /mgn/ci.i iaestppgf ht:/w.oae1cmtpp tp/wwnvtc.o/ci Gi d TPI ua o C/P 5 0 /mgn/h.i iaesppgf ht:/w.oae1cmpp tp/wwnvtc.o/h GuiadoPHP 5 0

Exemplo da Página Redirect
<% ' otblz.s cnaiiaap strUserName=Session("USERNAME") strRemoteAddress=Request.ServerVariables("REMOTE_ADDR") s r R =R q e t Q e y t i g " R " tUL eus.urSrn(UL) s r r w e =S s i n " s r r w e " tBosr eso(UeBosr) ' 'códigopararegistrarasinformaçõesemumbancodedados ' R s o s . e i e ts r R epneRdrc tUL %>

Utilização do componente Ad Rotator
Para colocar os banners em seu site, crie uma instância do objeto antes de colocá-lo onde ele será exibido.
<% DimobjAdRot S to j d o =S r e . r a e b e t " S C A R t t r ) e bARt evrCetOjc(MW.doao" %> <HR> <%=objAdRot.GetAdvertisement("rotsched.txt")%> <HR> B n i d àp g n d N v t c P rf v rv s t n s o p t o i a o e . evno áia a oae. o ao iie oss arcndrs

52

Componentes do IIS

Ad Rotator

Propriedades do componente
Border
Especifica a espessura (em pixels) da borda ao redor do banner. objAdRot.Border = inTamanho

Clickable
Define ou retorna um valor lógico indicando se o banner é um hiperlink (default=True). objAdRot.Clickable = blnClicavel

TargetFrame
Especifica onde o hiperlink associado a um banner deve ser aberto (_TOP, _NEW, _CHILD, _SELF, _PARENT, ou _BLANK, default=NO FRAME). objAdRot.TargetFrame = strNomeFrame

Método do componente
GetAdvertisement
Retorna o próximo anúncio do arquivo Rotator Schedule. Cada vez que o script é executado, tal quando o usuário abre ou recarrega uma página, o método retorna o próximo anúncio programado. objAdRot.GetAdvertisement(strArqRotSched) Parâmetro strArqRotSched Significado Especifica a localização do arquivo Rotator Schedule relativo ao diretório virtual.

53

Componentes do IIS

Browser Capabilities

Browser Capabilities
Esse componente permite determinar os recursos suportados pelos browsers clientes. Informa os recursos que cada browser suporta, baseado no arquivo browscap.ini, localizado no mesmo diretório da browscap.dll. Antes de você criar páginas super incrementadas, é bom lembrar que nem todos os browsers suportam recursos tais como: frames, som de fundo, applets Java e tabelas. Sintaxe para instanciação do componente: Set objTipoBrowser = Server.CreateObject(“MSWC.BrowserType”)

Arquivos utilizados pelo componente
Arquivo/DLL Descrição Browscap.dll Nome da DLL que contém o componente Browser Capabilities. Browscap.ini Arquivo texto com informações sobre os recursos suportados por um grande número de browsers.

Funcionamento do componente
Quando um browser se conecta a um servidor, ele envia um header HTTP User Agent, que identifica o browser e o número de sua versão. O componente Browser Capabilities utiliza esse header para localizar uma entrada no arquivo Browscap.ini que corresponda a esse browser. Se for encontrada um associação, o componente Browser Capabilities assume as propriedades contidas no arquivo Browscap.ini que coincide com o header User Agent. Se não encontrar uma associação, ele assume as propriedades default. Se o componente não encontrar uma associação e as propriedades default não forem especificadas no arquivo Browscap.ini, ele define cada propriedade com o string "UNKNOWN". O arquivo Browscap.ini pode ser editado para incluir novos browsers, ou novos recursos para browsers existentes. É possível obter o arquivo browscap.ini atualizado no site www.asptracker.com, ou em www.cyscape.com/browscap. Veja abaixo um pequeno fragmento do arquivo Browscap.ini criado por Juan Llivre no site www.asptracker.
; S E5 0 MI . [ E5 0 I .] bosrI rwe=E Vrin50 eso=. fae=re rmsTu tbe=re alsTu coisTu oke=re backgroundsounds=True vsrp=re bcitTu jvsrp=re aacitTu jvapesTu aaplt=re AtvXotosTu cieCnrl=re DHTML=True XML=True

54

Componentes do IIS

Browser Capabilities

Utilização do componente
<% Dimbc S tb =S r e . r a e b e t “ S C B o s r y e ) e c evrCetOjc(MW.rweTp” %> Nome do browser: <%= bc.browser %><p> Versãodobrowser:<%=bc.version%><p> <%if(bc.frames=TRUE)then%> Obrowserpermiteframes<p> <% else %> ObrowserNÃOpermiteframes<p> <% end if %> <%if(bc.tables=TRUE)then%> Obrowserpermitetabelas<p> <% else %> ObrowserNÃOpermitetabelas<p> <% ed f ni setbc=nothing %>

Propriedades do componente
Relacionamos abaixo as propriedades mais utilizadas. Propriedade Descrição ActiveXControls Especifica se o browser suporta controles Activex. Backgroundsounds Especifica se o browser suporta som de fundo. Beta Especifica se a versão do browser é beta. Browser Especifica o nome do browser. Cookies Especifica se o browser suporta cookies. Frames Especifica se o browser suporta frames. Javaapplets Especifica se o browser é capaz de executar applets Java. Javascript Especifica se o browser suporta JavaScript. Majorver Especifica o número mais significativo da versão do browser. Minorver Especifica o número menos significativo da versão do browser. Platform Especifica a plataforma na qual o browser está sendo executado. Tables Especifica se o browser suporta tabelas. Vbscript Especifica se o browser suporta VBScript. Version Especifica o número da versão do browser.

55

Componentes do IIS

Content Linking

Content Linking
O componente Content Linking cria tabelas de conteúdo para páginas Web, e vincula-as sequencialmente como páginas de um livro. Elimina a necessidade de ajustar os links manualmente quando as páginas são adicionadas ou excluídas. Utiliza um arquivo texto com a lista de páginas e a ordem em que devem ser exibidas. Sintaxe para instanciação do componente: Set objNextLink = Server.CreateObject(“MSWC.NextLink”)

Arquivos utilizados pelo componente
Arquivo/DLL NextLink.dll Content Linking List Descrição Nome da DLL que contém o componente Content Linking. Arquivo texto que reside no diretório virtual e contém uma lista de URLs de páginas, na ordem em que elas devem ser exibidas. Cada página ocupa uma linha do arquivo.

Layout do arquivo Content Linking List
Contém uma linha de texto para cada URL na lista. Cada linha termina com um Carriage Return e cada item na linha é separado por um caractere TAB. Cada linha do arquivo tem a seguinte sintaxe: URL_doc [descrição [comentário]] Item URL_pag Significado Path virtual ou relativo do documento web. Não podem ser paths físicos, nem URLs absolutos (que começam com http://, // ou \\). String opcional descrevendo a página. String opcional contendo comentário sobre a página, e não é visualizado pelo usuário.

descrição comentário

Exemplo do arquivo Content Linking List
pg.s aAap pg.s aBap pg.s aCap pg.s aDap Itouã nrdço O j t si t í s c s beo nrneo Componentes O j t sd s r t t n beo e cipig

56

Componentes do IIS

Content Linking

Utilização do componente
O script abaixo cria uma tabela de conteúdo, usando uma lista não ordenada:
<UL> <% S tN x L n =S r e . r a e b e t( M W . e t i k ) e etik evrCetOjc “SCNxLn” n m i e s=N x L n . e L s C u t( n x l n . x ” u_tn etikGtiton “etiktt) Fori=1Tonum_itens %> <LI><AHREF=”<%=NextLink.GetNthURL(“nextlink.txt”,I) %>“> <%=NextLink.GetNthDescription(“nextlink.txt”,i)%> </A> <% Nx et %> </UL>

O script abaixo adiciona os botões "próxima página" e "página anterior" a um arquivo HTML.
<% S tN x L n =S r e . r a e b e t( M W . e t i k ) e etik evrCetOjc “SCNxLn” n m i e s=N x L n . e L s C u t " e t i k t t ) u_tn etikGtiton(nxln.x" p g a u l=N x L n . e L s I d x " e t i k t t ) a_ta etikGtitne(nxln.x" If(pag_atual>1)Then %> <AHREF=”<%=NextLink.GetPreviousURL(“nextlink.txt”)%> “> PáginaAnterior</A> <% E dI n f If(pag_atual<>num_itens)Then %> <AHREF=”<%=NextLink.GetNextURL(“nextlink.txt”)%>“> PróximaPágina</A> <% End IF %>

O script acima pode ser colocado em um arquivo include (ver página 16) que pode usado em todas as páginas que fazer parte da cadeia de links.

57

Componentes do IIS

Content Linking

Métodos do componente
GetListCount
Retorna o número de itens do arquivo Content Linking List. objNextLink.GetListCount(strListaVinculo)

GetListIndex
Obtém o índice da página atual do arquivo Content Linking List. Zero é retornado quando a página não estiver na lista. objNextLink.GetListIndex(strListaVinculo)

GetNextDescription
Retorna a descrição do próximo item da lista. objNextLink.GetNextDescription(strListaVinculo)

GetNextURL
Obtém o URL do próximo item da lista. Se a página atual não fizer parte da lista, o URL do último item é retornado. objNextLink.GetNextURL(strListaVinculo)

GetNthDescription
Retorna a descrição do item de número N da lista. objNextLink.GetNthDescription(strListaVinculo)

GetNthURL
Obtém o URL do item de número N da lista. Se houver menos do que N itens na lista, o URL do último item é recuperado. objNextLink.GetNthURL(strListaVinculo)

GetPreviousDescription
Retorna a descrição do item anterior da lista. objNextLink.GetPreviousDescription(strListaVinculo)

GetPreviousURL
Retorna o URL do item anterior da lista; se a página atual não fizer parte da lista, o URL da primeira página é retornado. objNextLink.GetPreviousURL(strListaVinculo)

58

Componentes do IIS

Content Rotator

Content Rotator
O componente Content Rotator permite exibir automaticamente diferentes seções de código HTML em uma página. Cada vez que o usuário solicita a página, o objeto exibe uma seção de código HTML diferente, baseado na informação especificada em um arquivo texto, que contém diferentes seções de código HTML. O código HTML pode conter tags HTML que permitem exibir qualquer tipo de conteúdo: texto, imagens ou hiperlinks. Um exemplo de utilização é exibir uma dica do dia diferente na página, cada vez que o usuário visitar a página. Sintaxe para instanciação do componente: Set objContRot = Server.CreateObject("MSWC.ContentRotator")

Arquivos utilizados pelo componente
Arquivo/DLL Controt.dll Descrição Nome da DLL que contém o componente Content Rotator. Content Schedule Um arquivo de texto contendo diferentes seções de código HTML que o componente utiliza e exibe para o cliente.

Layout do arquivo Content Schedule
Consiste de várias entradas para seções de código HTML. Cada entrada consiste de duas partes: uma linha que começa com dois sinais de porcentagem (%%) e contém um peso relativo e qualquer comentário e, uma segunda parte que contém o próprio código HTML.

Sintaxe de cada seção:
%% [#intPeso] [//comentário] códigoHTML Elemento %% #intPeso Significado Identifica o início de uma seção de código HTML. Parâmetro opcional que especifica um número entre 0 e 10000 que indica o peso relativo dessa seção. Todos os pesos de todas as seções são somados e o tempo de exibição é determinado pela porcentagem do peso em relação ao total. Parâmetro opcional contendo comentários sobre a entrada. Não é exibido para o usuário.Se ocupar mais de uma linha, cada linha adicional deve iniciar com o delimitador (%%) seguindo pelo delimitador de comentário (//). Código HTML exibido pelo objeto.Pode incluir uma ou mais linhas.

//comentário

códigoHTML

59

Componentes do IIS

Content Rotator

Exemplo do arquivo Content Schedule
%%//Nafaltadopesoassumeodefault1 C n e an s a p b i a õ s ohç oss ulcçe. %%#2//Comentáriospodemocuparmaisdeumalinha. %%//Linhaadicionaldecomentário %%//Aindaoutralinhadecomentário <FONTFACE=”ARIAL,HELVETICA”SIZE=”2"> Conhe aoúltimolançamento: ç <H1>TCP/IP</H1> </FONT> %% #3 // Exibe uma imagem <IMGSRC=”/imagens/logo.gif”> %% L c l z a< H E = l v a i s a p > i r r a / >m i p ó i a oaie A RF”irra.s”Lvai<A as rxm.

Utilização do componente
O exemplo abaixo exibe uma dica diferente cada vez que o usuário visualizar a página.
<% S tP o D c =S r e . r a e b e t “ S C C n e t o a o ” e rxia evrCetOjc(MW.otnRttr) Rsos.rt PoDc.hoeotn(/ia/otn.x” epneWie rxiaCosCnet“DcsCnettt) %>

Métodos do componente
ChooseContent
Seleciona uma seção de código HTML do arquivo content schedule, e a exibe na página. Cada vez que o script for executado, uma nova seção de código HTML é selecionada do arquivo. objContentRotator.ChooseContent(strContentSchedule) Parâmetro strContentSchedule Significado Especifica a localização do arquivo Content Schedule.

GetAllContent
Exibe todas as seções de código HTML contidas no arquivo content schedule. Cada seção é exibida separada por uma tag <HR>. objContentRotator.ChooseContent(strContentSchedule) Parâmetro strContentSchedule Significado Especifica a localização do arquivo Content Schedule.

60

Componentes do IIS

Counters

Counters
O componente Counters pode ser usado para criar, armazenar, incrementar e retonar qualquer número de contadores individuais. Todos os contadores são armazenados no arquivo texto Counters.txt que pode ser encontrado no mesmo diretório do componente Counters.dll. Sintaxe para instanciação do componente: Set objContadores= Server.CreateObject("MSWC.Counters")

Arquivos utilizados pelo componente
Arquivo/DLL Counters.dll Counters.txt Descrição Nome da DLL que contém o componente Counters. Arquivo texto contendo os valores atuais dos contadores adicionados ao objeto Counters do site. Pode conter qualquer número de valores de contadores e não deve ser editado manualmente. Também não deve ser renomeado.

Utilização do componente
Existe uma única cópia do arquivo Counters.txt, que todas as instâncias do componente devem utilizar. A maneira mais comum de utilização é criar uma instância no arquivo Global.asa, disponível para todas as páginas no site. Por exemplo:
<OBJECTID="objContador"RUNAT="Server"SCOPE="Application" PROGRID="MSWC.Counters"

Métodos do componente
Get
Retorna o valor corrente de um contador. Se o contador não existir, então ele será criado com valor inicial de zero. objContador.Get(strNomeContador)

Increment
Incrementa um contador. Se o contador não existir, então ele será criado com valor inicial de 1. objContador.Increment(strNomeContador)

Remove
Remove um contador do componente Counters e elimina sua entrada do arquivo Counters.txt. objContador.Remove(strNomeContador)

Set
Cria um contador no componente Counters e adiciona uma entrada no arquivo Counters.txt. Retorna o novo valor do contador. objContador.Set(strNomeContador, intValorContador) 61

Componentes do IIS

Logging Utility

Logging Utility (ASP 3.0)
O componente Logging Utility é usado para criar um objeto IISLog, que permite a leitura do arquivo de log do IIS. O usuário que estiver acessando o script que instancia o componente IISLog deve estar autenticado como um Administrador ou Operador no servidor onde o IIS estiver sendo executado. Sintaxe para instanciação do componente: Set obj = Server.CreateObject("MSWC.IISLog")

Arquivos utilizados pelo componente
Arquivo/DLL Descrição Logscrpt.dll Nome da DLL que contém o componente Logging Utility.

Métodos do componente
AtEndOfLog
Retorna True se todos os registros do arquivo log foram lidos. AtEndOfLog()

CloseLogFiles
Fecha os arquivos de log abertos. CloseLogFiles (modo) Parâmetro modo ForReading=1 Significado Especifica quais arquivos serão fechados. Fecha todos os arquivos que foram abertos para leitura. ForWriting=2 Fecha todos os arquivos que foram abertos para gravação. AllOpenFiles=32 Fecha todos os arquivos abertos.

OpenLogFiles
Abre um arquivo de log para leitura ou gravação. OpenLogFile( nomearq, [modo], [serviço], [instância], [formato] ) Parâmetro nomearq modo Significado Nome do arquivo de log a ser aberto. Parâmetro opcional indicando se o arquivo log será aberto para leitura ou gravação. ForReading=1 Fecha todos os arquivos que foram abertos para leitura (default). ForWriting=2 Fecha todos os arquivos que foram abertos para gravação. serviço Parâmetro opcional indicando que somente os registros do serviço especificado devem ser retornados. instância Parâmetro opcional indicando que somente os registros da instância do serviço especificado devem ser retornados. formato Parâmetro opcional indicando o formato para arquivos log abertos para gravação.

62

Componentes do IIS

Logging Utility

ReadFilter
Permite ler registros dentro de um intervalo de data e hora. ReadFilter( [datahorainicial], [datahorafinal] ) Parâmetro Descrição datahorainicial Parâmetro opcional indicando a data e hora inicial. datahorafinal Parâmetro opcional indicando a data e hora final.

ReadLogRecord
Lê o próximo registro de log do arquivo de log corrente. ReadLogRecord()

WriteLogRecord
Grava um registro de log no arquivo de log corrente, lido de um outro objeto IISLog. WriteLogRecord( objIISLog ) Parâmetro objIISLog Descrição O objeto indicando onde os registros de log devem ser lidos.

Propriedades do componente
BytesReceived
Retorna o número de bytes recebidos na solicitação do browser. numbytes = BytesReceived

BytesSent
Retorna o número de bytes enviados na resposta para o browser. numbytes = BytesSent

ClientIP
Retorna o endereço IP do cliente ou seu host (proxy server). var = ClientIP

Cookie
Retorna o conteúdo de qualquer cookie enviado na solicitação (request). var = Cookie

CustomFields
Retorna um array de headers de cliente adicionados à solicitação (request). var = CustomFields Parâmetro var Descrição Um array bidimensional de variantes. Cada par de variantes forma um par chave-valor que descreve o header HTTP. 63

Componentes do IIS

Logging Utility

DateTime
Retorna a data e hora da solicitação (request) (hora GMT). var = DateTime

Method
Retorna o tipo de operação (GET ou POST). var = Method

ProtocolStatus
Retorna o código de status do protocolo HTTP retornado para o cliente. var = ProtocolStatus

ProtocolVersion
Retorna a versão do protocolo. var = ProtocolVersion

Referer
Retorna o URL da página contendo o link que iniciou a solicitação (request) (se existir). var = Referer

ServerIP
Retorna o endereço IP do servidor IIS. var = ServerIP

ServerName
Retorna o nome da máquina do servidor IIS. var = ServerName

ServerPort
Retorna o número da porta onde a request foi recebida. var = ServerPort

ServiceName
Retorna o nome do serviço, tal como "MSFTPSVC" ou "W3SVC". var = ServiceName

TimeTaken
Retorna o tempo total de processamento para obter e criar a página retornada. var = TimeTaken

URIQuery
Retorna o parâmetro no query string acrescentado ao URL na solicitação (request). var = URIQuery 64

Componentes do IIS

Logging Utility

URIStem
Retorna o URL que foi solicitado. var = URIStem

UserAgent
Retorna o string User agent enviado pelo browser cliente. var = UserAgent

UserName
Retorna o nome de logon do usuário, se ele não estiver acessando o servidor anônimamente. var = UserName

Win32Status
Retorna o código de status Win32 retornado após o processamento da solicitação (request). var = Win32Status

65

Componentes do IIS

MyInfo

MyInfo
O componente MyInfo cria um objeto MyInfo que fornece um repositório para armazenamento persistente de pares nome/valor, ou qualquer outro tipo de informação string, acessíveis no site inteiro. Os dados são armazenados no formato XML no arquivo MyInfo.xml localizado no diretório inetsrv do computador do servidor web. O componente MyInfo foi originalmente introduzido no Personal Web Server, para manter informações pessoais fornecidas pelo administrador do servidor, através de um conjunto de propriedades predefinidas. No IIS essas propriedades não são implementadas.

Arquivos utilizados pelo componente
Arquivo/DLL Myinfo.dll Myinfo.xml Descrição Nome da DLL que contém o componente MyInfo. Arquivo onde o componente MyInfo armazena seus valores. Não pode ser renomeado.

Utilização do componente
Deve ser criado um objeto MyInfo no arquivo Global.asa através do seguinte código:
<OBJECTID="objMyInfo" RUNAT="Server" SOE"plcto" CP=Apiain PROGID="MSWC.MyInfo"> </OBJECT>

O componente MyInfo não têm propriedades ou métodos por default. Você pode criar novas propriedades MyInfo simplesmente atribuindo um valor string à propriedade. Por exemplo:
<% o j y n o E i o a=“ o a e ” bMIf.dtr Nvtc o j y n o E i o =“ u e sP a e ” bMIf.dtr Rbn rts objMyInfo.Endereco="RuaConsMoreiradeBarros1084" %>

Como qualquer propriedade de componente, seu valor pode ser retornado em qualquer página do site, através do código abaixo:
<% s r o e d t r =o j y n o E i o a tNmEioa bMIf.dtr s r o e d t r=o j y n o E i o tNmEio bMIf.dtr s r n e e o=o j y n o E d r c tEdrc bMIf.neeo %>

66

Componentes do IIS

Page Counter

Page Counter
O componente Page Counter cria um objeto PageCounter que mantém registro do número de vezes que uma página foi acessada. O componente Page Counter usa um objeto interno do IIS para contar o número de vezes que cada página é acessada. Quando uma instância do objeto PageCounter é criada na página, o objeto obtém o valor do contador de acessos dessa página. O componente periodicamente grava os dados em um arquivo texto no servidor, e no caso de shutdown ou erro, o valor corrente não é perdido. Sintaxe para instanciação do componente: Set obj = Server.CreateObject("MSWC.PageCounter")

Arquivos utilizados pelo componente
Arquivo/DLL Pagecnt.dll Hit Count Data Descrição Nome da DLL que contém o componente Page Counter. Arquivo contendo o valor corrente do contador de acessos para cada página na qual o objeto PageCounter está sendo usado (nome default=hitcnt.cnt).

Métodos do componente
Hits
Retorna o número de hits em uma página. objPgCntr.Hits([strPathInfo)] Parâmetro strPathInfo Exemplo
<% D mo j g n r l g i C u t i bPCt, nHton S to j g n r=S r e . r a e b e t " S C P g C u t r ) e bPCt evrCetOjc(MW.aeone" l g i C u t=o j g n r H t ( / p s H m p g . s " nHton bPCt.is"Ap/oeaeap) %> Ahomepagefoiacessada<%=lngHitCount%>vezes

Significado Path virtual e nome da página. Se não especificado, retorna a contagem para a página corrente.

PageHit
Incrementa de 1 o contador para a página corrente. Object.PageHit()

Reset
Reinicializa o número de hits em uma página para zero. objPgCntr.Reset([strPathInfo)] Parâmetro strPathInfo Significado Path virtual e nome da página. Se não especificado, retorna a contagem para a página corrente. 67

Componentes do IIS

Permission Checker

Permission Checker
O componente Permission Checker permite utilizar o modelo de segurança do Windows NT/2000 para determinar se um usuário tem permissão para ver um arquivo armazenado em um volume NTFS. Necessita das opções de segurança Basic Clear Text ou Windows NT Challenge Response ativadas no servidor web. Sintaxe para instanciação do componente: Set obj= Server.CreateObject("MSWC.PermissionChecker")

Arquivo utilizado pelo componente
Arquivo/DLL Permchk.dll Descrição Nome da DLL que contém o componente Permission Checker.

Método do componente
HasAcess
Determina se o usuário corrente tem acesso a um arquivo especificado no argumento strPath. objPermChkr.HasAccess(strPath) Parâmetro strPath Exemplo
<% D mo j e m h r b n e m s a i bPrCk, lPriso S to j e m h r=S r e . r a e b e t( M W . e m s i n h c e " e bPrCk evrCetOjc "SCPrisoCekr) b n e m s a =o j e m h r H s c e s " a S g a p ) lPriso bPrCk.aAcs(Pge.s" I bnemsa Te f lPriso hn %> <AHREF="PagSeg.asp">PáginadeSegurança</A> <% E dI n f %>

Significado Path relativo (físico ou virtual) para o arquivo no qual se quer determinar direito de acesso.

68

Componentes do IIS

Tools

Tools
O componente Tools fornece métodos para verificar a existência de um arquivo, processar um formulário HTML, ou gerar um número aleatório. Sintaxe para instanciação do componente: Set objTools = Server.CreateObject("MSWC.Tools")

Arquivo utilizado pelo componente
Arquivo/DLL Tools.dll Descrição Nome da DLL que contém o componente Tools.

Métodos do componente
FileExists
Retorna -1 se o URL existe; caso contrário, retorna 0. Similar a FileSystemObject.FileExists. Tools.FileExists(URL) Exemplo
< I o j o l . i e x s s " u l u r g f )T e % f bTosFlEit(qaqe.i" hn R s o s . r t " a q i oq a q e . i e i t " epneWie O ruv ulurgf xse Es le R s o s . r t " a q i oq a q e . i n oe i t " epneWie O ruv ulurgf ã xse End If %>

ProcessForm
Processa o conteúdo de um formulário submetido por um visitante do site. Lê um arquivo template, insere nele as informações criadas (provavelmente da coleção Request.Form) e, então grava o resultado no arquivo de saída. ProcessForm(Url_saída, Url_template, ponto_inserção) Parâmetro Url_saída Url_template Significado URL relativo do arquivo no qual os dados processados serão gravados. URL relativo do arquivo que contém o template, ou instruções para processamento dos dados. Pode conter scripts ASP entre delimitadores <% e %>, mas são tratados como texto comum e copiado para o arquivo de saída. Entretanto, se estiverem entre <%% e %%>, serão executados quando o template estiver sendo carregado. Parâmetro opcional indicando onde inserir, no arquivo de saída, os dados processados. Esse parâmetro não foi implementado nas versões iniciais do ProcessForm.

ponto_inserção

Random
Gera um número inteiro aleatório entre -32768 e 32767. Tools.Random Exemplo: Retorna um número aleatório entre 0 e 99.
<% = ( Abs( Tools.Random ) ) Mod 100 %>

69

Objetos de Scripting Run-Time

Dictionary

Objeto Dictionary
O objeto Dictionary armazena pares nome/valor (referenciados como chave e item, respectivamente) em um array. Cada item é associado a uma única chave. Sintaxe para instanciação do objeto: Set obj = CreateObject("Scripting.Dictionary") No exemplo abaixo é criado um objeto Dictionary chamado "carros", adiciona alguns pares chave/item e é exibido o valor do item para a chave "c".
<% D mc r o i ars S tc r o =C e t O j c ( S r p i g D c i n r ” e ars raebet“citn.itoay) cr.d “” “la asAd a, Eb” cr.d “” “uc” asAd b, Fsa cr.d “” “ui asAd c, Ad” R s o s . r t “ v l rc r e p n e t àc a e‘ ’é“c r o . t m “ ” epneWie O ao orsodne hv c arsIe(c) %>

S í ad s r p : ad o cit
"Ovalorcorrespondenteàchave‘c’éAudi"

Propriedades do Objeto Dictionary
CompareMode (somente em VBScript)
Define ou retorna o modo utilizado na comparação de strings em um objeto Dictionary. objetoDic.CompareMode [=compara] Argumento objetoDic compara Descrição Objeto Dictionary. Modo de comparação usado por funções tais como StrComp. vbBinaryCompare=0 Comparação binária. vbTextCompare=1 Comparação textual.

Count
Retorna o número de itens em um objeto Dictionary. objetoDic.Count

Item
Define ou retorna um item para uma chave especificada em um objeto Dictionary. objetoDic.Item(chave)[=novoitem] Argumento objetoDic chave novoitem Descrição Nome de uma coleção ou de um objeto Dictionary. Chave associada com o item sendo lido ou adicionado. Novo valor associado à chave. Usado somente com objeto Dictionary.

70

Objetos de Scripting Run-Time

Dictionary

Key
Define ou retorna o valor de uma chave em um objeto Dictionary. objetoDic.Key (chave) = novachave Argumento objetoDic chave novachave Descrição Objeto Dictionary. Chave existente. Novo valor da chave.

Métodos do Objeto Dictionary
Add
Adiciona um par chave/item a um objeto Dictionary. objetoDic.Add chave, item Argumento objetoDic chave item Descrição Objeto Dictionary. Chave associada ao item que está sendo adicionado. Item a ser adicionado.

Exists
Retorna True se a chave especificada existir no objeto Dictionary; caso contrário, retorna False. objetoDic.Exists (chave) Argumento objetoDic chave Descrição Objeto Dictionary. Chave a ser pesquisada no objeto Dictionary.

Items
Retorna um array contendo todos os itens em um objeto Dictionary. objetoDic.Items

Keys
Retorna um array contendo todas as chaves em um objeto Dictionary. objetoDic.Keys

Remove
Remove um par chave/item de um objeto Dictionary. objetoDic.Remove (chave) Argumento objetoDic chave Descrição Objeto Dictionary. Chave a ser removida do objeto Dictionary.

RemoveAll
Remove todos os pares chave/item de um objeto Dictionary. objetoDic.RemoveAll 71

Objetos de Scripting Run-Time

FileSystemObject

Objeto FileSystemObject
O bjeto FileSystemObject fornece acesso ao sistema de arquivos (“file system”) do computador. Permite acessar os arquivos existentes e criar novos arquivos. Sintaxe para instanciação do objeto: Set obj = CreateObject("Scripting.FileSystemObject") No exemplo abaixo é utilizado o método CreateTextFile do objeto FileSystemObject para criar um arquivo texto (c:\qqarq.txt) e gravar um texto nele.
<% d ma q y ,a q x ,n m ,p t i rss rtt oe ah S ta q y =C e t O j c ( S r p i g F l S s e O j c ” e rss raebet“citn.ieytmbet) S ta q x =a q y . r a e e t i e “ : q a q t t ,T u ) e rtt rssCetTxFl(c\qr.x” re p t =a q y . e A s l t P t N m ( c \ q r . x ” ah rssGtboueahae“:qaqtt) n m =a q y . e F l N m ( a h oe rssGtieaept) a q x . r t L n ( t x oas rg a a o ) rttWieie“et e rvd” aqx.ls rttCoe I a q y . i e x s s p t )T e f rssFlEit(ah hn R s o s . r t ( S ua q i o ‘ &g t a e&“ ,f ic i d . ) epneWie “e ruv, “ enm ‘ o rao” E dI n f %>

Propriedades do objeto
Drives
Retorna uma coleção Drives contendo todos os drives acessíveis em um computador local. objetoFSO.Drives

Métodos do objeto
BuilPath
Anexa um nome a um path. objetoFSO.BuildPath (path, nome) Argumento objetoFSO path nome Descrição Nome de um FileSystemObject. Path no qual um nome será anexado. Nome a ser anexado ao path.

CopyFile
Copia um ou mais arquivos. objetoFSO.CopyFile fonte, destino [,sobrepõe] Argumento objetoFSO fonte destino sobrepõe True False 72 Descrição Nome de um FileSystemObject. Arquivos a serem copiados (aceita caracteres curinga). Destino onde os arquivos serão copiados. Indica se arquivos existentes são sobrepostos. Sobrepõe arquivos existentes. Não sobrepõe em arquivos existentes.

Objetos de Scripting Run-Time

FileSystemObject

CopyFolder
Copia uma ou mais pastas, incluindo arquivos e subpastas. objetoFSO.CopyFolder fonte, destino [,sobrepõe] Argumento objetoFSO fonte destino sobrepõe True False Descrição Nome de um FileSystemObject. Pastas a serem copiadas (aceita caracteres curinga no último componente do path). Destino onde as pastas serão copiadas. Indica se pastas existentes são sobrepostas. Sobrepõe pastas existentes. Não sobrepõe em pastas existentes.

CreateFolder
Cria uma nova pasta. objetoFSO.CreateFolder (nomepasta) Argumento objetoFSO nomepasta Descrição Nome de um FileSystemObject. Nome da pasta ou diretório a ser criado.

CreateTextFile
Cria um arquivo texto e retorna um objeto TextStream que pode ser utilizado para ler e gravar no arquivo. objeto.CreateTextFile (nomearq [,sobrepõe [,unicode]]) Argumento objeto nomearq sobrepõe True False unicode True False Descrição Nome de um FileSystemObject ou objeto Folder. Nome do arquivo a ser criado. Indica se os arquivos existentes são sobrepostos. Sobrepõe os arquivos existentes. Não sobrepõe arquivos existentes. Formato Unicode ou ASCII. Cria o arquivo no formato Unicode. Cria o arquivo no formato ASCII (default).

DeleteFile
Elimina um ou mais arquivos (usando caracteres curinga). objetoFSO.DeleteFile nomearq [opção] Argumento objetoFSO nomearq opção True False Descrição Nome de um FileSystemObject. Nome do arquivo a ser eliminado. Eliminar ou não arquivos com o atributo “read-only”. Elimina também arquivos com o atributo “read-only”. Não elimina arquivos com o atributo “read-only”.

73

Objetos de Scripting Run-Time

FileSystemObject

DeleteFolder
Elimina uma pasta e seu conteúdo. objetoFSO.DeleteFolder nomepasta [opção] Argumento objetoFSO nomepasta opção True False Descrição Nome de um FileSystemObject. Nome da pasta a ser eliminada (permite caracteres curinga no último componente do path). Eliminar ou não pastas com o atributo “read-only”. Elimina também pastas com o atributo “read-only”. Não elimina pastas com o atributo “read-only”.

DriveExists
Retorna True se o drive especificado existir; caso contrário, retorna False. objetoFSO.DriveExists (drive) Argumento objetoFSO drive Descrição Nome de um FileSystemObject. Letra do drive ou especificação completa do path.

FileExists
Retorna True se o arquivo especificado existir; caso contrário, retorna False. objetoFSO.FileExists (nomearq)

FolderExists
Retorna True se a pasta especificada existir; caso contrário, retorna False. objetoFSO.FolderExists (nomepasta)

GetAbsolutePathName
Retorna o path completo da raiz do drive para o path especificado. objetoFSO.GetAbsolutePathName (path)

GetBaseName
Retorna o nome do último componente de um path, menos a extensão de arquivo. objetoFSO.GetBaseName (path)

GetDrive
Retorna um objeto Drive correspondendo ao drive no path especificado. objetoFSO.GetDrive (path)

GetDriveName
Retorna o nome do drive no path especificado. objetoFSO.GetDriveName (path)

74

Objetos de Scripting Run-Time

FileSystemObject

GetExtensionName
Retorna a extensão para o último componente em um path. objetoFSO.GetExtensionName (path)

GetFile
Retorna um objeto File correspondendo ao arquivo no path especificado. objetoFSO.GetFile (nomearq)

GetFileName
Retorna o último componente do path especificado que não é parte da especificação do drive. objetoFSO.GetFileName (path)

GetFolder
Retorna um objeto Folder correspondendo à pasta no path especificado. objetoFSO.GetFolder (nomepasta)

GetParentFolderName
Retorna o nome da pasta na qual o último componente do path especificado está contido. objetoFSO.GetParentFolderName (nomepasta)

GetSpecialFolder
Retorna um tipo de pasta especial. objetoFSO.GetSpecialFolder (tipo) Argumento Descrição objetoFSO Nome de um FileSystemObject. tipo Tipo de pasta especial. WindowsFolder=0 Pasta Windows, que contém os arquivos instalados pelo Windows. SystemFolder=1 Pasta System, que contém bibliotecas, fontes e drivers. TemporaryFolder=2 Pasta Temp, utilizada para armazenar arquivos temporários.

GetTempName
Retorna um nome aleatório que pode ser utilizado pelo método CreateTextFile para criar um arquivo ou uma pasta temporária. objetoFSO.GetTempName

75

Objetos de Scripting Run-Time

FileSystemObject

MoveFile
Move um ou mais arquivos. objetoFSO.MoveFile destino Argumento objetoFSO destino Descrição Nome de um FileSystemObject. Path de destino para onde será movido o arquivo.

MoveFolder
Move uma ou mais pastas. objetoFSO.MoveFolder fonte, destino

OpenTextFile
Abre um arquivo e retorna um objeto TextStream que pode ser utilizado para ler e acrescentar dados ao arquivo. objetoFSO.OpenTextFile (nomearq [,modoes [criar [,formato]]]) Argumento objetoFSO nomearq modoes ForReading=1 ForWriting=2 ForAppending=8 criar True False formato TristateUseDefault=-2 TristateTrue=-1 TristateFalse=0 Descrição Nome de um FileSystemObject. Nome do arquivo a ser aberto. Modo de entrada/saída. Abre o arquivo somente para leitura. Abre o arquivo para gravação. Abre o arquivo e grava a partir do fim do arquivo. Criar ou não o arquivo se ele ainda não existir. Cria o arquivo se ele ainda não existir. Não cria o arquivo se ainda não existir. Formato do arquivo. Abre o arquivo usando a opção default do sistema. Abre o arquivo como Unicode. Abre o arquivo como ASCII.

76

Objetos de Scripting Run-Time

FileSystemObject

Objeto Drive
O objeto Drive fornece acesso às propriedades de um drive. No exemplo abaixo é utilizado o método GetDrive do objeto FileSystemObject para obter o objeto Drive para o drive "c".
<% S ta q y =C e t O j c ( S r p i g F l S s e O j c ” e rss raebet“citn.ieytmbet) S td v=a q y . e D i e “ ” e r rssGtrv(c) %>

Propriedade do objeto
AvailableSpace
Retorna a quantidade de espaço disponível em um disco. Ver também a propriedade FreeSpace na página XX. objetoDrv.AvailableSpace

DriveLetter
Retorna a letra do drive. objetoDrv.DriveLetter

DriveType
Retorna o tipo do drive especificado. objetoDrv.DriveType Argumento Descrição objetoDrv Objeto Drive. valor retornado 0 Desconhecido 1 Removível 2 Fixo 3 Rede 4 CD-ROM 5 RAM disk

FileSystem
Retorna o tipo de sistema de arquivo (FAT, NTFS, CDFS etc.) em uso no drive especificado. objetoDrv.FileSystem

FreeSpace
Retorna a quantidade de espaço disponível em um disco. objetoDrv.FreeSpace

IsReady
Retorna True se o drive especificado estiver pronto (“ready”); caso contrário, retorna False. objetoDrv.IsReady

77

Objetos de Scripting Run-Time

FileSystemObject

RootFolder
Retorna um objeto Folder representando a pasta raiz (“root folder”) do drive especificado. objetoDrv.RootFolder

SerialNumber
Retorna o número serial utilizado para identificar o volume do disco. objetoDrv.SerialNumber

ShareName
Retorna o nome compartilhado na rede do drive especificado. objetoDrv.ShareName

TotalSize
Retorna o espaço total (em bytes) de um drive. objetoDrv.TotalSize

VolumeName
Define ou retorna o nome do volume do drive especificado. objetoDrv.VolumeName [=novonome] Argumento objetoDrv novonome Descrição Objeto Drive. Nome a ser definido para o volume do drive.

78

Objetos de Scripting Run-Time

FileSystemObject

Objeto Folder
O objeto Folder fornece acesso às propriedades de uma pasta. No exemplo abaixo é utilizado o método GetFolder do objeto FileSystemObject para obter o objeto Folder e visualizar uma de suas propriedades (DateCreated).
<% D ma q y ,p s a e o d t c i c o i rss atdm, aaraa S ta q y =C e t O j c ( S r p i g F l S s e O j c ” e rss raebet“citn.ieytmbet) S tp s a e o=a q y . e F l e ( n m p s a ) e atdm rssGtodr“oeat” d t c i c o=p s a e o D t C e t d aaraa atdm.aerae %>

Propriedades do objeto
Attributes
Define ou retorna os atributos de arquivos ou pastas. objeto.Attributes [=atributos] Argumento Descrição objeto Objeto Folder. atributos Lista de atributos (podem ser combinados). Normal=0 Arquivo normal. ReadOnly=1 Arquivos somente de leitura ( “read-only”). Hidden=2 Arquivo oculto. System=4 Arquivo do sistema. Volume=8 Label do disco. Directory=16 Pasta ou diretório. Archive=32 O arquivo foi alterado desde o último backup. Alias=64 Link ou shortcut (atalho). Compressed=128 Arquivo compactado.

DateCreated
Retorna a data e a hora que um arquivo ou pasta foi criado. objetoFld.DateCreated Argumento objetoFld Descrição Objeto Folder.

DateLastAccessed
Retorna a data e a hora do último acesso a um arquivo ou pasta. objetoFld.DateLastAccessed Argumento objetoFld Descrição Objeto Folder.

DateLastModified
Retorna a data e a hora da última modificação feita em um arquivo ou pasta. objetoFld.DateLastModified Argumento objetoFld Descrição Objeto Folder. 79

Objetos de Scripting Run-Time

FileSystemObject

Drive
Retorna a letra do drive de um arquivo ou pasta. objetoFld.Drive

IsRootFolder
Retorna True se a pasta especificada é a pasta raiz (“root folder”); caso contrário, retorna False. objetoFld.IsRootFolder Argumento objetoFld Descrição Objeto Folder.

Name
Define ou retorna o nome de um arquivo ou pasta. objetoFld.Name [=novonome] Argumento objetoFld novonome Descrição Objeto Folder. Novo nome do objeto.

ParentFolder
Retorna o objeto Folder da pasta na qual o arquivo ou pasta especificada está contida. objetoFld.ParentFolder Argumento objetoFld Descrição Objeto Folder.

Path
Retorna o path para um arquivo, pasta ou drive. objetoFld.Path Argumento objetoFld Descrição Objeto Folder.

ShortName
Retorna o nome curto (8 caracteres mais 3 para extensão) de um arquivo ou pasta. objetoFld.ShortName Argumento objetoFld Descrição Objeto Folder.

ShortPath
Retorna o nome curto do path. Pastas com nomes grandes são retornados com o caractere ~ (til) , como por exemplo: a pasta Program Files, é retornada como Progra~1 objetoFld.ShortPath Argumento objetoFld 80 Descrição Objeto Folder.

Objetos de Scripting Run-Time

FileSystemObject

Size
Retorna o tamanho (em bytes) de um arquivo, ou o tamanho (em bytes) ocupado por todos os arquivos e subpastas contidos em uma pasta. objetoFld.Size Argumento objetoFld Descrição Objeto Folder.

SubFolders
Retorna uma coleção Folders de todas as pastas contidas na pasta especificada, inclusive arquelas com os atributos “hidden” e “system”. objetoFld.SubFolders Argumento objetoFld Descrição Objeto Folder.

Type
Retorna informação sobre o tipo de um arquivo ou pasta. objetoFld.Type Argumento objetoFld Descrição Objeto Folder.

Coleções do objeto Folder
Files
Retorna uma coleção Files de todos os objetos File em uma pasta, incluindo aqueles com os atributos “hidden” e “system”. objetoFld.Files Argumento objetoFld Descrição Objeto Folder.

Folders
Coleção do objetos Folder contidos em um objeto Folder.

Métodos do objeto
Copy
Copia um arquivo ou pasta. objeto.Copy destino [,sobrepõe] Argumento objeto destino sobrepõe True False Descrição Objeto Folder. Destino onde o arquivo ou pasta será copiado. Indica se arquivos e pastas existentes são sobrepostos. Sobrepõe arquivos e pastas existentes. Não sobrepõe arquivos e pastas existentes. 81

Objetos de Scripting Run-Time

FileSystemObject

Delete
Elimina um arquivo ou pasta. objeto.Delete [opção] Argumento objeto opção True False Descrição Objeto Folder. Eliminar ou não arquivos ou pastas com o atributo “readonly”. Elimina também arquivos ou pastas com o atributo “readonly”. Não elimina arquivos ou pastas com o atributo “read-only”.

Move
Move um arquivo ou pasta objeto.Move destino Argumento objeto destino Descrição Objeto Folder. Caminho de destino para onde será movido o arquivo ou a pasta.

82

Objetos de Scripting Run-Time

FileSystemObject

Objeto File
O objeto File fornece acesso a todas as propriedades de um arquivo. No exemplo abaixo é utilizado o método GetFile do objeto FileSystemObject para obter o objeto File e visualizar uma de suas propridades (DateCreated).
<% D ma q y ,a q e o d t c i c o i rss rdm, aaraa S ta q y =C e t O j c ( S r p i g F l S s e O j c ” e rss raebet“citn.ieytmbet) S ta q e o=a q y . e F l ( n m a q ) e rdm rssGtie“oer” d t c i c o=a q e o D t C e t d aaraa rdm.aerae %>

Propriedades do objeto
Attributes
Define ou retorna os atributos de arquivos ou de pastas. objeto.Attributes [=atributos] Argumento Descrição objeto Objeto File. atributos Lista de atributos (podem ser combinados). Normal=0 Arquivo normal. ReadOnly=1 Arquivos somente de leitura ( “read-only”). Hidden=2 Arquivo oculto. System=4 Arquivo do sistema. Volume=8 Label do disco. Directory=16 Pasta ou diretório. Archive=32 O arquivo foi alterado desde o último backup. Alias=64 Link ou shortcut (atalho). Compressed=128 Arquivo compactado.

DateCreated
Retorna a data e a hora que um arquivo ou pasta foi criado. objetoFile.DateCreated

DateLastAccessed
Retorna a data e a hora do último acesso a um arquivo ou pasta. objetoFile.DateLastAccessed

DateLastModified
Retorna a data e a hora da última modificação feita em um arquivo ou pasta. objetoFile.DateLastModified

Drive
Retorna a letra do drive de um arquivo ou pasta. objetoFile.Drive

83

Objetos de Scripting Run-Time

FileSystemObject

Name
Define ou retorna o nome de um arquivo ou pasta. objetoFile.Name [=novonome]

ParentFolder
Retorna o objeto Folder da pasta na qual o arquivo ou a pasta especificada está contida. objetoFile.ParentFolder

Path
Retorna o path para um arquivo, pasta ou drive. objetoFile.Path

ShortName
Retorna o nome curto (8 caracteres mais 3 para extensão) de um arquivo ou pasta. objetoFile.ShortName

ShortPath
Retorna o nome curto do path. Pastas com nomes grandes são retornados com o caractere ~ (til) , como por exemplo: a pasta Program Files, é retornada como Progra~1 objetoFile.ShortPath

Size
Retorna o tamanho (em bytes) de um arquivo, ou o tamanho (em bytes) ocupado por todos os arquivos e subpastas de uma pasta. objetoFile.Size

Type
Retorna informação sobre o tipo de um arquivo ou pasta. objetoFile.Type

Métodos do objeto
Copy
Copia um arquivo ou pasta. objetoFile.Copy destino [,sobrepõe] Argumento objetoFile destino sobrepõe True False Descrição Objeto File. Destino onde o arquivo ou pasta será copiado. Indica se arquivos e pastas existentes são sobrepostos. Sobrepõe arquivos e pastas existentes. Não sobrepõe arquivos e pastas existentes.

84

Objetos de Scripting Run-Time

FileSystemObject

CreateTextFile
Cria um arquivo texto e retorna um objeto TextStream que faz referência ao arquivo. objetoFile.CreateTextFile nomearq, overwrite, unicode Argumento objetoFile nomearq sobrepõe True False unicode Descrição Objeto File. Nome do arquivo a ser criado. Indica se os arquivos existentes são sobrepostos. Sobrepõe arquivos existentes. Não sobrepõe arquivos existentes. Formato Unicode (True) ou ASCII (False).

Delete
Elimina um arquivo ou pasta. objetoFile.Delete [opção] Argumento objetoFile opção True False Descrição Objeto File. Eliminar ou não arquivos ou pastas “read-only”. Elimina também arquivos ou pastas com “read-only”. Não elimina arquivos ou pastas “read-only”.

OpenAsTextStream
Abre um arquivo e retorna um objeto TextStream que pode ser utilizado para ler, gravar ou acrescentar dados ao arquivo. objetoFile.OpenAsTextStream ([modo, [formato]]) Argumento objetoFile modo ForReading=1 ForWriting=2 ForAppending=8 formato TristateUseDefault=-2 TristateTrue=-1 TristateFalse=0 Descrição Objeto File. Modo de entrada/saída. Abre o arquivo somente para leitura. Abre o arquivo para gravação. Abre o arquivo e grava a partir do fim do arquivo. Formato do arquivo. Abre o arquivo usando a opção default do sistema. Abre o arquivo como Unicode. Abre o arquivo como ASCII.

85

Objetos de Scripting Run-Time

TextStream

Objeto TextStream
O objeto TextStream permite acessar arquivos textos. Uma instância do objeto TextStream pode ser criada através dos métodos CreateTextFile ou OpenTextFile do objeto FileSystemObject, ou alternativamente, através do método OpenAsTextStream do objeto File. Exemplo:
<% D ma q y ,a q e t i rss rtse S ta q y =C e t O j c ( S r p i g F l S s e O j c ” e rss raebet“citn.ieytmbet) S ta q e t =a q y . r a e e t i e “ : q a q i o t t ,T u ) e rtse rssCetTxFl(c\qruv.x” re a q e t . r t L n “ e t as rg a a on a q i oq a q i o t t rtseWieie Txo e rvd o ruv qruv.x” aqet.ls rtseCoe %>

Propriedades do objeto
AtEndOfLine
Retorna True se o ponteiro do arquivo estiver posicionado imediatamente antes da marca de fim de linha em um arquivo TextStream; caso contrário, retorna False. objeto.AtEndOfLine Argumento objeto Descrição Objeto TextStream.

AtEndOfStream
Retorna True se o ponteiro do arquivo estiver posicionado no fim de um arquivo TextStream; caso contrário, retorna False. objeto.AtEndOfStream Argumento objeto Descrição Objeto TextStream.

Column
Retorna o número da coluna da posição do caractere corrente em um arquivo TextStream. objeto.Column Argumento objeto Descrição Objeto TextStream.

Line
Retorna o número da linha corrente em um arquivo TextStream. objeto.Line Argumento objeto Descrição Objeto TextStream.

86

Objetos de Scripting Run-Time

TextStream

Métodos do objeto
Close
Fecha um arquivo TextStream aberto. objeto.Close Argumento objeto Descrição Objeto TextStream.

Read
Lê um número especificado de caracteres de um arquivo TextStream e retorna o string resultante. objeto.Read (numcaract) Argumento objeto numcaract Descrição Objeto TextStream. Número de caracteres a serem lidos no arquivo.

ReadAll
Lê um arquivo TextStream e retorna o string resultante. objeto.ReadAll Argumento objeto Descrição Objeto TextStream.

ReadLine
Lê uma linha inteira do arquivo TextStream e retorna o string lido. objeto.ReadLine Argumento objeto Descrição Objeto TextStream.

Skip
Salta o número de caracteres especificado no arquivo TextStream. objeto.Skip (numcaract) Argumento objeto numcaract Descrição Objeto TextStream. Número de caracteres a serem saltados.

SkipLine
Salta a próxima linha na leitura do arquivo TextStream. objeto.SkipLine Argumento objeto Descrição Objeto TextStream.

87

Objetos de Scripting Run-Time

TextStream

Write
Grava um texto em um arquivo TextStream. objeto.Write (texto) Argumento objeto texto Descrição Objeto TextStream. Texto a ser gravado no arquivo.

WriteBlankLines
Grava o número especificado de caracteres “newline” no arquivo TextStream (grava linhas em branco). objeto.WriteBlankLines (numlinhas) Argumento objeto numlinhas Descrição Objeto TextStream. Número de caracteres "newline".

WriteLine
Grava o texto seguido do caractere “newline” no arquivo TextStream. objeto.WriteLine ([texto]) Argumento objeto texto Descrição Objeto TextStream. Texto a ser gravado no arquivo.

88

Objetos do VBScript

RegExp

Objeto RegExp
O objeto RegExp é usado para criar e executar uma expressão regular. Uma expressão regular permite pesquisar uma seqüência de caracteres em um string. Um objeto Match é criado cada vez que o objeto RegExp encontra uma correspondência (match). Zero ou mais correspondências (matches) podem ocorrer, e o objeto RegExp retorna uma coleção Matches de objetos Match.
<% s r a g t=" e t t s a d t s a oa e t d " tTre tse etno etd tsao SetobjRegExp=NewRegExp o j e E p P t e n=" e t " bRgx.atr ts* o j e E p I n r C s =F l e bRgx.goeae as objRegExp.Global=True ForEachMatchIncolMatches Response.Write"Correspondênciaencontradaem"&Match.FirstIndex&"." Response.Write"Valorencontradoé'"&Match.Value&"'.<BR>" Nx et %> ' r au ae p e s or g l r ci m xrsã eua ' e i eopadrãodepesquisa dfn 'itnü mnsua d misua dsige iúcls e aúcls 'defineoescopodapesquisa ' x c t ap s u s eeua eqia

S tc l a c e =o j e E p E e u e s r a g t e oMths bRgx.xct(tTre)

Métodos do objeto RegExp
Execute
Executa a busca de uma expressão regular em um string, retornando uma coleção Matches contendo um objeto Match para cada correspondência (match) encontrada. A propriedade Pattern deve ter sido especificada previamente com a expressão regular. objetoRegExp.Execute(string)

Replace
Executa a busca de uma expressão regular em um string original (str1), substituindo cada correspondência (match) encontrada por um outro string (str2). Se nenhuma correspondência for encontrada, retorna o string original. objetoRegExp.Replace (str1, str2)

Test
Executa uma busca de uma expressão regular em um string, e retorna um valor Booleano True ou False, indicando se a expressão regular foi encontrada. objetoRegExp.Test(string)

89

Objetos do VBScript

RegExp

Propriedades do objeto RegExp
Global
Retorna ou define um valor boleano, que indica se deve ser procurada todas as ocorrências (True) da expressão regular ou somente a primeira ocorrência (False), em um string. objetoRegExp.Global = True | False

IgnoreCase
Define ou retorna um valor boleano que determina se a expressão regular distingüe (False) ou não (True) minúsculas de maiúsculas. objetoRegExp.IgnoreCase = True | False

Pattern
Define ou retorna um string contendo a expressão regular. Deve ser especificada antes do objeto RegExp ser utilizado. Mais informações podem ser obtidas em http://msdn.microsoft.com/ workshop/languages/clinic/scripting051099.asp ou em http:// www.oreilly/catalog/regexp/. objetoRegExp.Pattern [=expr_regular]

Coleção Matches
É uma coleção criada pelo método Execute do objeto RegExp contendo objetos Match que são criados para cada correspondência (match) encontrada da expressão regular em um string.

Objeto Match
O objeto Match é criado toda vez que o método Execute do objeto RegExp encontra uma correspondência (match) da expressão regular em um string. Armazena em suas propriedades os detalhes de cada correspondência (match) encontrada na pesquisa.

Propriedades do objeto Match
FirstIndex
Retorna a posição (a partir de 0) dentro do string onde ocorreu a correspondência (match) com a expressão regular. objetoMatch.FirstIndex

Length
Retorna o tamanho do texto encontrado na pesquisa da expressão regular. objetoMatch.Length

Value
Retorna o valor ou o texto encontrado na pesquisa da expressão regular. objetoMatch.Value 90

Objetos do VBScript

RegExp

Símbolos usados em Expressões
Símbolo ^ Função Somente localiza (match) no início de um string. Por exemplo: ”^P” localiza o primeiro "P" em "Pedro pegou o pato". Somente localiza (match) no final de um string. Por exemplo: a expressão "o$" localiza o último "o" em "Pedro pegou o pato". Localiza qualquer final de palavra. Por exemplo: "mente\b" localiza em "possivelmente amanhã". Localiza qualquer coisa que não seja final de palavra. Localiza o literal especificado. Localiza o caractere "new line" Localiza o caractere "form feed" Localiza o caractere "carriage return" Localiza o caractere "tab horizontal" Localiza o caractere "tab vertical" Localiza o caractere "?" Localiza o caractere "*" Localiza o caractere "+" Localiza o caractere "." Localiza o caractere "|" Localiza o caractere "{" Localiza o caractere "}" Localiza o caractere "\" Localiza o caractere "[" Localiza o caractere "]" Localiza o caractere "(" Localiza o caractere ")" Localiza o caractere ASCII expresso pelo número octal xxx. Por exemplo: ”\50" localiza “(“ ou chr (40). Localiza o caractere ASCII expresso pelo número hexa dd. Por exemplo: ”\x28" localiza “(“ ou chr (40). Localiza o caractere ASCII expresso pelo código Unicode xxxx. Por exemplo: ”\u00A3" localiza “£”. Localiza qualquer caractere no intervalo especificado. Por exemplo: a expressão "[a-c]" localiza "a", "b"ou "c". Localiza qualquer caractere especificado em [ ]. Por exemplo: "col[iu]na" localiza "colina" e "coluna". Localiza qualquer caractere que não estiver em [ ]. Por exemplo: ”dr[^o]ga” localiza qualquer combinação, exceto "droga". Localiza qualquer caractere exceto \n. Por exemplo: a expressão "a.b" localiza "aab" e "a3b", mas não "ab". Localiza letras e dígitos. Equivale a [a-zA-Z_0-9]. Localiza qualquer caractere que não seja letra ou dígito. Equivale a [^a-zA-Z_0-9]. 91

$

\b

\B literal \n \f \r \t \v \? \* \+ \. \| \{ \} \\ \[ \] \( \) \xxx

\xdd

\uxxxx

[a-z] [xyz] [^xyz]

.

\w \W

Objetos do VBScript Símbolo \d \D \s \S {x} Função (continuação)

RegExp

(x,}

{x,y}

?

*

+

()

|

Localiza qualquer dígito. Equivale a [0-9]. Localiza qualquer não-dígito. Equivale a [^0-9]. Localiza qualquer caractere espaço. Equivale a [ \t\r\n\v\f]. Localiza qualquer caractere diferente de espaço. Equivale a [^\t\r\n\v\f]. Localiza exatamente x ocorrências de uma expressão regular. Por exemplo: ”a{3}” equivale a "aaa". Localiza x ou mais ocorrências de uma expressão regular. Por exemplo: ”\s{2,}” localiza pelo menos 2 caracteres espaço. Localiza entre x e y ocorrências de uma expressão regular. Por exemplo: ”\d{2,3}” localiza pelo menos 2, mas não mais que 3 dígitos. Localiza zero ou uma ocorrência do caractere precedente. Equivale a {0,1}. Por exemplo: a expressão "casas?" localiza ambos "casa" e "casas". Localiza zero ou mais ocorrências do caractere precedente. Equivale a {0,}. Por exemplo: a expressão "fo*" localiza ambos "f" e "foo". Localiza uma ou mais ocorrências do caractere precedente. Equivale a {1,}. Por exemplo: a expressão "fo+" localiza "foo" mas não "f". Agrupa uma cláusula para criar uma nova cláusula. Pode ser aninhada. Por exemplo: “(ab)?(c)” localiza “abc” or “c”. Localiza qualquer uma das cláusulas individuais. Por exemplo: a expressão "a|b" localiza "a" ou "b:".

92

Objetos do VBScript

Err

Objeto Err
O objeto Err contém informações sobre erros run-time. Não é necessário criar uma instância desse objeto; ele é intrínseco do VBScript. Aceita os métodos Raise e Clear para criar e desativar erros run-time. No exemplo abaixo é verificado o valor da propriedade Number, e se ela contém um valor diferente de zero, exibe os detalhes no browser.
<% D mn m r o d s r r o i uer, ecer OnErrorResumeNext ErRie r.as 6 numerro=Err.number d s r r o=E r d s r p i n ecer r.ecito Ifnumerro<>0Then Response.Write“Ocorreuumerro!Erronúmero“&numerro&“do_ t p ‘ &d s r r o&“ . io “ ecer ‘” E dI n f %>

Saída do script: ”Ocorreu um erro! Erro número 6 do tipo ‘Overflow’.”

Métodos do objeto
Clear
Inicializa todas as definições de propriedade de um objeto Err. objetoErr.Clear

Raise
Cria um erro de run-time. objetoErr.Raise (número [,fonte] [,descrição] [,arqhelp][,contexto]) Argumento objetoErr número fonte descrição arqhelp contexto Descrição Objeto Err. Natureza do erro. Objeto ou aplicação que originalmente gerou o erro. Descrição do erro. Localização do arquivo Help na qual o help para este erro pode ser encontrado. Identifica o tópico dentro do arquivo Help que fornece help para o erro.

93

Objetos do VBScript

Err

Propriedades do objeto
Description
Define ou retorna um string que descreve o erro. objetoErr.Description [ = string]

Number
Define ou retorna um valor numérico que idenfica o erro. objetoErr.Number [ = numerro]

Source
Retorna ou define o nome do objeto ou da aplicação que originalmente gerou o erro. objetoErr.Source [=nomeaplic] Argumento objetoErr nomeaplic Descrição Objeto Err. Nome da aplicação.

HelpContext
Define ou retorna o número de contexto para um tópico no arquivo Help. objetoErr.HelpContext [=contextoID] Argumento objetoErr contextoID Descrição Objeto Err. Identificador para um tópico de help no arquivo Help.

HelpFile
Define ou retorna o path para um arquivo Help, que é acionado quando o usuário clica no botão Help ou pressiona a tecla F1 na caixa de diálogo de um mensagem de erro. objetoErr.HelpFile [=path] Argumento objetoErr path Descrição Objeto Err. Localização do arquivo Help.

94

VBScript

Instruções

Instruções do VBScript
Call
Chama uma procedure Sub ou Function. [Call] nomeproc [argumentos] Argumento Call nomeproc argumentos Descrição Palavra-chave opcional; se especificada, a lista de argumentos deve ser colocada entre parenteses (). Nome da procedure. Lista das variáveis, arrays ou expressões, separadas por vírgulas, que serão passadas para a procedure.

Class
Declara o nome de uma classe, e a definição das variáveis, propriedades e métodos que constituem a classe. Class nome instruções End Class Parte nome instruções Descrição Nome da classe. Uma ou mais instruções que definem as variáveis, propriedades e métodos da Class.

Const
Declara suas próprias constantes. Após ter declarado uma função, seu valor não pode ser alterado. [Public | Private] Const nome1 = expr1, nome2=expr2 ... Argumento Public Descrição Usado no nível de módulo para declarar constantes acessíveis a todas as procedures em todos os módulos. Não permitido em procedures. Usado no nível de módulo para declarar constantes acessíveis somente dentro do módulo onde a declaração foi feita. Não permitido em procedures.

Private

Dim
Define variáveis e aloca espaço de memória. Dim nomevar [([subscritores])] [,nomevar [([subscritores])]].. Argumento nomevar subscritores Descrição Nome da variável ou array. Dimensões de um array. Podem ter a seguinte sintaxe (limite inferior, limite superior).

Do...Loop
Repete um bloco de comandos enquanto uma condição for verdadeira (While) ou até que uma condição se torne verdadeira (Until). 95

VBScript

Instruções

Sintaxe 1:
Do [{While | Until} condição] [bloco de comandos] [Exit Do] [bloco de comandos] Loop

Sintaxe 2:
Do [bloco de comandos] [Exit Do] [bloco de comandos] Loop [{While | Until} condição] Argumento Exit Do Loop Descrição Transfere o controle para o comando imediatamente seguinte ao comando Loop. Finalização do bloco Do.

Erase
Limpa os valores dos elementos de um array fixo. Elementos numéricos são reinicializados com zero e string são reinicializados com "". No caso de arrays dinâmicos eles são eliminados e o espaço alocado de memória é liberado. Erase array

Execute
Interpreta um argumento string como um ou mais instruções VBScript e as executa em um namespace local. As instruções devem ser separadas por ":" ou line-breaks. Nenhum valor é retornado. Para avaliar uma expressão que retorne um valor, use a função Eval. Ao contrário da função Eval, Execute interpreta operadores "=" como atribuições ao invés de comparações. Execute instrução

ExecuteGlobal
Interpreta um argumento string como uma ou mais instruções VBScript e as executa em um namespace global. As instruções devem ser separadas por ":" ou line-breaks. Nenhum valor é retornado. Para avaliar uma expressão que retorne um valor, use a função Eval. Ao contrário da função Eval, ExecuteGlobal interpreta operadores "=" como atribuições ao invés de comparações. ExecuteGlobal instrução

Exit
Sai de um laço Do...Loop ou For...Next, ou de uma procedure Function ou Sub. Exit {Do | For | Function | Sub} 96

VBScript Argumento Do For Function Sub Descrição Sai de um laço Do...Loop. Sai de um laço For...Next. Sai de uma procedure Function. Sai de uma procedure Sub.

Instruções

For...Next
Repete um grupo de instruções um número especificado de vezes. For contador = início To fim [Step incremento] [bloco de comandos] [Exit For] [bloco de comandos] Next [contador [,contador] [,...] Argumento contador início fim incremento Exit For Descrição Variável numérica usada como contador do laço. Valor inicial do intervalo para o contador. Valor final do intervalo para o contador. Valor a ser incrementado ao contador a cada iteração. Fornece uma saída alternativa do bloco. Transfere o controle para o comando imediatamente seguinte ao comando Next. Finaliza um laço For...Next. Incrementa o contador e volta a repetir o bloco.

Next

For Each...Next
Repete um grupo de instruções para cada elemento em uma coleção ou array. Permite processar cada item em uma coleção ou array sem ter que se preocupar com índices. For Each elemento In grupo [bloco de instruções] [Exit For] [bloco de instruções] Next [elemento] Argumento elemento grupo Descrição Variável usada para interagir através dos elementos de uma coleção ou um array. Nome de uma coleção ou um array.

Function
Declara uma função(Function). Ao contrário das procedures(Sub), retorna um valor e pode ser usada em expressões. Function nomefunc [(argumentos)] [instruções] [nomefunc = expressão] [Exit Function] [instruções] [nomefunc = expressão] End Function 97

VBScript Argumento nomefunc argumentos Descrição

Instruções

instruções expressão

Nome da função. Lista de variáveis, separadas por vírgula, representando os argumentos que são passados para a função quando ela é chamada. Grupo de instruções a serem executadas dentro da função. Valor retornado pela função.

If...Then...Else
Permite a execução condicional de blocos de instruções, baseada na avaliação das condições. If condição1 Then [bloco de instruções-1] [ElseIf condição2 Then [bloco de instruções-2]] [Else [bloco de instruções-n]] End If Argumento condição ElseIf Else Descrição Condição a ser avaliada. Pode ser uma expressão string ou numérica que retorna True (não-zero) ou False (0 ou Null). Indica as condições alternativas que devem ser avaliadas se a condição1 não for satisfeita. Identifica a ação que deve ser tomada caso nenhuma das condições prévias tenha sido satisfeita.

On Error
Especifica que quando ocorrer um erro de execução, o fluxo deverá seguir para o comando imediatamente posterior ao comando onde ocorreu o erro. O erro não é corrigido, apenas ignorado, e não é exibida nenhuma mensagem de erro. A instrução On Error Goto 0 desabilita a manipulação de erros. On Error Resume Next

Option Explicit
Força a declaração (com Dim, Private, Public ou ReDim) de todas as variáveis usadas no script, antes de serem utilizadas. Deve ser colocado no script antes de qualquer outra instrução. Qualquer tentativa de usar uma variável não declarada ocasionará um erro. A declaração de variáveis antes de usá-las faz com que o script seja executado mais rapidamente. Option Explicit

Private
Declara variáveis com escopo limitado e aloca espaço de memória. Private nomevar [([subscritores])] [,nomevar [([subscritores])]].. Argumento nomevar subscritores 98 Descrição Nome da variável ou array. Dimensões de um array. Podem ter a seguinte sintaxe: (limite inferior, limite superior).

VBScript

Instruções

PropertyGet
Declara, em um bloco Class, o nome, os argumentos, e o código que formam a procedure Property que obtém o valor de uma propriedade. [Public [Default] | Private] PropertyGet nomeproc [argumentos] ... [[Set] nomeproc = expressão] ... End Property Argumento Public Default Private nomeproc argumentos Descrição Indica que a procedure é acessível às outras procedures. Indica qual é a propriedade default em uma classe. Indica que a procedure é acessível somente para outra procedure pertencente a mesma classe. Nome da procedure. Variáveis que representam argumentos que são passados para a procedure.

PropertyLet
Declara, em um bloco Class, o nome, os argumentos, e o código que formam a procedure Property que atribui o valor de uma propriedade. [Public | Private] PropertyLet nomeproc ([argumentos,] valor) ... End Property Argumento Public Private nomeproc argumentos valor Descrição Indica que a procedure é acessível às outras procedures. Indica que a procedure é acessível somente para outra procedure pertencente a mesma classe. Nome da procedure. Variáveis que representam argumentos que são passados para a procedure. Variável que contém o valor a ser atribuído.

PropertySet
Declara, em um bloco Class, o nome, os argumentos, e o código que formam a procedure Property que definem uma referência para um objeto. [Public | Private] PropertySet nomeproc ([argumentos,] referência) ... End Property Argumento Public Private nomeproc argumentos referência Descrição Indica que a procedure é acessível para todas outras. Indica que a procedure é acessível somente para outra procedure pertencente a mesma classe. Nome da procedure. Variáveis que representam argumentos que são passados para a procedure. Variável que contém um objeto usado no lado direito do objeto referente à atribuição. 99

VBScript

Instruções

Public
Usado no nível de módulo para declarar variáveis públicas e alocar espaço de memória. Public nomevar [([subscritores])] [,nomevar [([subscritores])]].. Argumento nomevar subscritores Descrição Nome da variável ou array. Dimensões de um array. Podem ter a seguinte sintaxe (limite inferior, limite superior).

Randomize
Inicializa o gerador de números aleatórios. Use a função Rnd para obter os números aleatórios. Randomize [número] Argumento número Descrição Valor da semente usada para inicializar o gerador. Se omitido será utilizado o valor retornado pelo timer do sistema.

ReDim
Usada no nível de procedure para declarar arrays dinâmicos e alocar ou realocar espaço de memória. ReDim [Preserve] nomevar (subscritores) [,nomevar(subscritores)]... Argumento Preserve nomevar subscritores Descrição Preserva os dados quando forem redimensionados. Nome da variável. Dimensões de um array.

Rem
Identifica comentários dentro do programa fonte. O mesmo que ‘ (apostrofe). Rem [comentário]

Select Case
Seleciona entre vários blocos de instruções, apenas um para ser executado, dependendo do resultado da expr_teste, que é comparada com as expressões na cláusula Case. Caso encontre uma correspondência, executa o bloco de instruções da cláusula Case. Select Case expr_teste [Case lista1 [bloco de instruções-1]] [Case lista2 [bloco de instruções-2]] [Case Else [bloco de instruções-n]] End Select

100

VBScript Argumento expr_teste lista Case Else Descrição

Instruções

Expressão numérica ou string. Lista de expressões a serem comparadas com aexpr_teste. Identifica o bloco de instruções a ser executado caso não tenha sido encontrada uma correspondência entre a expr_teste e as listas.

Set
Atribui uma referência de objeto a uma variável ou propriedade (isto é, cria uma instância de um objeto específico). Set varobjeto = {exprobjeto | Nothing} Argumento varobjeto exprobjeto Descrição Nome da variável objeto. Expressão consistindo do nome de um objeto, outra variável declarada do mesmo tipo de objeto, ou uma função ou método que retorna um objeto. Elimina a associação de varobjeto a qualquer objeto específico.

Nothing

Sub
Declara uma procedure Sub. Ao contrário das procedures Function, não retorna um valor e não pode ser usada em expressões. Sub nome [(argumentos)] [instruções] [Exit Sub] [instruções] End Function Argumento nome argumentos Descrição Nome da procedure Sub. Lista de variáveis, separadas por vírgula, representando os argumentos que são passados para a procedure Sub quando ela é chamada. Grupo de instruções a serem executadas dentro da procedure Sub.

instruções

While...Wend
Executa um bloco de instruções enquanto uma condição for verdadeira. While condição [bloco de instruções] Wend

With
Executa um bloco de instruções em um único objeto. With objeto [bloco de instruções] End With 101

VBScript

Funções

Funções do VBScript
Abs
Retorna o valor absoluto de um número. Abs (número)

Array
Permite criar um array unidimensional de valores, normalmente utilizado para armazenar uma pequena quantidade de dados dentro do programa. Array (lista_arg) Argumento lista_arg Descrição Lista de valores separados por vírgula atribuídos aos elementos do array.

Asc
Retorna o código numérico ANSI do primeiro caractere de uma expressão string. Asc (string)

AscB
Retorna o primeiro byte de uma expressão string. AscB (string)

AscW
Retorna o código Unicode do primeiro caractere de uma expressão string em formato Unicode. AscW (string)

Atn
Retorna o arco-tangente de uma expressão numérica. Atn (número)

CBool
Retorna o valor de uma expressão (numérica ou string) convertido em um valor lógico (True ou False). Se o valor da expressão for zero, False é retornado; caso contrário, True é retornado. Se a expressão não puder ser interpretada como um valor numérico, ocorrerá um erro de run-time. CBool (expr)

CByte
Retorna o valor de uma expressão (numérica ou string) convertido para um tipo variant de subtipo Byte. CByte (expr)

102

VBScript

Funções

CCur
Retorna o valor de uma expressão (numérica ou string) convertido para um tipo variant de subtipo Currency. CCur (expr)

CDate
Retorna o valor de uma expressão data e hora convertido para um tipo variant de subtipo Date. CDate (expr)

CDbl
Retorna o valor de uma expressão (numérica ou string) convertido para um tipo variant de subtipo Double. CDbl (expr)

Chr
Retorna o caractere correspondente ao código ANSI especificado. Chr (código)

CInt
Retorna o valor de uma expressão (numérica ou string) convertido para um variant de subtipo Integer. CInt (expr)

CLng
Retorna o valor de uma expressão (numérica ou string) convertido para um variant de subtipo Long. CLng (expr)

Cos
Retorna o co-seno de um número (ângulo) (expresso em radianos). Cos (número)

CreateObject
Cria e retorna uma referência para um objeto de automação. O statement Set atribui a referência ao objeto a uma variável ou property. A palavra-chave Nothing é usada para limpar a referência ao objeto. CreateObject(servidor.tipo [, local]) Argumento servidor tipo local Descrição Nome da aplicação que fornece o objeto. Tipo ou classe do objeto a ser criado. Nome do servidor de rede onde o objeto será criado.

103

VBScript

Funções

CSng
Retorna o valor de uma expressão (númerica ou string) convertido para um tipo variant de subtipo Single. CSng (expr)

CStr
Retorna o valor de uma expressão (numérica ou string) convertido para um tipo variant de subtipo String. CStr (expr) Expr Boolean Date Null Empty Error Número CStr retorna Um String contendo True ou False. Um String contendo uma data no formato abreviado do seu sistema. Um erro de run-time. Um String vazio (“”). Um String contendo a palavra Error seguida por um número de erro. Um String contendo o número.

Date
Retorna a data corrente do sistema. Date

DateAdd
Retorna a data resultante da adição de múltiplos intervalos de tempo a uma data base. DateAdd (intervalo, núm_interv, data_base) Argumento intervalo yyyy q m y d w ww h n s núm_interv Descrição Expressão string indicando o intervalo de tempo a ser adicionado. Ano. Trimestre. Mês. Dia do ano. Dia. Dia da semana. Semana. Hora. Minuto. Segundo. Especifica o número de intervalos a serem adicionados. Se positivo, obtém uma data no futuro, se negativo, no passado. Um tipo variant ou um literal representando a data na qual o intervalo será adicionado.

data_base

104

VBScript

Funções

DateDiff
Retorna o número de intervalos (dia, semana, trimestre, etc) entre duas datas. DateDiff (intervalo, data1, data2 [,primdiasem [,primsemano]]) Argumento intervalo Descrição Expressão string indicando o intervalo de tempo utilizado para calcular a diferença entre data1 e data2. Ver opções da função DateAdd. data1, data2 Duas datas usadas no cálculo. primdiasem Primeiro dia da semana. vbUseSystem=0 Usa definição da NLS API. vbSunday=1 Domingo (default). vbMonday=2 Segunda. vbTuesday=3 Terça. vbWednesday=4 Quarta. vbThursday=5 Quinta. vbFriday=6 Sexta. vbSaturday=7 Sábado. primsemano Primeira semana do ano. vbUseSystem=0 Usa definição da NLS API. vbFirstJan1=1 Inicia na mesma semana de 1 de Janeiro (default). vbFirstFourDays=2 Inicia na semana com pelo menos 4 dias no novo ano. vbFirstFullWeek=3 Inicia na primeira semana completa do ano.

DatePart
Retorna um intervalo de tempo de uma data. Ver opções na função DateDiff. DatePart (intervalo, data [,primdiasem [,primsemano]])

DateSerial
Retorna um tipo Variant de subtipo Date baseado na data fornecida (de 01/01/100 a 31/12/9999). DateSerial (ano, mês, dia)

DateValue
Retorna uma Variant de subtipo Date baseado em uma expressão representando uma data. DateValue (expr) Argumento expr Descrição Pode ser qualquer expressão que represente uma data (de 01/01/100 a 31/12/9999).

Day
Retorna o dia do mês (1-31) de uma expressão representando uma data. Day (expr) 105

VBScript

Funções

Eval
Avalia e retorna o resultado de uma expressão. Eval (expr)

Exp
Retorna ex (e=2.71828). Exp (x)

Filter
Retorna um array que contém um subconjunto de um array de strings. Filter(inputstring, valor [,inclui [,compara]]) Argumento inputstring valor inclui Descrição Array string onde ocorrerá a pesquisa. String a ser pesquisado. Valor lógico indicando se deve incluir (True) ou excluir (False) elementos em inputstrings que contenham valor. True Retorna os elementos encontrados em inputstrings. False Retorna os elementos não encontrados em inputstring. compara Método de comparação de strings. vbBinaryCompare=0 Executa comparação binária (default). vbTextCompare=1 Executa comparação textual.

Fix
Retorna a parte inteira de um número. Se o número for negativo, retorna o primeiro inteiro negativo maior ou igual ao número. Ver também a função Int na página 109. Fix (exprN)

FormatCurrency
Retorna uma expressão formatada como valor monetário, e com o símbolo que foi configurado no Control Panel do Windows. FormatCurrency (expr [,digitos] [,leadingdig] [,negativo] [,grupo]) Argumento expr digitos leadingdig negativo grupo Descrição Expressão a ser formatada. Número de casas decimais. Especificasezerosdepreenchimento(leadingzeroes)devem ser exibidos (True) ou não (False) para valores fracionários. Especifica se valores negativos devem ser exibidos (True) ou não (False) entre parenteses. Especifica se os números devem (True) ou não (False) ser agrupados usando o delimitador especificado no Control Panel do Windows.

106

VBScript

Funções

FormatDateTime
Retorna uma expressão formatada como data ou hora. FormatDateTime (exprD [,formato]) Argumento exprD formato vbGeneralDate=0 vbLongDate=1 vbShortDate=2 vbLongTime=3 vbShortTime=4 Descrição Expressão data a ser formatada. Especifica o formato da data / hora (default = vbGeneralDate). Data e/ou Hora. Data no formato longo. Data no formato curto. Hora no formato do Painel de Controle do Windows. Hora usando o formato (hh:mm).

FormatNumber
Retorna uma expressão formatada como um número. FormatNumber (expr [,digitos] [,leadingdig] [,negativo] [,grupo]) Argumento expr digitos leadingdig negativo grupo Descrição Expressão a ser formatada. Número de casas decimais. Especificasezerosdepreenchimento(leadingzeroes)devem ser exibidos (True) ou não (False) para valores fracionários. Especifica se valores negativos devem ser exibidos (True) ou não (False) entre parenteses. Especifica se os números devem (True) ou não (False) ser agrupados usando o delimitador especificado no Control Panel do Windows.

FormatPercent
Retorna uma expressão formatada como uma porcentagem (multiplicada por 100) com o caractere % anexado, como por exemplo: 50%. FormatPercent(expr [,digitos] [,leadingdig] [,negativo] [,grupo]) Argumento expr digitos leadingdig negativo grupo Descrição Expressão a ser formatada. Número de casas decimais. Especificasezerosdepreenchimento(leadingzeroes)devem ser exibidos (True) ou não (False) para valores fracionários. Especifica se valores negativos devem ser exibidos (True) ou não (False) entre parenteses. Especifica se os números devem (True) ou não (False) ser agrupados usando o delimitador especificado no Control Panel do Windows.

GetLocale
Retorna o LCID (locale ID). GetLocale()

107

VBScript

Funções

GetObject
Retorna uma referência para um objeto ActiveX do arquivo. GetObject([arquivo] [,classe])

GetRef
Retorna uma referência para uma procedure que pode ser vinculada a um evento. GetRef(nomeproc) Set objeto.nomeEvento = GetRef(nomeProc) Argumento objeto nomeEvento nomeproc Descrição Nome do objeto em que o evento será associado. Nome do evento em que a função será associada. String contendo o nome da procedure que vai ser associada ao evento.

Hex
Retorna a representação hexadecimal de um número decimal. Hex (exprN)

Hour
Retorna a hora (0-23) de uma expressão que representa um horário. Hour (expr)

InputBox
Exibe uma caixa de diálogo para a entrada de dados, espera o usuário entrar com um texto ou escolher um botão e retorna o conteúdo da caixa de texto. Retorna um string com tamanho zero (“”) se o usuário escolher o botão Cancel. InputBox (prompt [,título] [,default] [,xpos] [,ypos] [,arqhelp, contexto]) Argumento prompt título default xpos Descrição Mensagem exibida na caixa de diálogo. Título da caixa de diálogo. Conteúdo default da caixa de diálogo. Distância (em twips) da margem esquerda da caixa de diálogo até a margem esquerda da tela. Twips é unidade de medida igual a 1/20 de um ponto da impressora. Distância (em twips) da margem superior da caixa de diálogo até a margem superior da tela. Arquivo de help a ser utilizado para fornecer help sensível ao contexto (context-sensitive) para a caixa de diálogo. Número de contexto do tópico de help.

ypos arqhelp contexto

108

VBScript

Funções

InStr
Retorna a posição da primeira ocorrência de um string dentro de outro string. InStr ([início], expr1, expr2 [, método]) Argumento Descrição início Posição inicial de expr1$ a ser pesquisada. expr1 Expressão string a ser pesquisada. expr2 Expressão string pesquisada. método Método de comparação de strings. vbBinaryCompare=0Distingüe letras minúsculas de maiúsculas. vbTextCompare=1 Não distingüe letras minúsculas de maiúsculas.

InStrRev
Retorna a posição da primeira ocorrência de um string dentro de outro string, a partir do final do string. InStrRev (expr1, expr2 [,início [,método]]) Argumento Descrição expr1 Expressão string pesquisada. expr2 Expressão string a ser pesquisada. início Posição inicial de expr1 a ser pesquisada. método Método de comparação de strings. vbBinaryCompare=0Distingüe letras minúsculas de maiúsculas. vbTextCompare=1 Não distingüe letras minúsculas de maiúsculas).

Int
Retorna a parte inteira de um número. Se o número for negativo, retorna o primeiro inteiro negativo menor ou igual ao número. Ver também a função Fix na página 106. Int (exprN)

IsArray
Retorna True se uma variável é um array; caso contrário, retorna False. IsArray (nomevar)

IsDate
Retorna True se o valor de uma expressão puder ser ser convertido para uma data válida; caso contrário, retorna False. IsDate (expr)

IsEmpty
Retorna True se uma variável foi inicializada; caso contrário, retorna False. IsEmpty (nomevar)

109

VBScript

Funções

IsNull
Retorna True se uma expressão contiver valor Null; caso contrário, retorna False. IsNull (expr)

IsNumeric
Retorna True se uma expressão puder ser interpretada como um número; caso contrário, retorna False. IsNumeric (expr)

IsObject
Retorna True se a uma expressão referencia um objeto de automação (“Automation object”) válido; caso contrário, retorna False. IsObject (expr)

Join
Retorna um string que é o resultado da concatenação dos substrings contidos em um array. Oposto da função Split (página 115). Join(lista [,delimitador]) Argumento lista delimitador Descrição Array contendo substrings a serem concatenados. Caractere utilizado para separar os substrings no string retornado (default=” ”).

LBound
Retorna o menor subscritor da dimensão especificada de um array. Ver também a função UBound na página 117. LBound (array [,dimensão])

LCase
Retorna uma cópia de uma expressão string com todas as letras minúsculas. Para converter para maiúsculas utilize a função UCase (página 117). LCase(expr)

Left
Retorna um substring com os n caracteres iniciais de uma expressão string. Ver também as funções Mid e Right. Left (expr, n)

Len
Sintaxe 1: Retorna o número de caracteres em uma expressão string. Len (expr)

110

VBScript Sintaxe 2: Retorna o número de bytes usados em uma variável. Len (nomevar)

Funções

LoadPicture
Carrega uma figura. Pode-se carregar arquivos nos seguintes formatos: .BMP, .ICO, .RLE, .WMF, .EMF, .GIF e .JPG. LoadPicture ([nomearq]) Argumento nomearq Descrição Nome do arquivo da figura a ser carregada.

Log
Retorna o logaritmo natural de um número. Log (expr)

LTrim
Retorna uma cópia de uma expressão string sem os espaços em branco iniciais. Ver também as funções RTrim e Trim. LTrim (expr)

Mid
Retorna um substring de uma expressão string. Ver também as funções Left e Right. Mid (expr, início [,tamanho]) Argumento início tamanho Descrição Posição inicial em expr. Número de caracteres a serem retornados.

Minute
Retorna os minutos (0-59) de uma expressão que representa um horário. Minute (expr)

Month
Retorna o mês (1-12) de uma expressão que representa uma data. Month (expr)

MonthName
Retorna o nome de um mês por extenso. MonthName(mês [,abrevia]) Argumento mês abrevia True False Descrição Número do mês (1-12). Define se o nome do mês deve ser abreviado. Nome do mês abreviado. Nome do mês por extenso.

111

VBScript

Funções

MsgBox
Exibe uma mensagem em uma caixa de diálogo, espera o usuário escolher um botão e retorna um valor indicando qual botão foi selecionado. MsgBox (mensagem [,tipo] [,título] [,arqhelp, contexto]) Argumento título arqhelp Descrição Título a ser exibido na barra de título da caixa de diálogo. Arquivo de help a ser utilizado para fornecer help sensível ao contexto (context-sensitive) para a caixa de diálogo. contexto Número de contexto do tópico de help. tipo Tipo do quadro a ser exibido. Some os valores das características desejadas. Número e tipo dos botões: vbOKOnly=0 Exibe somente o botão OK. vbOKCancel=1 Exibe os botões OK e Cancel. vbAbortRetryIgnore=2 Exibe os botões Abort, Retry e Ignore. vbYesNoCancel=3 Exibe os botões Yes, No e Cancel. vbYesNo=4 Exibe os botões Yes e No. vbRetryCancel=5 Exibe os botões Retry e Cancel. Estilo do ícone: vbCritical=16 Exibe o ícone Critical Message. vbQuestion=32 Exibe o ícone Warning Query. vbExclamation=48 Exibe o ícone Warning Message. vbInformation =64 Exibe o ícone Information Message. Identifica o botão default (que tem o foco): vbDefaultButton1=0 Define o primeiro botão como default. vbDefaultButton2=256 Define o segundo botão como default. vbDefaultButton3=512 Define o terceiro botão como default. vbDefaultButton4=768 Define o quarto botão como default. Modalidade: vbApplicationModal=0 O usuário deve responder à caixa de mensagem antes de continuar o trabalho na aplicação corrente. vbSystemModal=4096 Em sistemas Win16 faz com que todas as aplicações sejam suspensas até o usuário responder à caixa de mensagem. Em sistemas Win32, mantém a caixa de mensagem sempre no topo das outras aplicações que estão sendo executadas. Valor retornado pela função: vbOK=1 Botão OK foi clicado. vbCancel=2 Botão Cancel foi clicado. vbAbort=3 Botão Abort foi clicado. vbRetry=4 Botão Retry foi clicado. vbIgnore=5 Botão Ignore foi clicado. vbYes=6 Botão Yes foi clicado. vbNo=7 Botão No foi clicado.

Now
Retorna a data e a hora do sistema operacional. Now 112

VBScript

Funções

Oct
Retorna um texto que representa o valor octal de um argumento decimal. Oct (número)

Replace
Retorna um string na qual um substring especificado foi substituído por um outro substring, um número especificado de vezes. Replace(expr1, expr2, expr3 [,começo[,numsubst[,compara]]]) Argumento expr1 Descrição String que contém uma ou mais substrings que serão trocadas. expr2 Substring a ser procurada. expr3 Substring de substituição começo Posição onde a substituição será iniciada. numsubst Número de substituições a serem feitas. Default= -1 que é equivalente a todas as possíveis substituições. compara Tipo de comparação. Constantes de Comparação: vbBinaryCompare=0 Faz uma comparação binária. vbTextCompare=1 Faz uma comparação textual. vbDatabaseCompare=2 Faz uma comparação baseada em informações de um banco de dados onde a comparação será feita.

RGB
Retorna um número inteiro longo representando o valor da cor RGB. RGB (vermelho, verde, azul) Argumento vermelho verde azul Descrição Número (0-255) representando o item vermelho da cor. Número (0-255) representando o item verde da cor. Número (0-255) representando o item azul da cor.

Right
Retorna um substring com n caracteres à direita de uma expressão string. Ver também as funções Mid e Left. Right (expr, n)

Rnd
Retorna um número aleatório entre 0 e 1. Para inicializar o gerador de números aleatórios use o comando Randomize (página 100). Rnd [(número)] Argumento número <0 >0 =0 Descrição Determina como a função Rnd irá gerar o número aleatório. Retorna sempre o mesmo número. Retorna o próximo número aleatório na seqüência (default). Retorna o número aleatório gerado mais recentemente. 113

VBScript

Funções

Round
Retorna um número arredondado com um determinado número de casas decimais. Round (número, num_casas_decimais)

RTrim
Retorna uma cópia de uma expressão string sem os espaços em branco finais. Ver também as funções LTrim e Trim. RTrim (expr)

ScriptEngine
Retorna o nome da linguagem de scripting que está sendo utilizada. ScriptEngine Valor Retornado VBScript JScript VBA Visual Basic Scripting Edition. JScript. Visual Basic for Applications.

ScriptEngineBuildVersion
Retorna o número da versão da linguagem de scripting que está sendo utilizada. ScriptEngineBuildVersion

ScriptEngineMajorVersion
Retorna o número de mais alta ordem no número da versão da linguagem de scripting que está sendo utilizada. ScriptEngineMajorVersion

ScriptEngineMinorVersion
Retorna o número de mais baixa ordem no número da versão da linguagem de scripting que está sendo utilizada. ScriptEngineMinorVersion

Second
Retorna os segundos (0-59) de uma expressão que representa um horário. Second (expr)

SetLocale
Define o LCID (locale ID). SetLocale(LCID)

114

VBScript

Funções

Sgn
Retorna um número inteiro indicando o sinal de um número. Sgn (número) Valor retornado: 1 0 -1 O número é maior que 0. O número é 0. O número é menor que 0.

Sin
Retorna o seno de um ângulo (expresso em radianos). Sin (ângulo)

Space
Retorna um string com um número especificado de espaços em branco. Space (número)

Split
Retorna um array contendo um número especificado de substrings. Oposto da função Join (página 100). Split (expressão [,delimitador [,contador [,compara]]]) Argumento expressão delimitador contador Descrição Expressão string contendo substrings separados por delimitadores. Caractere utilizado para separar os substrings. Número de substrings a serem retornados. Para retornar todos os substrings especifique -1. Efetua comparação binária. Efetua comparação textual.

compara vbBinaryCompare=0 vbTextCompare=1

Sqr
Retorna a raiz quadrada de um número. Sqr (número)

StrComp
Retorna um valor indicando o resultado da comparação de dois strings. StrComp (expr1, expr2 [,compara]) Argumento compara 0 1 Valor retornado -1 0 1 Null Descrição Especifica o método de comparação de strings. Distingue minúsculas de maiúsculas. Não distingue minúsculas de maiúsculas. Condição: expr1 < expr2 expr1 = expr2 expr1 > expr2 expr = Null ou expr2 = Null 115

VBScript

Funções

String
Retorna um string com n caracteres, contendo o código ANSI ou o primeiro caractere da expr especificada. String (n, cod | expr)

StrReverse
Retorna uma cópia de um string, com os caracteres na ordem reversa. StrReverse(string)

Tan
Retorna a tangente de um ângulo (expresso em radianos). Tan (ângulo)

Time
Retorna um Variant do subtipo Date indicando a hora corrente do sistema operacional. Time

Timer
Retorna o número de segundos que se passaram depois da meia noite. Timer

TimeSerial
Retorna um Date correspondente a um horário. TimeSerial (hora, minuto, segundo)

TimeValue
Retorna o horário representado por uma expressão string. TimeValue (expr)

Trim
Retorna uma cópia de uma expressão string sem os espaços em branco iniciais e finais. Ver também as funções LTrim e RTrim. Trim (expr)

TypeName
Retorna o subtipo de dados de uma variável. TypeName (nomevar) String retornado Byte Integer Long Single Double Currency 116 A variável contém Um byte. Um inteiro. Um inteiro longo. Um número de ponto-flutuante de precisão simples. Um número de ponto-flutuante de dupla precisão. Um valor currency.

VBScript Date String Boolean Empty Null tipoobjeto Object Unknown Nothing Error

Funções Uma data. Um string. Um valor lógico. Um valor não inicializado. Dados inválidos. Nome do tipo real de um objeto. Um objeto que suporta OLE. Um objeto de tipo desconhecido. Uma variável objeto que não se refere a um objeto. Um valor error.

UBound
Retorna o maior subscritor da dimensão especificada de um array. Para retornar o menor subscritor utilize a função LBound (página 110). UBound (array [,dimensão])

UCase
Retorna uma cópia de uma expressão string com todas as letras maiúsculas. Para converter para minúsculas utilize a função LCase (página 110). UCase (expr)

VarType
Retorna um valor indicando o subtipo de uma variável. VarType (nomevar) Valor retornado pela função: vbEmpty=0 vbNull =1 vbInteger=2 vbLong=3 vbSingle=4 vbDouble=5 vbCurrency=6 vbDate=7 vbString=8 vbObject=09 vbError =10 vbBoolean=11 vbVariant=12 vbDataObjects=13 vbByte=17 vbArray=8192 Vazio (não inicializada). Null (sem dados válidos). Integer. Long (long integer). Single (simples precisão). Double (dupla precisão). Currency. Date. String. Objeto OLE. Erro. Valor lógico. Variant (usado somente com arrays de Variants). Objeto não-OLE. Byte. Array.

117

VBScript

Funções

Weekday
Retorna um número entre 1 (Domingo) e 7 (Sábado), correspondente ao dia da semana de uma expressão representando uma data. Weekday (data, [primeiro]) Argumento data primeiro Descrição Expressão representando uma data. Uma constante que especifica o primeiro dia da semana. vbSunday=1 Domingo (default). vbMonday =2 Segunda-feira. vbTuesday=3 Terça-feira. vbWednesday=4 Quarta-feira. vbThursday=5 Quinta-feira. vbFriday=6 Sexta-feira. vbSaturday=7 Sábado.

WeekdayName
Retorna o nome do dia da semana. WeekDayName (dia, [abrevia], [primeiro]) Argumento dia abrevia False True primeiro Descrição Um Número representando o dia da semana. Define se o dia da semana será abreviado. Não abrevia o dia da semana (default). Abrevia o dia da semana. Uma constante que especifica o primeiro dia da semana. vbSunday=1 Domingo (default). vbMonday =2 Segunda-feira. vbTuesday=3 Terça-feira. vbWednesday=4 Quarta-feira. vbThursday=5 Quinta-feira. vbFriday=6 Sexta-feira. vbSaturday=7 Sábado.

Year
Retorna um número que representa o ano de uma determinada data. Year (Data)

118

VBScript

Operadores

Operadores
Operadores Aritméticos
^ * / \ Mod + Exponenciação Multiplicação Divisão Divisão inteira (retorna um resultado inteiro) Módulo aritmético (retorna o resto da divisão de Adição Subtração resultado resultado resultado resultado = = = = operando1 ^ operando2 operando1 * operando2 operando1 / operando2 operando1 \ operando2

resultado = operando1 Mod operando2 operando1 por operando2) resultado = operando1 + operando2 (1) resultado = operando1 - operando2 (2) -número (indica um valor negativo) True se False se expr1 expr1 expr1 expr1 expr1 expr1 >= expr2 > expr2 <= expr2 < expr2 <> expr2 = expr2

Operadores de Comparação
< <= > >= = <> Menor que Menor ou igual Maior que Maior ou igual Igual Diferente expr1 expr1 expr1 expr1 expr1 expr1 < expr2 <= expr2 > expr2 >= expr2 = expr2 <> expr2

Operadores de Concatenação de Strings
& + And Eqv Imp Concatenação Concatenação (obsoleto) resultado=expr1 And expr2 resultado=expr1 Eqv expr2 resultado=expr1 Imp expr2 resultado = operando1$ & operando2$ resultado = operando1$ + operando2$ Retorna True se ambas as expressões forem True. Retorna True se ambas as expressões forem True ou ambas forem False. Retorna False se a expr1 for True e a expr2 for False; caso contrário, retorna True. Retorna o inverso da expr. Retorna True se uma das expressões for True. Retorna True se apenas uma das expressões for True, mas não ambas forem True. Retorna True se ambos os objetos referirem-se ao mesmo objeto.

Operadores Lógicos

Not Or Xor

resultado=Not expr resultado=expr1 Or expr2 resultado=expr1 Xor expr2

Outros Operadores
Is resultado=objref1 Is objref2

Precedência dos Operadores
Quando operadores de mais de uma categoria são combinados, os operadores aritméticos são avaliados primeiro, os de comparação são avaliados em seguida e os lógicos são avaliados por último, conforme a tabela abaixo. Dentro de uma mesma categoria, os operadores são avaliados na ordem de precedência mostrada abaixo. Alguns operadores têm a mesma precedência e são avaliados da esquerda para a direita na ordem em que aparecem: multiplicação e divisão, adição e subtração, e os operadores de comparação. Aritméticos Exponenciação (^) Negação (-) Multiplicação e divisão (*,/) Divisão inteira (\) Módulo (Mod) Adição e Subtração (+,-) Concatenação (&) Comparação Igualdade (=) Desigualdade (<>) Menor que (<) Maior que (>) Menor que ou igual (<=) Maior que ou igual (>=) Lógicos Not And Or Xor Eqv Imp Is

119

VBScript

Subtipos de Dados

Subtipos de Dados
VBScript têm somente um tipo de dado chamado Variant. Um Variant é um tipo especial de dados que pode conter diferentes tipos de informações, dependendo de como ele é usado. A função VarType pode ser utilizada para retornar informação sobre o tipo de dado armazenado em um Variant.

Subtipo Empty

Descrição Variant não está inicializado. O valor é 0 para variáveis numéricas e string (“”) para variáveis string. Contém um valor Null. Contém True ou False. Contém um número inteiro entre 0 e 255. Contém um número inteiro entre -32,768 a 32,767. -922,337,203,685,477.5808 922,337,203,685,477.5807. a

Null Boolean Byte Integer Currency Long Single

Contém um número inteiro entre 2,147,483,648 a 2,147,483,647. Contém um número ponto-flutuante, simples precisão entre -3.402823E38 a 1.401298E-45 para valores negativos; 1.401298E-45 a 3.402823E38 para valores positivos. Contém um número ponto-flutuante, dupla precisão entre -1.79769313486232E308 a 4.94065645841247E-324 para número negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos. Contém um número que representa uma data entre 01/Janeiro/100 a 31/Dezembro/ 9999. Contém um string de tamanho variável que pode ter até aproximadamente 2 bilhões de caracteres. Contém um objeto.

Double

Date (Time)

String

Object

120

Apêndice

Propriedade Status

Códigos da Propriedade Status
Código 1xx 100 101 2xx Significado Utilizado para enviar informações para o cliente. Continue Switching Protocols Indica que a solicitação (request) teve sucesso. Por exemplo, o código 200 é utilizado para indicar que a página solicitada foi obtida com sucesso. OK Created Accepted Non-Authoritative Information No Content Reset Content Partial Content Indica que ações adicionais devem ser tomadas antes da solicitação (request) ser satisfeita. Por exemplo, o código 301 indica que a página foi movida e o browser será redirecionado para a nova página. Multiple Choices Moved Permanently Moved Temporarily See Other Not Modified Use Proxy Temporary Redirect Indica que o browser fez uma solicitação (request) que não pode ser atendida. Por exemplo, "404 - URL not found" indica que a página solicitada foi movida ou não existe. Bad Request Unauthorized Payment Required Forbidden Not Found Method Not Allowed Not Acceptable Proxy Authentication Required Request Time-out Conflict Gone Length Required Precondition Failed Request Entity Too Large Request-URI Too Large Unsupported Media Type Requested range not satisfiable Expectation Failed Indica um erro no servidor. Por exemplo, o código 503 indica que o servidor tem muitas solicitações (requests) para processar. Internal Server Error Not Implemented Bad Gateway Service Unavailable Gateway Time-out HTTP Version not supported

200 201 202 203 204 205 206 3xx

300 301 302 303 304 305 307 4xx

400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 5xx

500 501 502 503 504 505

121

Apêndice

Coleção ServerVariables

Itens da Coleção ServerVariables
Elemento ALL_HTTP Descrição Todos os headers HTTP enviados pelo browser cliente. ALL_RAW Todos os headers HTTP em seu estado original enviados pelo browser cliente. APPL_MD_PATH Path do metabase para para a aplicação. APPL_PHYSICAL_PATH Path físico correspondente ao path do metabase. AUTH_PASSWORD Senha fornecida no diálogo de autenticação do cliente (o IIS deve estar configurado para Basic Authentication). AUTH_TYPE Método de autenticação usado pelo servidor para validar usuários que solicitam scripts no servidor protegidos pela segurança do Windows NT. AUTH_USER Nome do usuário fornecido pelo usuário para o servidor se a página não permite acesso anônimo. CERT_COOKIE ID do certificado digital do cliente. CERT_FLAGS Valor de dois bits: bit 0 igual a 1 indica se o certificado do cliente está presente, bit 1 igual a 1 indica que a autoridade de certificação do certificado do cliente é inválida. CERT_ISSUER Campo Issuer do certificado do cliente (O=MS, OU=IAS, CN=usuário, C=USA). CERT_KEYSIZE Número de bits na chave de conexão Secure Sockets Layer. CERT_SECRETKEYSIZE Número de bits na chave do "server certificate private". CERT_SERIALNUMBER Campo Serial Number do certificado digital do cliente. CERT_SERVER_ISSUER Campo Issuer do certificado do servidor. CERT_SERVER_SUBJECT Campo Subject do certificado do servidor. CERT_SUBJECT Campo Subject do certificado do cliente. CONTENT_LENGTH Número de bytes enviados no corpo (body) da request. CONTENT_TYPE Tipo MIME do conteúdo enviado pelo cliente. GATEWAY_INTERFACE Tipo de interface CGI usada pelo servidor web para manipular a request. HTTP_nomeheader Valor armazenado no header especificado. Veja na página XX a lista dos headers mais comuns. Qualquer header não incluído nessa lista deve ser prefixado com HTTP_ para ser acessado. HTTPS Retorna ON se a request vêm de um canal seguro ou OFF de um canal não-seguro. HTTPS_KEYSIZE Número de bits na chave de conexão Secure Sockets Layer. HTTPS_SECRETKEYSIZE Número de bits na chave do "server certificate private". 122

Apêndice

Coleção ServerVariables

HTTPS_SERVER_ISSUER Campo Issuer do certificado do servidor. HTTPS_SERVER_SUBJECT Campo Subject do certificado do servidor. INSTANCE_ID ID, em formato texto, para a instância do Internet Information Server (IIS). INSTANCE_META_PATH Path do metabase para a instância do Internet Information Server (IIS) que responde à request. LOCAL_ADDR Retorna o endereço do servidor do qual a request é originada. LOGON_USER Conta do usuário usada para efetuar o logon no Windows. PATH_INFO Path virtual e nome do documento solicitado pelo cliente, em relação à pasta raiz deste site. PATH_TRANSLATED Versão convertida do PATH_INFO que executa o mapeamento virtual para físico do path. QUERY_STRING Contém a query string acrescentada ao HTTP request (após o caractere ?). Também disponível na coleção QueryString. REMOTE_ADDR Endereço IP do computador do browser cliente. REMOTE_HOST Nome do host do browser cliente. REMOTE_USER Nome (se disponível) da máquina cliente que solicitou a página. REQUEST_METHOD Método usado pelo browser cliente no request (GET ou POST). SCRIPT_NAME Path virtual do script corrente. SERVER_NAME Nome do host, DNS alias, ou endereço IP do servidor. SERVER_PORT Número da porta em que a request foi recebida (80 para páginas normais e 443 para requests SSL). SERVER_PORT_SECURE Indica se a request HTTP está sendo gerenciada pelo servidor web em uma porta segura (1) ou em uma porta não segura (0). SERVER_PROTOCOL Nome e versão do protocolo usado pelo servidor web para manipular a request do cliente. SERVER_SOFTWARE Nome e versão do servidor web. URL Endereço URL base requisitado (sem a querystring) pelo browser cliente.

Headers HTTP mais comuns
HTTP_ACCEPT Lista de tipos MIME que o browser cliente pode aceitar. HTTP_ACCEPT_ENCODINGLista dos tipos de encoding que o cliente pode aceitar. HTTP_ACCEPT_LANGUAGE Código da linguagem do browser cliente. HTTP_COOKIE Cookie incluído com a request. HTTP_USER_AGENT Nome do browser utilizado pelo usuário. HTTP_REFERER URL da request original quando um redirecionamento ocorreu. 123

Apendice

Sites

Onde obter mais informações
Sites Internacionais
www.15seconds.com www.4guysfromrolla.com www.actionjackson.com www.activeserverpages.com www.asp101.com www.asp-help.com www.aspforums.com www.aspfree.com www.asphole.com www.aspin.com www.aspkicker.com www.asplists.com www.asptoday.com www.asptracker.com www.aspwatch.com www.aspwire.com www.aspzone.com www.chilisoft.com www.componentsource.com www.cookiecentral.com www.devguru.com www.kamath.com www.halcyonsoft.com www.haneng.com www.powerasp.com www.serverobjects.com www.superexpert.com www.tcp-ip.com www.ultimateasp.com

Sites em Português
www.aspbrasil.com.br

124

Apêndice

Notação Sintática Utilizada
itens em negrito Na sintaxe dos comandos, identificam as palavras reservadas da linguagem Visual Basic. itens em itálico Identificam as informações que devem ser fornecidas pelo programador. [] Na sintaxe dos comandos, os itens dentro de colchetes são opcionais. ••• Identifica as partes de um comando que podem ser repetidas. {opção1|opção2|..} Indica que deve ser escolhida uma opção entre duas ou mais alternativas.

Novatec na Internet
Conheça o site da Novatec Editora

www.novateceditora.com.br
Veja a relação de nossas publicações; Conheça os últimos lançamentos; Adquira nossas publicações através da Internet; Cadastre-se para ser informado das novidades da Novatec; Faça o download (parcial) dos Guias; E muito mais.

E-mail: leitor@novateceditora.com.br

125

Índice

126

Índice

127

Índice

128

ASP
ASP (Active Server Pages) é uma tecnologia criada pela Microsoft que permite criar páginas web dinâmicas usando scripts do lado servidor ("server-side"). Este Guia de Consulta Rápida descreve de maneira suscinta todos os objetos, propriedades, métodos e eventos do ASP 3.0. Inclui também uma referência completa da linguagem VBScript. Indispensável para quem quer obter o máximo proveito da tecnologia ASP, sem perder tempo consultando volumosos manuais. Prático para carregar e consultar.

Copyright © Novatec Editora Ltda. Fone: (0xx11) 6959-6529 Fax: (0xx11) 6950-8869 Internet: www.novateceditora.com.br

Sign up to vote on this title
UsefulNot useful