Lo strumento ODBC Administrator consente di visualizzare i DSN dell'utente a 32 bit e a 64 bit in una versione di Windows a 64 bit.

In questo articolo viene fornita una soluzione alternativa per il problema che si verifica nello strumento ODBC Data Source Administrator.

Versione originale del prodotto:   SQL Server
Numero KB originale:   942976

Sintomi

Una versione a 64 bit del sistema operativo Microsoft Windows include le seguenti versioni dello strumento ODBC Data Source Administrator Tool (Odbcad32.exe):

  • La versione a 32 bit del file Odbcad32.exe si trova nella %systemdrive%\Windows\SysWoW64 cartella.
  • La versione a 64 bit del file Odbcad32.exe si trova nella %systemdrive%\Windows\System32 cartella.

Il file Odbcad32.exe Visualizza i seguenti tipi di nomi di origine dati (DSN):

  • DSN di sistema
  • DSN utente

Sintomo 1

La versione a 32 bit dello strumento ODBC Administrator Visualizza DSN di sistema a 32 bit, DSN per gli utenti a 32 bit e DSN utente a 64 bit. La versione a 64 bit dello strumento ODBC Administrator Visualizza DSN di sistema a 64 bit, DSN per gli utenti a 32 bit e DSN utente a 64 bit.

Sintomo 2

La SQLDataSources funzione restituisce tutte le versioni dei DSN utente, indipendentemente dall'architettura dell'applicazione. La SQLDataSources funzione 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 SQLDataSources funzione 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 utilizzando un DSN utente restituito dalla SQLDataSources funzione, è possibile che venga visualizzato il messaggio di errore seguente:

Il nome dell'origine dati non è stato trovato e non è stato specificato alcun driver predefinito

Si consideri, ad esempio, lo scenario seguente. È possibile creare un DSN utente per il driver di 32 bit ' Microsoft Access driver (*. mdb)'. Questo driver non dispone di una versione di 64 bit corrispondente. La SQLDataSources funzione 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 degli utenti sono archiviati nella sottochiave del registro di sistema seguente:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

Il reindirizzamento del registro di sistema non è abilitato per la sottochiave del registro di sistema. Di conseguenza, i DSN degli utenti sono visibili sia nelle versioni a 32 bit che in quelle a 64 bit dello strumento ODBC Administrator.

Risoluzione

Per garantire la compatibilità con le versioni precedenti, non è attualmente disponibile alcuna soluzione per questo problema.

Soluzione alternativa

Per ovviare a questo problema, utilizzare la versione appropriata dello strumento ODBC Administrator. Se si compila e quindi si esegue un'applicazione come applicazione a 32 bit su un sistema operativo a 64 bit, è necessario creare l'origine dati ODBC utilizzando lo strumento ODBC Administrator in %windir%\SysWOW64\odbcad32 . exe. Per indicare il tipo di DSN, è possibile aggiungere '_32 ' ai DSN utente a 32 bit e '_64 ' ai DSN dell'utente a 64 bit.

Altre informazioni

Lo strumento di amministrazione ODBC a 64 bit può essere richiamato dal pannello di controllo per gestire i DSN utente e i DSN di sistema utilizzati dai processi a 64 bit. In un sistema operativo a 64 bit, lo strumento di amministrazione ODBC a 32 bit viene utilizzato per i processi di Windows su Windows 64 (WOW64). È necessario richiamare direttamente lo strumento di amministrazione ODBC a 32 bit dalla cartella SysWoW64 È possibile utilizzare lo strumento di amministrazione ODBC a 32 bit per gestire i DSN utente e i DSN di sistema utilizzati dai processi WOW64.

I DSN di sistema sono archiviati nella sottochiave seguente del registro:

HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI

Il reindirizzamento del registro di sistema è abilitato per la sottochiave del registro di sistema. Di conseguenza, i DSN di sistema per i driver a 32 bit e per i driver a 64 bit sono separati. Lo strumento di amministrazione ODBC a 64 bit non Visualizza i DSN di sistema creati dallo strumento di amministrazione ODBC a 32 bit. Analogamente, lo strumento di amministrazione ODBC a 32 bit non Visualizza i DSN di sistema creati tramite lo strumento di amministrazione ODBC a 64 bit. Inoltre, lo strumento di amministrazione ODBC a 64 bit non Visualizza i DSN di sistema che utilizzano driver a 32 bit. Analogamente, lo strumento di amministrazione ODBC a 32 bit non Visualizza i DSN di sistema che utilizzano driver a 64 bit.

I DSN utente sono archiviati nella sottochiave del registro di sistema seguente:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

Il reindirizzamento del registro di sistema non è abilitato per la sottochiave del registro di sistema. Di conseguenza, entrambi gli strumenti di amministrazione ODBC visualizzano tutti i DSN utente.

Per ulteriori informazioni sul reindirizzamento del registro di sistema, vedere redirector del registro di sistema.