Newsgroup: it.comp.www.asp
Titolo: (Req) Una vittima di ADO Connection.OpenSchema chiede aiuto a qualche individuo dissennato quanto lui

Ciao
Sono eXtra-irritato... e vi spiego perchè.
Sto sviluppando una banale utilità di amministrazione di database con
tecnologia ASP. Volevo rendere quanto più astratto e portabile il motore di
navigazione, lasciando che fosse direttamente la procedura ASP a recuperare
le informazioni (cosiddette "metadata") sulla struttura (o schema) del
database, ossia essenzialmente le tabelle e le colonne di cui è composto.
Che bello! C'è giusto un metodo che fa al caso mio: OpenSchema dell'oggetto
Connection (libreria ADODB). Niente di più elegante per gestire un database!
Assolutamente entusiasmato, mi fiondo a provare un'interrogazione ma...
"metodo non supportato dall'oggetto" è l'inquietante messaggio d'errore che
appare nella finestra del browser durante il test.
Ogni sviluppatore ha la sua via crucis (il debugging), così ho iniziato la
mia:
1. istanziazione dell'oggetto: negativo (ADODB.Connection correttamente
istanziato, gode di ottima salute);
2. supporto di versione: negativo (sulla macchina gira ADO 1.5 e, secondo la
documentazione MSDN, l'oggetto Connection in questa versione dovrebbe
baldanzosamente supportare il metodo);
3. la solita puttanata di MicroSoft: non negativo?
Raccolgo volentieri consigli, insulti e provocazioni. Chiedo solo una cosa:
spiegatemi perchè questo c... di metodo bello e impossibile non mi
funziona!! E magari offritemi una soluzione alternativa.
Grazie gente

 Grazie gente
Potresti usate l'oggetto Catalog di ADOX , ma non so da che versione
ADO sia supportato.
Ciao
Corrado


E' inutile stare a riportare tutto il post, se fai in tempo puoi trovare
un'ottimo esempio sulla rivsta di Tecniche Nuove dal nome Internet News.
L'esempio è la costruzione di un Video Catalogo on line con l'utilizzo di:
ASP, ADO, VisualBasic e Access o MySql
E' molto chiaro, te lo consiglio. Ma dovresti spegnere il pc ed andare in
cartolibreria perché è nel numero di maggio.
Ovviamente di lì puoi prendere spunto come ho fatto io.
a me servirà una cosa simile per l'organizzazione di un Archivio Storico in
un Comune della mia Provincia..ovviamente con qualche tabbellina e qualche
campetto in più :-(
ciao....
Michele

 ADO sia supportato.
Grazie Corrado
Proverņ a seguire il tuo consiglio.

 E' molto chiaro, te lo consiglio.
Grazie Michele

 funziona!! E magari offritemi una soluzione alternativa.
Sto postando questo auto-feedback dopo essere incappato in una buona
soluzione facile-facile per MS Access:
Set RecordSetX = ConnectionX.Execute("SELECT DISTINCTROW MSysObjects.Name,
MSysObjects.Id FROM MSysObjects WHERE ((MSysObjects.Type = 1) AND
(MSysObjects.Flags = 0)) ORDER BY MSysObjects.Name")
L'interrogazione punta sulla tabella "MSysObjects" che è deputata a
contenere le informazioni di struttura del DB. La clausola "WHERE" seleziona
il tipo di oggetto "Type" come tabella (codice 1), al contempo si evita di
considerare altre sozzure (le altre tabelle di sistema) scegliendo "Flags"
pari a 0. Nel RecordSetX risultante il campo "Name" rappresenta il nome di
ciascuna tabella, mentre "Id" è ovviamente l'identificativo.
Per ottenere tutti gli attributi disponibili di MSysObjects è sufficiente
correggere la precedente stringa SQL così: "SELECT DISTINCTROW * FROM"... e
iterare la collezione RecordSetX.Fields
Per rendere attiva l'interrogazione occorre impostare l'autorizzazione
all'accesso delle tabelle di struttura del vostro database. In Access97 si
segue questa procedura:
1. menu Strumenti/Opzioni...
2. nella finestra delle Opzioni scegliere la cartella "Visualizzazione".
All'interno del frame "Mostra" attivare la check "Oggetti di sistema".
Premere "OK". Ora le tabelle di sistema sono visibili nella collezione delle
tabelle del database.
3. menu Strumenti/Sicurezza/Autorizzazioni utenti e gruppi...
4. nella finestra delle Autorizzazioni selezionare nella lista "Nome
oggetto" la tabella "MSysObjects", quindi impostare nel frame
"Autorizzazioni" le checks che interessano (per il pieno accesso premere
"Amministrazione", per la lettura "Lettura struttura" e "Lettura dati").
Premere "OK". Ora è stato abilitato l'accesso in interrogazione alla tabella
di struttura.
5. riaprire la finestra delle Opzioni e disattivare la check "Oggetti di
sistema".
Spero che questo sia utile a qualcuno
Ciao

Ciao Stefano
io ho il tuo stesso, credo, problema. Vorrei capire bene come fare
attraverso uno script in asp, a creare un archivio vuoto, creare delle
tabelle e modificare la struttura delle tabelle.
Tra i meandri di Microsoft non sono riuscito a repereire le informazioni che
mi servono. So che si usa ADOX.Catalog e ADOX.Table ma non so bene come
fare.
Oltre a cio', e qui mi sa che mi prendero' una botta nei denti da
qualcuno..., vorrei sapere se esiste un metodo per sincronizzare 2 tabelle
uguali, una in locale e una in remoto.
Ciao e speriamo che ...
Gio(vanni)