Buongiorno a tutta la ML,
la mia applicazione si appoggia ad un DB Access che utilizza delle tabelle
collegate che puntano a dei file CSV... e tutto funziona correttamente.
Avrei la necessità di modificare a runtime il percorso dove risiedono
questi file CSV per poter fare il deploy dell'applicazione.
Ho visto che la tabella di sistema MSysObjects , presente in ogni DB
Access, contiene tutti i riferimenti alle tabelle ma, ahime.... è
read-only.
Ho provato quindi un approccio diverso, utilizzando ADOX.... ma nulla da
fare.
Riesco a linkare da codice una tabella presente in un altro DB ma non
riesco a linkare un file CSV.
Ecco il codice che ho usato, prendendo come riferimento le Properties che
*leggo* dalle stesse tabelle :
Dim Cn As ADODB.Connection
Dim Cat As ADOX.Catalog
Dim tbl As ADOX.Table
Cn = New ADODB.Connection
Cat = New ADOX.Catalog
tbl = New ADOX.Table
Cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\csv\modelnet.mdb")
Cat.ActiveConnection = Cn
tbl.Name = "DmpMKHDR"
tbl.ParentCatalog = Cat
tbl.Properties("Jet OLEDB:Link Provider String").Value =
"Text;DSN=DmpMKHDR - specifica di
collegamento;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;"
tbl.Properties("Jet OLEDB:Link Datasource").Value = "C:\csv2"
tbl.Properties("Jet OLEDB:Remote Table Name").Value =
"dmpMKHDR#CSV"
tbl.Properties("Jet OLEDB:Create Link").Value = True
Cat.Tables.Append(tbl)
La prova consistenza nel modificare il percorso dei file CSV da C:\CSV a
C:\CSV2.
Eseguendo il codice che ho riportato ottengo la seguente COMException :
Specifica file di testo "DmpMKHDR - specifica di collegamento"
inesistente. Impossibile importare, esportare o collegare con tale
specifica.
Qualcuno ha qualche idea illuminante ?
Grazie a tutti.
Ciao!
My Blog... http://blogs.dotnethell.it/Mark/