FileMaker, Windows 7 e l’ODBC che non c’è
Abbiamo appena finito di testare il nostro ultimo lavoro sviluppato con FileMaker. Siamo soddisfatti: abbiamo ottenuto una serie di procedure eleganti che utilizzano, tra le altre cose, alcune sorgenti ESS via ODBC.
Finalmente andiamo dal cliente. Per installare il tutto e chiudere il lavoro preventiviamo un paio di ore. Abbiamo già testato tutto il testabile e il cliente ha già approvato.
Cosa potrà mai andare storto?
La macchina su cui installiamo FileMaker Server ospita Windows 7 Pro a 64 bit, e l’installazione va liscia come l’olio. Anche al momento di configurare le sorgenti dati in ODBC non abbiamo un problema che è uno. Carichiamo il file su FileMaker Server, facciamo alcuni collaudi e… non funzionano le ESS.
Alziamo un sopracciglio. Apriamo il tutto con FileMaker Pro e non vediamo nulla. Eliminiamo la sorgente dati nel pannello di amministrazione ODBC, la ricreiamo, ma non cambia niente. Proviamo ogni sorta di macumba (riavvii e reinstallazioni comprese), ma senza alcun esito. A questo punto, dopo aver invocato Chtulhu e altre divinità minori in maniera convinta e ripetuta, prima di passare alle maniere forti con l’hardware ci ricordiamo di una “arcana” caratteristica di Windows 7…
L’arcano dei pannelli gemelli
In sintesi, nella versione a 64 bit di Windows 7 esistono due versioni del pannello di amministrazione di ODBC.
La versione a 32 bit è
$discosistema\Windows\SysWoW64\Odbcad32.exe
mentre la versione a 64 bit è
$discosistema\Windows\System32\Odbcad32.exe
($discosistema è quasi sempre c:\)
La versione a cui si accede dal pannello di controllo è quella a 64 bit. Versione nella quale si può magari caricare anche i driver per il 32 bit senza che l’OS li prenda minimamente in considerazione, dato che le due gestioni sono totalmente separate, distinte e indipendenti.
Sintesi della sintesi: stiamo lavorando su un OS che ha due gestioni ODBC separate, con due eseguibili che non solo hanno lo stesso nome, ma di cui quello a 32 bit è in una directory che si chiama SysWoW64, mentre quello a 64 è in System32.
Ciliegina sulla torta, il sistema propone automaticamente e sempre l’interfaccia del 64 bit, senza avvisare che esiste una gestione separata per le applicazioni a 32 bit.
In conclusione
Nel caso di un applicativo a 32 bit che fa uso dei driver ODBC, questo cercherà la configurazione a 32 bit e non leggerà l’impostazione del DSN che stoltamente crediamo di aver configurato correttamente, perché è a 64 bit. Noi la vediamo in evidenza nel pannello di controllo ma l’applicativo no, perché la configurazione del DSN a 32 bit è vuota. Per configurare il driver ODBC a 32 bit si deve lanciare manualmente l’applicativo
$discosistema\Windows\SysWoW64\Odbcad32.exe.
Dopo aver elevato alte laudi ai responsabili di cotanta meraviglia, dobbiamo solo ricordarci che dato che FileMaker Server (a seconda delle versioni) può essere in parte o totalmente a 64 bit, è fondamentale caricare le sorgenti dati ODBC in entrambe le interfacce, dando esattamente gli stessi nomi nelle due versioni.
Alle prese con un problema insormontabile in FileMaker? Raccontaci il tuo caso e trova la soluzione con il supporto degli altri Guru: scopri la comunità Filemaker su Guru Corner!