ODBC Call Failed – Error 3151 su Windows 7 a 64-bit: Come risolvere

ODBC Call Failed - Error 3151 su Windows 7 a 64-bit: Come risolvere

Questo insidioso errore di configurazione si manifesta solitamente a seguito della (re)installazione di un programma piuttosto vecchio su un sistema appena aggiornato a Windows 7 (o versione superiore) a 64-bit. Il software in questione, solitamente un client gestionale fatto in casa, funziona grazie a una connessione a un Database locale o remoto realizzata mediante driver ODBC.

Il problema

Il nostro scenario si verifica quando il programma di cui sopra non riesce a trovare la vostra origine dati e, nin potendo effettuare la connessione, presenta una finestra pop-up contenente il seguente errore:

ODBC Call Failed – Error 3151

Oppure, a seconda della versione del driver ODBC installato:

ODBC Connection Failed – Error 3146

La prima cosa da fare è, ovviamente, assicurarsi di aver installato l’ultima versione del driver ODBC sulla macchina e configurato correttamente il Data Source relativo al vostro Database tramite lo strumento di gestione ODBC presente in Pannello di Controllo -> Strumenti di Amministrazione -> Origini Dati ODBC. Nel caso in cui non lo abbiate fatto, rimediate subito! In caso contrario, continuate a leggere.

La causa

Nella maggior parte dei casi il problema è legato alla gestione delle connessioni ODBC da parte delle ultime versioni di Windows a 64-bit. A partire da Windows 7, infatti, lo strumento di amministrazione “Origini Dati ODBC” è presente in due versioni, quella per i client che necessitano di driver a  32 bit e quella che supporta i driver a 64 bit. Le due versioni, come spiegato in una nota della knowledge-base ufficiale, si trovano all’interno delle seguenti cartelle di sistema:

Origini Dati ODBC a 32 bit

Origini Dati ODBC a 64 bit

Quale è quella giusta? Dipende ovviamente dal tipo di Data Source che dovete configurare: la versione a 64 bit gestisce le connessioni ODBC che necessitano di Driver a 64 bit, mentre quella a 32 bit gestisce tutte le altre. nella maggior parte dei casi, quindi, la causa del vostro problema è dovuta al fatto che avete eseguito i passaggi corretti, utilizzando però lo strumento sbagliato.

La soluzione

Il problema, inutile dirlo, si risolve configurando l’origine dati ODBC tramite lo strumento appropriato: quello a 32 bit nel caso – molto probabile, se vi siete imbattuti nel problema – in cui la vostra applicazione necessiti di un driver ODBC a 32 bit e quello a 64 bit in tutti gli altri casi.

L’esistenza di due strumenti identici – addirittura con lo stesso nome file! – per impostare in modi diversi la medesima cosa è particolarmente fastidiosa e può generare non poca confusione. Ne ha probabilmente convenuto anche la Microsoft che non a caso, a partire da Windows 8, ha previsto due icone ben distinte all’interno degli Strumenti di Amministrazione che consentono a un utente mediamente smaliziato di potersi rendere conto della faccenda:

windows-8-control-panel-odbc-32bit-64bit

Sfortunatamente, il problema resta sostanzialmente irrisolto per tutte le versioni di Windows 7 a 64 bit dove, per ragioni – a detta della Microsoft stessa – di retro-compatibilità, questo Workaround non è mai stato implementato. All’interno degli Strumenti di Amministrazione di Windows 7 troverete infatti una singola icona, relativa alla versione a 64 bit dello strumento ODBC: motivo per cui moltissimi utenti e amministratori di sistema continuano a tutt’oggi a imbattersi nel problema e a risolverlo – si spera – leggendo con attenzione la knowledge-base oppure imbattendosi fortuitamente in articoli come questo.

Nella speranza che Microsoft trovi il modo di aggiungere una icona al pannello di controllo senza creare problemi di retro-compatibilità al proprio SO, concludo consigliandovi la lettura di alcuni articoli che descrivono una serie di problematiche legate all’argomento:

Anche per questa volta è tutto: felice connessione!

 

 

RELATED POSTS

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane.

View all posts by Ryan