Se vi siete avvicinati alle Active Server Pages per un periodo superiore a qualche settimana prima o poi vi sarete trovati davanti qualche riferimento ad un mistico file adovbs.inc.
La situazione curiosa è che, nella maggior parte dei casi, gli script funzionavano ugualmente sia che il file fosse incluso sia che il file non fosse in alcun modo richiamato. Però, quasi per tradizione, questo file doveva essere linkato ed inserito ovunque per scongiurare possibili malfunzionamenti.
In questo articolo vedremo il significato del file adovbs.inc, il suo compito e la sua utilità.
Per quanti già ne conoscono le caratteristiche questa pubblicazione può rappresentare un ripasso o un approfondimento. Per i newbie mi auguro che possa essere finalmente la risposta che aspettavano dopo aver seguito decine di tutorial senza che mai fossero spese 2 righe di spiegazione in merito.
Significato del file
Una delle prime caratteristiche che salta all'occhio quando si leggono tutorial sull'ASP è come questo file sia sempre e comunque chiamato in questo modo.
Il file adovbs.inc non ha un nome se non adovbs.inc. Sebbene possa essere chiamato adovbs.asp piuttosto che costanti_ado.asp, di norma si tende a lasciarlo inalterato stile "file in sola lettura". Si tratta di un'abitudine consolidata siccome il nome del file, come vedremo in seguito, è già sufficientemente esplicativo di per sé.
L' estensione .inc è sinonimo di inclusione. I programmatori "vecchio stile" si ricorderanno di quando nei manuali l'unica estensione utilizzata per i file inclusi era appunto .inc. Anche in questo caso si parla di tradizione poiché il webserver IIS è in grado di includere qualsiasi file con un contenuto testuale, sia esso con estensione .txt, .asp, .inc o .quellochepreferisco .
Attualmente è abitudine utilizzare, anche per i file inclusi, l'estensione .asp poiché se richiamati da soli i file vengono comunque interpretati e nella maggior parte dei casi non viene mostrato il codice sorgente, al contrario di come avviene per i .inc.
Maggiormente significativo è il nome del file: adovbs. Si tratta della fusione del termine ADO con VBS.
ADO sta per ActiveX Data Objects ed è una delle tecnologie più diffuse per accedere con ASP, ma non solo, a delle sorgenti di dati come database o file Excel.
VBS invece significa Visual Basic Script, più comunemente conosciuto come VBScript, uno dei due linguaggi di scripting più utilizzati per scrivere codice in ASP.
A questo punto resta da spiegare il motivo di questo nome. La risposta è molto semplice. Il file, come vedremo in seguito, contiene una lunga lista di costanti ADO da utilizzare in fase di sviluppo di script con VBScript.
Esiste una versione parallela di adovbs.inc dedicata al linguaggio JavaScript che si chiama adojavas.inc.
Contenuto e collocazione del file
Il file adovbs.inc è presente, di norma, in tutti i sistemi operativi con installata una qualsiasi versione di IIS. Per rintracciarlo è sufficiente eseguire una ricerca per adovbs.inc all'interno del proprio sistema operativo. Di norma la collocazione originaria è C:ProgrammiFile comuniSystemado, contenente anche la versione per javascript prima citata.
Il file pesa circa 14 kb e si tratta di un comunissimo documento di testo di circa 521 righe. È possibile aprirlo con un qualsiasi editor di testo e, all'interno, appare più o meno come segue.
<%
'--------------------------------------------------------------------
' Microsoft ADO
'
' Copyright (c) 1996-1998 Microsoft Corporation.
'
'
'
' ADO constants include file for VBScript
'
'--------------------------------------------------------------------
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
' altre costanti
'---- FieldEnum Values ----
Const adDefaultStream = -1
Const adRecordURL = -2
'---- StreamReadEnum Values ----
Const adReadAll = -1
Const adReadLine = -2
'---- RecordTypeEnum Values ----
Const adSimpleRecord = 0
Const adCollectionRecord = 1
Const adStructDoc = 2
%>
Utilità del file adovbs.inc
Eccoci finalmente alla parte che molti stavano aspettando: a cosa serve il file adovbs.inc?
Prima di svelare il segreto, bisogna fare una piccola premessa. In programmazione è buona norma evitare l'uso di quelli che si chiamano i numeri magici. In particolare nelle situazioni in cui altri potrebbero leggere il nostro codice, numeri singoli all'interno dei sorgenti potrebbero non essere così intuitivi da comprendere.
Scrivere un codice del tipo:
intConto = intProdotto * 120
non è certamente intuitivo quanto
intConto = intProdotto * PREZZO_PRODOTTO
In questo caso è buona norma sostituire i numeri magici, nel nostro caso 120, con delle costanti rappresentative. Questo è lo scopo del file adovbs.inc, ovvero fornire una lista di costanti standard da utilizzare al posto dei rispettivi valori quando si interagisce con ADO.
Uno degli esempi maggiormente significativi è l'apertura di un recordset, quando è necessario settare il valore del CursorType e del LockType.
strSQL = "SELECT * FROM nometabella"
objRs.Open objConn, strSQL, 1, 2
Di certo scrivere
strSQL = "SELECT * FROM nometabella"
objRs.Open objConn, strSQL, adOpenDynamic, adLockPessimistic
è maggiormente significativo, ovviamente per quanti conoscono la gestione dei cursori e dei blocchi dei recordset. Per quanti non rientrano in questo gruppo, tuttavia, sarà più facile trovare una spiegazione soprattutto se si desidera cercarla su un motore di ricerca in internet.
Utilizzare il file è molto semplice. È sufficiente includerlo nelle proprie pagine con un classico include
<!-- #include file="adovbs.inc" -->
e da quel momento si disporrà di una serie di costanti utili per rendere più comprensibile il codice sorgente.
Personalmente non ho mai abbondato nell'uso del file adovbs.inc in quanto trovo particolarmente scomodo ricordarsi nomi di costanti del tipo adLockBatchOptimistic piuttosto che usare il valore 4. In alternativa è abitudine definire costanti maggiormente agevoli da scrivere.
Ora che avete una conoscenza più approfondita del file resta a voi decidere se usarlo o trovare un compromesso tra lo standard e l'ottimizzazione della fase di sviluppo.