64位系统下的ODBC配置注意事项

今天在64位的系统下安装MSSQL2005和mysql,MSSQL2005创建mysql的链接服务器,

运行   select user_id,user_name from openquery(OA,'select * from user where user_id=''我的ID''') 

但出现以下提示

-----------------------------------

链接服务器"(null)"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配"

消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "MSDASQL" 的数据源对象。

-----------------------------

经查询,原来是使用的ODBC配置程序不对,windows server 2008 R2 企业版自带有两个版本的odbc配置程序:

64位版的位置:C:\windows\system32\odbcad32.exe

32位版的位置:C:\windows\sysWOW64\odbcad32.exe

安装32位的mysql ODBC驱动,通过32位版的ODBC配置后,执行正常。


=============================================================================

想不通为啥64位的目录是system32,而32位的目录是sysWOW64,这不正好颠倒了吗?

我也遇到类似情况,安装64位驱动,odbc测试正常,但是程序运行提示“驱动程序和应用程序之间的体系结构不匹配驱动程序和应用程序之间的体系结构不匹配“,但是安装32位的驱动是没有问题的.需要注意的是copy mysql的4个lib文件时,64位的是放在对应的system32下,而32位的需要放在sysWOW64下.网上的资料不全,特此说明.


===================================================================================

补充一下,根据网上搜索曾经看到的资料,可以这样理解:在win64位系统下,system32下存放的是64位的相关文件,之所以称作system"32",是为了兼容之前的程序,打个比方,可能之前的程序,在读写关键配置文件时,是把路径写死的,XXXX/system32/XXX,这种比较Low的做法在我等Low级别程序员中很常见,为了这些软件不至于无法使用,根正苗红的关键文件不管是64还是32位系统,其路径仍在system32下;而sysWOW64,它的意思是64位系统下为了解决一些兼容性问题而存放的文件目录。打个比方,system32是好人,sysWOW64,是好人……是好人堆里挑出来的。。就这样理解吧!


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值