Post by IvanCiao a tutti. In un progetto di VB6 quando faccio un Append su una tabella
in un DB mi da questo errore "Impossibile trovare ISAM installabile". Ho
aggiornato VB6 con le SP 5 e 6 ma niente da fare. Qualcuno sa aiutarmi?
Grazie.
--------------------------------
Inviato via http://arianna.libero.it/usenet/
Risponde Natale Fino
La causa del problema è dovuta all'impossibilità di trovare la DLL che funge
da collegamento per le tabelle esterne collegate al database Jet che
l'applicazione utilizza. Infatti il motore Jet è in grado di gestire in modo
nativo solo il formato .mdb e i collegamenti a tabelle esterne via ODBC. Per
ogni tipo di file ISAM (mi riferisco quindi a file .dbf, .xls, .pdx, .txt) è
necessario un driver specifico, ossia un'apposita DLL da caricare a runtime.
Pertanto l'errore 3170 si manifesta nei casi in cui la DLL non è installata
nel sistema o è stata spostata.
La prima circostanza si può verificare utilizzando l'applet di
amministrazione ODBC del Pannello di Controllo di Windows; nel secondo caso
controllando le informazioni memorizzate nel Registry (ossia il percorso
riportato dal Registry in cui i driver ISAM sono installati non sono
corrette).
Può darsi che nella reinstallazione del VB6 non sia stato selezionato il
checkbox Jet IISAM driver dell'opzione Data Access: in tal caso si riavvia
il Setup del VB utilizzando l'applet Installa Applicazioni del Pannello di
Controllo di Windows, e si premere il pulsante "Change Option" dopo aver
selezionato Data Access per selezionare "Jet IISAM Drivers".
Può anche trattarsi di una tabella esterna per la quale l'installazione di
default del VB non installa il driver ISAM (ad es. è il caso del driver per
il collegamento di fogli Excel). In questi casi si procede a riavviare
l'installazione del VB e a selezionare i driver ISAM necessari. Invece, se
le DLL sono state spostate o si trovano su un server non accessibile, il
Registry potrebbe non essere aggiornato: in tal caso si avvia l'utility
Regedit (Avvio/Esegui/Regedit) e si verifica che i valori delle chiavi del
percorso HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\"x.y"\Engines\ (in cui è
necessario sostituire "x.y" con 3.5 o 4.0 in base alla versione del motore
Jet installato) puntino alla destinazione corretta.
Ad esempio, selezionando la chiave ...\Engines\Xbase la stringa "win32" deve
puntare al percorso corretto della MSXBSE35.DLL per il Jet 3.5 o
msxbde40.dll per il Jet 4.0. Per localizzare queste DLL si può utilizzare la
funzione "Trova/File o cartelle..." dal pulsante Avvio del desktop di
Windows.