ASPcenter.net

17 febbraio 2010

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

Archiviato in: ASP e database — Tag:, , — lukeonweb @ 13:21

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.

Nessun commento »

Non c'è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URL

Lascia un commento

ASPcenter.net è il blog italiano su ASP, ASP.Net, VB.Net, C# e Visual Studio - Funziona con WordPress