In una versione a 64 bit di Windows lo strumento Amministratore ODBC visualizza i DSN utente sia a 32 bit che a 64 bit
Questo articolo fornisce una soluzione alternativa per il problema che si verifica nello strumento Amministratore origine dati ODBC.
Versione originale del prodotto: SQL Server
Numero originale della Knowledge Base: 942976
Sintomi
Una versione a 64 bit del sistema operativo Microsoft Windows include le versioni seguenti dello strumento Amministratore origine dati ODBC (Odbcad32.exe):
- La versione a 32 bit del file Odbcad32.exe si trova nella cartella
%systemdrive%\Windows\System32
. - La versione a 64 bit del file Odbcad32.exe si trova nella cartella
%systemdrive%\Windows\SysWoW64
.
Il file Odbcad32.exe visualizza i tipi di nomi di origine dati (DSN) seguenti:
- DSN di sistema
- DSN utente
Sintomo 1
La versione a 32 bit dello strumento Amministratore ODBC visualizza DSN di sistema a 32 bit, DSN utente a 32 bit e DSN utente a 64 bit. La versione a 64 bit dello strumento Amministratore ODBC visualizza DSN di sistema a 64 bit, DSN utente a 32 bit e DSN utente a 64 bit.
Sintomo 2
La funzione SQLDataSources
restituisce tutte le versioni dei DSN utente, indipendentemente dall'architettura dell'applicazione. La funzione SQLDataSources
chiamata in un'applicazione a 32 bit restituisce solo DSN di sistema per i driver a 32 bit, ma restituisce DSN utente sia per i driver a 32 bit che per i driver a 64 bit. Analogamente, la funzione SQLDataSources
chiamata in un'applicazione a 64 bit restituisce solo DSN di sistema per i driver a 64 bit, ma restituisce DSN utente sia per i driver a 32 bit che per i driver a 64 bit. Pertanto, se l'applicazione effettua una connessione usando un DSN utente restituito dalla funzione SQLDataSources
, è possibile che venga visualizzato il messaggio di errore seguente:
Nome origine dati non trovato e nessun driver predefinito specificato
Si considerino ad esempio gli scenari seguenti: Si crea un DSN utente per il driver a 32 bit "Microsoft Access Driver (*.mdb)". Questo driver non dispone di una versione a 64 bit corrispondente. La funzione SQLDataSources
chiamata in un'applicazione a 64 bit restituisce questo DSN utente a 32 bit. Tuttavia, se si effettua una connessione tramite questo DSN utente a 32 bit, viene visualizzato il messaggio di errore menzionato in precedenza in questa sezione.
Causa
I DSN utente vengono archiviati nella sottochiave del Registro di sistema seguente:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Il reindirizzamento del Registro di sistema non è abilitato per questa sottochiave del Registro di sistema. Pertanto, i DSN utente sono visibili sia nelle versioni a 32 bit che a 64 bit dello strumento amministratore ODBC.
Risoluzione
Per mantenere la compatibilità con le versioni precedenti, non è attualmente disponibile alcuna soluzione per questo problema.
Soluzione alternativa
Per risolvere questo problema, usare la versione appropriata dello strumento amministratore ODBC. Se si crea e poi si esegue un'applicazione a 32 bit su un sistema operativo a 64 bit, è necessario utilizzare lo strumento %windir%\SysWOW64\odbcad32.exe
Amministratore origine dati ODBC per creare l'origine dati ODBC. Per indicare il tipo di DSN, è possibile aggiungere "_32" ai DSN utente a 32 bit e "_64" ai DSN utente a 64 bit.
Ulteriori informazioni
Lo strumento amministratore ODBC a 64 bit può essere richiamato da Pannello di controllo per gestire i DSN utente e i DSN di sistema usati dai processi a 64 bit. In un sistema operativo a 64 bit, lo strumento amministratore ODBC a 32 bit viene usato per Windows nei processi Windows 64 (WOW64). È necessario richiamare direttamente lo strumento amministratore ODBC a 32 bit dalla cartella SysWoW64. È possibile usare lo strumento amministratore ODBC a 32 bit per gestire i DSN utente e i DSN di sistema usati dai processi WOW64.
I DSN di sistema vengono archiviati nella sottochiave del Registro di sistema seguente:
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI
Il reindirizzamento del Registro di sistema è abilitato per questa sottochiave del Registro di sistema. Pertanto, i DSN di sistema per i driver a 32 bit e per i driver a 64 bit sono separati. Lo strumento Amministratore ODBC a 64 bit non visualizza i DSN di sistema creati dallo strumento Amministratore ODBC a 32 bit. Analogamente, lo strumento Amministratore ODBC a 32 bit non visualizza i DSN di sistema creati dallo strumento Amministratore ODBC a 64 bit. Inoltre, lo strumento Amministratore ODBC a 64 bit non visualizza i DSN di sistema che utilizzano driver a 32 bit. Analogamente, lo strumento Amministratore ODBC a 32 bit non visualizza i DSN di sistema che utilizzano driver a 64 bit.
I DSN utente vengono archiviati nella sottochiave del Registro di sistema seguente:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Il reindirizzamento del Registro di sistema non è abilitato per questa sottochiave del Registro di sistema. Di conseguenza, entrambi gli strumenti Amministratore ODBC visualizzano tutti i DSN utente.
Per ulteriori informazioni sul reindirizzamento del Registro di sistema, vedere la sezione Redirector Registro di sistema.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per