Crossreference di tabelle e campi nelle query di un MDB PDF Stampa E-mail
Scritto da Alessandro Dereani   
Lunedì 15 Gennaio 2007 01:00

XREF.mdb è un'utility che permette la generazione e la visualizzazione delle xreference sull'uso di tabelle, campi e query al'interno di uno o più MDB che si è deciso di sottoporre ad analisi.

Le xreference generate sono di due tipi, la prima permette di rilevare l'interdipendenza tra le sole query, la seconda esprime la dipendenza che c'è nell'uso dei campi delle tabelle all'interno delle query.

L'utility possiede una barra di menu con due voci: Genera e Visualizza.
La voce Genera permette di selezionare l'MDB che si intende analizzare, scegliere quale tipo di xreference generare (una delle due o entrambe), e visualizzare la xreference generata (se l'MDB è complesso, cioè possiede molte decine di tabelle e di query, la generazione delle xreference occupa abbastanza tempo, soprattutto quella di tipo tabelle-query).
La voce Visualizza permette di elencare le xreference già elaborate e di visualizzarne una facendo un doppio clik sul selettore di record della xreference di interesse.
Al più è possibile visualizzare contemporaneamente due xreference: una di tipo query-query, l'altra di tipo tabelle-query.

Segue una descrizione dettagliata delle due maschere che si occupano di visualizzare i due tipi di xreference.

Form xreference query-query

Visualizza la xreference relativa all'uso delle sole query.
- Treeview in alto (query referenziate): visualizza per ogni query quali sono le eventuali query utilizzate al suo interno, cioè quali sono le query referenziate.
- Treeview in basso (query referenzianti): visualizza per ogni query quali sono le eventuali query che la utilizzano, cioè le query che la referenziano.
I pulsanti con la squadra e SQL permettono di aprire in struttura oppure di visualizzare l'SQL per la query correntemente selezionata in una delle due tree-view, questo a patto che l'MDB per il quale sono state generate le xreference sia ancora accessibile.
I due pulsanti freccia in alto e freccia in basso permettono di localizzare in modo veloce le query nelle due tree-view.
Per esempio se nella tree-view in alto è selezionata una query, premendo il pulsante freccia in basso, la stessa query verrà selezionata nella tree-view in basso, e viceversa.
Questo permette di avere sotto occhio in modo veloce, fissata una query di riferimento, l'insieme di query referenziate e di quelle referenzianti.
Le due check-box Sincr. permettono di attivare in modo continuo la sicronizzazione tra le due tree-view.
Per esempio se la check-box Sincr. nelle query referenziate (quelle nella tree-view in alto) è spuntata, allora ad ogni selezione di una query, questa sarà localizzata automaticamente e selezionata anche nell'elenco delle query referenzianti (quelle nella tree-view in bassso).
Il pulsante con la freccia a destra invece permette di localizzare nella tree-view in alto presente nell'altra form xreference tabelle-query, la query che risulta essere correntemente selezionata.

Form xreference tabelle-query

Visualizza la xreference relativa all'uso delle tabelle e dei campi nelle query.
- Treeview in alto (tabelle/campi referenziati): visualizza per ogni query quali sono le tabelle e i rispettivi campi utilizzati al suo interno, cioè le tabelle e i campi referenziati.
- Treeview in basso (query referenzianti): visualizza per ogni tabella e per ogni suo campo, quali sono le query che vi accedono, cioè le query referenzianti.
I pulsanti con la squadra e SQL permettono di aprire in struttura oppure di visualizzare l'SQL (solo per le query) per la query o la tabella correntemente selezionata in una delle due tree-view.
Il pulsante freccia in alto permette di localizzare nella tree-view in alto (tabelle/campi referenziati) la query che è correntemente selezionata nella tree-view in basso (query referenzianti).
Invece la freccia in basso permette di localizzare nella tree-view in basso (query referenzianti) la tabella che è correntemente selezionata nella tree-view in alto (tabelle/campi referenziati).
Le due check-box Sincr. permettono di attivare in modo continuo la sicronizzazione tra le due tree-view secondo i comportamenti sopra descritti.
Il pulsante con la freccia a sinistra invece permette di localizzare nella tree-view in alto presente nell'altra form xreference query-query, la query che risulta essere correntemente selezionata.

Seleziona speciale abbinata a combinazione di tasti

Selezionando gli elementi presenti nelle tree-view attraverso il click con il sx e tenendo premuto il tasto CTRL, si otterrà l'espansione/compressione automatica del nodo in modo da visualizzare tutti i sottoelementi di primo livello.
Invece eseguendo la selezione tenendo premuti CTRL + ALT si otterrà l'espansione/compressione automatica di tutti i livelli del nodo in modo da visualizzare tutti i sottoelementi.

Query che vengono correttamente processate

Una corretta elaborazione delle xreference è garantita solo per le query in cui è usato il qualificatore di tabella o alias per referenziare i campi (select t.campo from Tabella t oppure select Tabella.campo from Tabella e non select campo from Tabella), e solo se i nomi di tabella non coincidono con nomi di query (l'oggetto T non può essere sia il nome di una tabella che quello di una query).
In più non tutti i casi di uso della sintassi .* per indicare tutti i campi di una tabella sono correttamente interpretati, di conseguenza è bene costruire query che specifichino sempre in modo diretto l'elenco dei campi da coinvolgere.

L'utility non è un parser di SQL, la rilevazione dell'uso delle tabelle e dei campi viene fatto attraverso l'uso di espressioni regolari facendo affidamento alla sintassi del Jet-SQL usato da Access, inoltre viene dato per scontato che tutte le query contenute nell'mdb da analizzare siano già sintatticamente corrette.
Non essendo un parser, il metodo non è infallibile anche se per l'uso che ne è stato fatto fino ad ora si è comportato in modo corretto.
Se chi intenderà usare l'utility scoprisse nuovi casi in cui le espressioni regolari ora falliscono, è pregato gentilmente di avvisarmi… grazie!

ATTENZIONE
Utility in formato Access 2000.
Riferimenti necessari: DAO 3.6, Microsoft VBScript Regular Expressions 5.5 (libreria installata da Windows Scripting Host 5.6), Microsoft Windows Common Controls 6.0 (SP6), OLE Automation.
L'utility contiene al suo interno già delle xreference elaborate come esempio, si consiglia di scompattare lo zip nel percorso c:\temp\xref.
Gli esempi elaborati si riferiscono a Nwind.mdb e allo stesso xref.mdb.
 

 


Sistema operativo: Win32
Applicazioni: Access 2000, Access 2002/XP, Access 2003

 

Allegati:
FileDescrizioneDimensione del File
Scarica questo file (xref.zip)xref.zip 887 Kb
Ultimo aggiornamento Giovedì 02 Luglio 2009 11:35