ODBC データソース アドミニストレータにインストールしたはずのODBCドライバが表示されない

以下は、Windows XP Professional SP2でのお話です。
ODBCのドライバをインストールしたはずなのに、ODBC データソース アドミニストレータのドライバタブを見るとドライバが登録されていないということがたまにあります。僕の場合は、Firebird用のIBPhoenixのODBCドライバーをインストールしたので、タブ「ドライバ」の中に、"Firebird/InterBase(r) driver"が見えなければならないはずなのに見えませんでした。

先に対処法を書いておきます。レジストリキー、
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
の既定値(regeditで「(既定)」とあるところ)に空文字列などが入っていないか(「(値の設定なし)」以外の状態になっていないか)確認してみてください。それが原因です。既定値をクリックし、削除してやると、「(値の設定なし)」という状態になるかと思います。それで、ドライバーが表示されるようになります。(なお、これは僕がぶちあたった不具合に関しての対処方で、別の理由でドライバが表示されない場合もあるかもしれません。)

以降、調べたことや推察を書きます。
ドライバが表示されない状態で、
"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
をエクスポートしてみると、次の結果を得ました。(ちなみにregeditで見えるものはソートされていますから、regeditで見えるものと、エクスポートしたものとでは、項目の順番が大きく違うはずです。)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
"SQL Server"="Installed"
"Microsoft Access Driver (*.mdb)"="Installed"
"Microsoft Text Driver (*.txt; *.csv)"="Installed"
"Microsoft Excel Driver (*.xls)"="Installed"
"Microsoft dBase Driver (*.dbf)"="Installed"
"Microsoft Paradox Driver (*.db )"="Installed"
"Microsoft Visual FoxPro Driver"="Installed"
"Microsoft FoxPro VFP Driver (*.dbf)"="Installed"
"Microsoft dBase VFP Driver (*.dbf)"="Installed"
"Microsoft Access-Treiber (*.mdb)"="Installed"
"Microsoft Text-Treiber (*.txt; *.csv)"="Installed"
"Microsoft Excel-Treiber (*.xls)"="Installed"
"Microsoft dBase-Treiber (*.dbf)"="Installed"
"Microsoft Paradox-Treiber (*.db )"="Installed"
"Microsoft Visual FoxPro-Treiber"="Installed"
"Driver do Microsoft Access (*.mdb)"="Installed"
"Driver da Microsoft para arquivos texto (*.txt; *.csv)"="Installed"
"Driver do Microsoft Excel(*.xls)"="Installed"
"Driver do Microsoft dBase (*.dbf)"="Installed"
"Driver do Microsoft Paradox (*.db )"="Installed"
"Driver para o Microsoft Visual FoxPro"="Installed"
"Microsoft ODBC for Oracle"="Installed"
"Microsoft FoxPro Driver (*.dbf)"="Installed"
@=""
"Firebird/InterBase(r) driver"="Installed"

FirebirdODBCドライバーの情報とおぼしきものの上に「@=""」などという奇妙な情報が見えます。これは既定値が空文字列であることを意味しています。ODBC データソース アドミニストレータレジストリを調べているときに、この無意味な情報にぶち当たって、そこで調査を止めてしまっているようです。「@=""」までに見つけたドライバーはタブ「ドライバ」に表示されていました。なので、「@=""」なんてものが出てこないように、規定値の情報を削除して「(値の設定なし)」に戻してやると、問題が解決するわけです。この問題、ODBC データソース アドミニストレータが、変な情報を見つけたから、そこでレジストリの情報を調べるのを止めるということ自体は別におかしいものとは思いません。おかしいのは、何故、"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"の規定値が未定義以外になったのか?ということで、ODBCがらみのドライバーをインストール/アンインストールする、なんぞのインストーラー/アンインストーラーが要らんことをしたんだろうか……などと考えたりします。自分で直接レジストリをいじるなんてまずしないところですから、自分がやったとは思えません。ぐだぐだ考えますが、何故変な情報が書き込まれたかは、よう、わかりません。

関連URL:
[Firebird - Relational Database for the New Millenium]
[IBPhoenix Home]