ADOX e Connessioni

martedì 20 settembre 2005 - 17.47

AntCiar Profilo | Expert

Salve a tutti
Sto realizzando una procedura per confrontare le tabelle di due database di Access e carpirne le differenze.
Per accedere all'insieme delle tabelle uso ADOX

Mi creo una connessione di tipo OleDbConnection e la setto con questra stringa: "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Path & ";" - ove con Path passo il percorso completo del file .MDB

Dichiaro un oggetto Pippo as new Adox.Catalog
Apro la connessione

poi l'errore su

Pippo.ActiveConnection = Con1

Testo dell'errore:

Eccezione non gestita di tipo "System.InvalidCastException" in Pippo.exe

Informazioni aggiuntive: Si sono verificati errori in un'operazione OLE DB composta da più passaggi. Controllare i singoli valori di stato OLE DB, se disponibili. Nessuna operazione eseguita.

Non so dove metter mani.
Se qualcuno può aiutarmi.
Grazie

Cteniza Profilo | Guru

Per confrontare due tabelle (al limite anche due database) non hai bisogno di utilizzare ADOX.
Definisci due tabelle (datatable)
preindi lo schema dei due database andando con una connessione diversa (già aperta) a dare il comando
Dim schemaTable As DataTable = oleDbConnection1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})

Questo ti tenera due tabelle con tutto l'elenco di tabelle presenti su ciascuno
Su altre due tabelle prendi tutti i campi di tutte le tabelle:
Dim schemaColumns As DataTable = oledbConnection1.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, _
New Object() {Nothing, Nothing, Nothing, Nothing})

A questo punto puoi iniziare a ciclare sulle tabelle per riscontrare le differenze


Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5