64 ビット版の Windows で、ODBC アドミニストレーター ツールが 32 ビットと 64 ビット両方のユーザー DSN を表示する

文書翻訳 文書翻訳
文書番号: 942976 - 対象製品
すべて展開する | すべて折りたたむ

目次

現象

64 ビット版の Microsoft Windows オペレーティング システムには、以下のバージョンの Microsoft ODBC (Open Database Connectivity) データ ソース アドミニストレーター ツール (Odbcad32.exe) が含まれています。
  • 32 ビット版の Odbcad32.exe ファイルは、%systemdrive%\Windows\SysWoW64 フォルダーにあります。
  • 64 ビット版の Odbcad32.exe ファイルは、%systemdrive%\Windows\System32 フォルダーにあります。
Odbcad32.exe ファイルは、次の種類のデータ ソース名 (DSN) を表示します。
  • システム DSN
  • ユーザー DSN

現象 1

32 ビット版の ODBC アドミニストレーター ツールは、32 ビットのシステム DSN、32 ビットのユーザー DSN、および 64 ビットのユーザー DSN を表示します。64 ビット版の ODBC アドミニストレーター ツールは、64 ビットのシステム DSN、32 ビットのユーザー DSN、および 64 ビットのユーザー DSN を表示します。

現象 2

SQLDataSources 関数では、アプリケーションのアーキテクチャに関係なく、すべてのバージョンのユーザー DSN が返されます。32 ビット アプリケーションで呼び出される SQLDataSources 関数では、32 ビット ドライバーのシステム DSN のみが返されますが、ユーザー DSN については 32 ビット ドライバーと 64 ビット ドライバーの両方が返されます。同様に、64 ビット アプリケーションで呼び出される SQLDataSources 関数では、64 ビット ドライバーのシステム DSN のみが返されますが、ユーザー DSN については 32 ビット ドライバーと 64 ビット ドライバーの両方が返されます。そのため、SQLDataSources 関数から返されるユーザー DSN を使用してアプリケーションが接続を行う場合、次のエラー メッセージが表示されることがあります。
データ ソース名および指定された既定のドライバーが見つかりません
たとえば、次のような状況で問題が発生します。32 ビット ドライバー "Microsoft Access ドライバー (*.mdb)" 用のユーザー DSN を作成します。このドライバーには、対応する 64 ビット バージョンがありません。64 ビット アプリケーションで呼び出される SQLDataSources 関数は、この 32 ビットのユーザー DSN を返します。ただし、この 32 ビットのユーザー DSN を介して接続を行うと、このセクションの上記のエラー メッセージが表示されます。

原因

ユーザー DSN は、次のレジストリ サブキーの下に保存されています。
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
このレジストリ サブキーに関して、レジストリのリダイレクトは有効ではありません。そのため、ユーザー DSN は 32 ビット版と 64 ビット版両方の ODBC アドミニストレーター ツールで表示されます。

解決方法

下位互換性を維持するため、現時点でこの問題に対する解決策はありません。

回避策

この問題を回避するには、適切なバージョンの ODBC アドミニストレーター ツールを使用します。64 ビット オペレーティング システム上でアプリケーションを 32 ビット アプリケーションとしてビルドしてから実行する場合は、%windir%\SysWOW64\odbcad32.exe で ODBC アドミニストレーター ツールを使用して ODBC データ ソースを作成する必要があります。DSN の種類を示すには、32 ビット ユーザーの DSN には "_32" を追加し、64 ビット ユーザーの DSN には "_64" を追加する方法があります。

詳細

コントロール パネルから 64 ビットの ODBC アドミニストレーター ツールを起動して、64 ビット プロセスにより使用されているユーザー DSN とシステム DSN を管理することができます。64 ビット オペレーティング システムでは、32 ビットの ODBC アドミニストレーター ツールは Windows on Windows 64 (WOW64) プロセスに使用します。SysWoW64 フォルダーから、32 ビットの ODBC アドミニストレーター ツールを直接起動する必要があります。32 ビットの ODBC アドミニストレーター ツールを使用すると、WOW64 プロセスにより使用されているユーザー DSN とシステム DSN を管理することができます。

システム DSN は、以下のレジストリ サブキーに保存されています。
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI
このレジストリ サブキーには、レジストリのリダイレクトが有効です。そのため、32 ビット ドライバーのシステム DSN と 64 ビット ドライバーのシステム DSN は分離されています。64 ビットの ODBC アドミニストレーター ツールでは、32 ビットの ODBC アドミニストレーター ツールにより作成されたシステム DSN は表示されません。同様に、32 ビットの ODBC アドミニストレーター ツールでは、64 ビットの ODBC アドミニストレーター ツールにより作成されたシステム DSN は表示されません。また、64 ビットの ODBC アドミニストレーター ツールでは、32 ビット ドライバーを使用するシステム DSN は表示されません。同様に、32 ビットの ODBC アドミニストレーター ツールでは、64 ビット ドライバーを使用するシステム DSN は表示されません。

ユーザー DSN は、以下のレジストリ サブキーに保存されています。
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
このレジストリ サブキーに関して、レジストリのリダイレクトは有効ではありません。そのため、両方の ODBC アドミニストレーター ツールですべてのユーザー DSN が表示されます。

レジストリのリダイレクトの詳細については、次の MSDN (Microsoft Developer Network) Web サイトを参照してください。
http://msdn2.microsoft.com/ja-jp/library/aa384232.aspx

プロパティ

文書番号: 942976 - 最終更新日: 2013年8月30日 - リビジョン: 10.0
この資料は以下の製品について記述したものです。
  • Microsoft Open Database Connectivity 4.21
キーワード:?
kbexpertiseadvanced kbtshoot kbprb KB942976
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com