エラー -2147467259: Windows 7(64ビット)でSQL ToolkitまたはDatabase Connectivity Toolkitを使用するとエラーが発生する

更新しました Dec 22, 2023

使用製品

ソフトウェア

  • LabVIEW
  • LabVIEW Database Connectivity Toolkit
  • LabWindows/CVI
  • LabWindows/CVI SQL Toolkit

オペレーティング・システム

  • Windows

問題

Windows 7(64ビット)で32ビット版LabVIEWまたはLabWindows/CVIを使用していますが、DB Tools Open Connection VIから次のエラーが発生しています。

エラー -2147467259 (0x80004005)
ADOエラー: ODBCドライバのMicrosoft OLE DBプロバイダで例外が発生しました。
Microsoft ODBCドライバマネージャ: 指定されたDSNには、NI-Database-API.lvlibのドライバとアプリケーションのアーキテクチャの不一致が含まれています。


このエラーが発生するのはなぜですか?どうすれば解決できますか?

解決策

このエラーは、ODBCデータソース管理者プログラムの32ビット版が必要な場合に、ODBCデータソース管理プログラム(odbcad32.exe)の64ビット版がデータベースにデータソース名(DSN)を構成するために使用されたために発生します。

まず、32ビット版のMySQLがインストールされていることを確認します。Windows 7 64ビット版には、odbcad32.exeという名前で2つの異なるファイルがあります。両方ともodbcad32.exeという名前が付けられていても、一方は64ビットでもう一方は32ビットです。ディレクトリの場所によって64ビットと32ビットのどちらがあるかを知ることができます。

  • 64ビット版:  <Windows>/System32
  • 32ビット版:  <Windows>/SysWOW64

このエラーを修正するには、次の2つの方法があります。
  1. ODBCセットアップを修復します。これを行うには、odbcad32.exeの64ビット版を開き、データベース構成を削除してから、管理者として32ビット版を開いてデータベースを構成します。
  2. 正確な接続文字列でUDLを使用するように、LabVIEWまたはLabWindows/CVIのコードを変更します。この詳細については、Set Up a Microsoft Data Link File (UDL) Through LabVIEWを参照してください。

追加情報

32ビット版LabVIEWまたはLabWindows/CVIアプリケーションは、odbcad32.exe 64ビットによって作成されたDSNを使用してデータベースに接続しようとしていますが、これはアーキテクチャ上可能ではありません。これは、エラーメッセージに記載されているアーキテクチャの不一致です。32ビット版LabVIEWまたはLabWindows/CVIアプリケーションでは、odbcad32.exe 32ビット版で作成されたDSNしか使用できません。この問題は、Microsoft Developer Networkの記事、Managing Data Sourcesで説明しています。