Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Ricette Cocktail Registrazione domini Area Aziende



Gestione dei nomi delle tabelle e dei campi di un db con OpenSchema

Home + Articoli + Database e SQL + Articolo # 157
Autore: Luca Ruggiero

Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.


Introduzione

La collezione OpenSchema dell'oggetto Connection di ADO permette, attraverso dei parametri, di accedere in sola lettura ai nomi delle tabelle e dei relativi campi di un database.

Per accedere ai nomi delle tabelle utilizzeremo il parametro (20) e per accedere ai nomi dei campi utilizzeremo il parametro (4).

Il database

Costruiamo il file database.mdb e creiamo la tabella utenti composta dai campi nome e cognome, entrambi di tipo testo.

Posizionate il database sul vostro server Web personale e, nella stessa posizione, creerete i file ASP di esempio che analizzeremo a breve.

Elenco delle tabelle del database

Creiamo adesso il file tabelle.asp ed al suo interno inseriamo il seguente codice
<%@LANGUAGE = VBScript%>
<%
    Dim sc, cn, os

    sc = "driver={Microsoft Access Driver (*.mdb)};dbq="
    sc = sc & Server.MapPath("database.mdb")

    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open sc

    Set os = cn.OpenSchema(20)

    While os.EOF = False
        If Trim(os("TABLE_TYPE")) = "TABLE" Then
            Response.Write os("TABLE_NAME") & "<br>"
        End If
        os.MoveNext
    Wend

    Set os = Nothing
    cn.Close
    Set cn = Nothing
%>
Passiamo ad OpenSchema il parametro (20), ci accertiamo che il valore del parametro TABLE_TYPE sia TABLE ed eseguiamo un ciclo sul parametro TABLE_NAME.

Elenco dei nomi dei campi di una tabella

Creiamo adesso il file campi.asp ed al suo interno inseriamo il seguente codice
<%@LANGUAGE = VBScript%>
<%
    Dim sc, cn, os

    sc = "driver={Microsoft Access Driver (*.mdb)};dbq="
    sc = sc & Server.MapPath("database.mdb")

    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open sc

    Set os = cn.OpenSchema(4)

    While os.EOF = False
        If Trim(os("TABLE_NAME")) = "utenti" Then
            Response.Write os("COLUMN_NAME") & "<br>"
        End If
        os.MoveNext
    Wend

    Set os = Nothing
    cn.Close
    Set cn = Nothing
%>
Passiamo ad OpenSchema il parametro (4), ci accertiamo che il valore del parametro TABLE_NAME corrisponda alla tabella che ci interessa ed eseguiamo un ciclo sul parametro COLUMN_NAME.

Conclusioni

Esistono diversi scopi per cui può tornare utile utilizzare la collezione OpenSchema in un'applicazione (Web o meno che sia, ma che utilizzo ADO); genericamente può essere utilizzata per la costruzione di DB Manager in cui può tornare utile conoscere lo schema del database ed il contenuto delle relative tabelle, al fine di impostare controlli di vario tipo per monitorare l'esecuzione di comandi SQL per la gestione strutturale.

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones