ASP - Usando o arquivo ADOVBS.INC


Geralmente recebo e-mails solicitando informações sobre o arquivo ADOVBS.INC. Resolvi falar um pouco sobre ele.

O arquivo ADOVBS.inc é incluído com o IIS - Internet Information Service - e possui todas as constantes definidas para a ADO - ActiveX Data Object.

Para saber mais sobre como trabalhar com banco de dados na web leia o artigo: ASP e ADO - Colocando o seu banco de dados na Web

Se você usar uma conexão com banco de dados você provavelmente usará constantes com nomes como adOpenForwardOnly e adLockReadOnly em seus script ASP. Pois bem estas constantes estão todas definidas no arquivo ADOVBS.INC. Abaixo temos um exemplo de como seria o código para criar em uma página um objeto Recordset com um cursor do tipo KeySet:

<!--#include virtual="/adovbs.inc"-->
<%
   Dim objConn, strSQL
   Set objConn = Server.CreateObject("ADODB.Connection")
   objConn.Open "DSN=Macoratti"

   strSQL = "SELECT * FROM Tabela"

   Dim objRS
   Set objRS = Server.CreateObject("ADODB.Recordset")
   objRS.Open strSQL, objConn, adOpenKeyset

   '...
%>

Você pode então incluir o arquivo ADOVBS.INC em suas páginas ASP usando o comando include no início das páginas ASP:

<!--#include virtual="/adovbs.inc"-->

Se você usar o comando include como acima deverá por o arquivo ADOVBS.INC no diretório raiz da sua aplicação web.

Apenas para você ter uma idéia estou exibindo abaixo um parte do arquivo ADOVBS.INC:

<%
'--------------------------------------------------------------------
' Microsoft ADO
' (c) 1996 Microsoft Corporation. All Rights Reserved.
'
' ADO constants include file for VBScript
''--------------------------------------------------------------------
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

'---- CursorOptionEnum Values ----
Const adHoldRecords = &H00000100
Const adMovePrevious = &H00000200
Const adAddNew = &H01000400
Const adDelete = &H01000800
Const adUpdate = &H01008000
Const adBookmark = &H00002000
Const adApproxPosition = &H00004000
Const adUpdateBatch = &H00010000
Const adResync = &H00020000
Const adNotify = &H00040000

....

Uma saída mais elegante para não ter que usar o include do arquivo adovbs.inc em suas páginas ASP é usar a tag METADATA no lugar de include.

A tag METADATA possui o seguinte formato:

<!--METADATA
     TYPE="typelib"
     FILE="FileName"
     UUID="TyleLibraryUUID"
-->

Você precisa definir obrigatoriamente o TYPE e o FILE ou o UUID, assim você pode definir a TBL ou DLL diretamente pela propriedade FILE ou através de UUID. Um exemplo de uso seria:

<!-- METADATA 
        TYPE="typelib" 
        UUID="00000200-0000-0010-8000-00AA006D2EA4"
-->

ou

<!-- METADATA 
        TYPE="typelib" 
        FILE="C:\Program Files\Common Files\System\ADO\msado20.tlb"
-->

Substituindo o comando include pela tag METADATA teríamos:

<!-- METADATA 
        TYPE="typelib" 
        FILE="C:\Program Files\Common Files\System\ADO\msado20.tlb"
-->

<%
   Dim objConn, strSQL
   Set objConn = Server.CreateObject("ADODB.Connection")
   objConn.Open "DSN=Macoratti"

   strSQL = "SELECT * FROM Tabela"

   Dim objRS
   Set objRS = Server.CreateObject("ADODB.Recordset")
   objRS.Open strSQL, objConn, adOpenKeyset

   '...
%>

Mas agora é que vem a boa notícia...

Se você colocar a tag METADATA no seu arquivo Global.asa isto fará com que cada página ASP na sua aplicação WEB reconheça as constantes ADO e você não precisará mais incluir em cada página ASP o arquivo ADOVBS.INC.

Mas se você ainda quiser continuar usando o arquivo adovbs.inc pegue o arquivo aqui : adovbs.inc

Para saber mais sobre o include de arquivos em páginas ASP acompanhe o artigo: ASP - Usando Server-Side Includes.

Bom estudo e até o próximo artigo ASP...


José Carlos Macoratti