Microsoft.Jet.OLEDB.4.0 与 x64
我在新安装好的 Windows Server 2008 R2 Beta 中,运行我的一个程序,就出现了错误信息,打开源代码,进行调试
发现错误是:“The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine.”
随后,到百度上查,因为百度上查的基本上都是中文的信息,英文怕看不懂嘛,可什么都没查到
再到 GOOGLE 上查,还是 GOOGLE 好,一查就查到了,有很多人都有这个问题,是因为 Microsoft.Jet.OLEDB.4.0 不再支持 64 位系统。
同时,也看到了解决方案,就是把程序的目标平台设置成“x86”就可以了。
在项目的属性中,把“生成”中的“目标平台”从“Any CPU”改成“x86”,再重新编译就可以了。
此观点有问题的,vbs文件用Microsoft.Jet.OLEDB.4.0做数据连接会错误,但同样的语句,用在hta文件连接,可以,说明x64是支持 Microsoft.Jet.OLEDB.4.0的.只是不知道是不是执行宿主的原因.
在微软的网站:http://support.microsoft.com/kb/957570,“The Microsoft OLE DB Provider for Jet and the Microsoft Access ODBC driver are available in 32-bit versions only”,官方解释嘛。
你说的 hta 里可以用,我想是因为 hta 其实是在 IE 中运行的,而在 64位系统中,同时存在 32 位和 64 位的 IE,同时开的都是 32 位的IE。
这只是我的猜想,我同常不写 hta,只是在1999年的时候写过一个小玩艺玩,后来就没写过了。
@osnaile
猜想 x64的wscript不行
那在x64系统中移植一个x86的wscript
也许vbs 也能在x64上用 Microsoft.Jet.OLEDB.4.0
以后有空试试
@osnaile
另 hta 但执行hta程序是mshta.exe x64上的mshta 本来就是x64的(x86上不能执行x64中的mshta)
mshta的确要引用IE内核, 难道mshta同时会引用64 和32的IE?