在Windows 7 64位上使用SQL Toolkit或Database Connectivity Toolkit时出现错误-2147467259
问题详述
在Windows 7 64位上使用32位LabVIEW或LabWindows/CVI时,从DB Tools Open Connection VI收到以下错误:
错误 -2147467259(0x80004005)
ADO Error: Exception occurred in Microsoft OLE DB Provider for ODBC driver.
Microsoft ODBC Driver manager: The specified DSN contains an architecture mismatch between the driver and application in NI-Database-API.lvlib
解决方案
出现此错误是由于,在本应使用32位版本的odbcad32.exe(ODBC数据源管理器程序)来配置数据库的数据源名称(DSN)时,错误地使用了64位版本的ODBC数据源管理器程序。
首先应确保安装了32位版本的MySQL 。在Windows 7 x64上将有两个名为odbcad32.exe的文件。虽然两者都命名为odbcad32.exe ,但一个是64位,另一个是32位。可以通过其目录位置判断哪个是64位,哪个是32位:
64位版本位于Windows/System32中
32位版本位于Windows/SysWOW64中
有两种方法可以纠正错误:
1.修复ODBC设置。为此,请打开64位版本的odbcad32.exe ,删除数据库配置,然后以管理员身份打开32位版本并在那里配置数据库。
2.更改LabVIEW或LabWindows/CVI代码,使用具有确切连接字符串的UDL。
32位LabVIEW或LabWindows/CVI应用程序若尝试使用64位odbcad32.exe创建的DSN连接到数据库,这在架构上是不可能的。这就是错误消息中所提到的体系结构不匹配。32位LabVIEW或LabWindows/CVI应用程序只能使用32位版本的odbcad32.exe创建的DSN。