最近工作中遇到一个问题,在XP 64位操作系统下,Access mdb数据库连接,用ADO编程,采用原来的"Provider=Microsoft.Jet.OLEDB.4.0;连接方式,居然提示找不到驱动。
在网上一番搜索,大概的结论是,微软没有出64位版本的jet引擎,xp64下默认只有sqlserver的64位引擎,因此原来的连接方式行不通了。问题是mdb数据库的应用范围这么广,很多本地桌面程序都用这个,64位系统微软会不再支持,感觉还是不靠谱的。又是一顿乱搜,在一位台北老兄的博客看到了线索,原来今年3月份微软发布了新的 ACE.OLEDB 引擎,好像是给office 2010使用的,具体也没有细研究,下载后,还是采用ADO编程,连接字符串改用 "Provider=Microsoft.ACE.OLEDB.12.0” ,问题Ok了!
附带几个链接,
1.这个页面关于这个问题讨论的比较细,但是是2006的问题,最后也没有给出好的解决方案,只能不把应用程序编译位x64的。
2.这是台北这位仁兄的博客
http://www.dotblogs.com.tw/okawari/archive/2010/11/16/19483.aspx
3.ACE.OLEDB引擎的下载页面
几个还需要进一步研究的问题:
1. 不知道为什么,微软下载页面给的连接字符串是 "Provider=Microsoft.ACE.OLEDB.14.0",但我试了只能用 "Provider=Microsoft.ACE.OLEDB.12.0” 这个才好使。
2.装一个引擎的64位版本,和32位的office2007貌似有冲突,安装的时候如果已经在64位系统上装了32位版本的office2007,会提示要先卸载之,卸载后,安装顺利,之后又重新装了office2007 32,使用中也没有发现什么异常的。