OpenSchema è un metodo dell'oggetto ADO Connection che viene usato raramente ed è di conseguenza pittosto sconosciuto ai più; in questo articolo analizzeremo il suo utilizzo.
L'oggetto ADO Connection è molto utilizzato nelle pagine ASP, e con esso anche i suoi metodi come ad esempio Open, Close, Execute, ecc. Esiste un metodo di questo oggetto che ha funzionalità totalmente differenti da quelli sopra citati: il metodo OpenSchema, il quale fornisce i dettagli della struttura di un Database. Anche se poco utilizzato, in alcune situazioni, questo metodo può rivelarsi molto utile.
La sintassi per utilizzare il metodo OpenSchema è la seguente:
- TipoQuery: tipo di query-schema da esguire
- Criteri: array opzionale di criteri per la query
- SchemaID: parametro per query schema non definite dalle specifiche OLEDB
In questo articolo focalizzeremo la nostra attenzione sul parametro TipoQuery.
Questo parametro può assumere uno dei valori contenuti in SchemaEnum; per visulizzare la lista dei valori
disponibili, aprite adovbs.inc e cercate le costanti con prefisso adSchema.
Per le finalità di questa discussione comunque, mostreremo due esempi:
1 - Sript che visualizza i nomi delle tabelle contenute in un database
2 - Sript che visualizza i campi contenuti in una determinata tabella
Se come TipoQuery utilizziamo adSchemaTables (che corrisponde a 20), il metodo OpenSchema restituisce un Recordset contenente i seguenti campi:
Nel caso si utilizzi un database Access, TABLE_CATALOG fornisce la posizione fisica del file .mdb.
TABLE_NAME restituisce il nome della tabella e TABLE_TYPE il tipo di tabella. I principali valori
possibili per TABLE_TYPE sono: SISTEM TABLE, TABLE, VIEW.
Per conoscere le tabelle di nostro interesse che contiene un database dobbiamo elaborare uno script che
sia in grado di selezionare solo le tabelle di tipo TABLE; ecco il codice di esempio:
VISUALIZZARE LA LISTA DEI CAMPI CHE COSTITUISCONO UNA TABELLA
Se utilizziamo OpenSchema con la costante adSchemaColumns (che corrisponde a 4), il recordset che otteniamo fornisce i dettagli dei campi di tutte le tabelle; esso è costituito dai seguenti campi:
Il campo COLUMN_NAME di tutti i records che hanno uno stesso valore di TABLE_NAME fornisce
la lista dei campi di quella determinata tabella.
L'esempio seguente permette di visualizzare i nomi dei campi che costituiscono una specifica
tabella; al posto di NomeTabella dovrete inserire il nome della tabella di cui volete
conoscere i campi:
Questo articolo è semplicemente una introduzione al metodo OpenSchema dell'oggetto Connection; ora potete sbizzarrirvi nell'esplorare da voi stessi le altre caratteristiche di cui dispone questo metodo.