我正在开发一个Vista小工具。小工具正在使用本地.mdb数据库,使用OLEDB。代码如下:
var cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + getDbFilePath() + ";Persist Security Info=False;";
var connection = new ActiveXObject("ADODB.Connection");
connection.ConnectionString = cs;
它在Vista 32下运行,但在x64下失败并显示消息:
无法找到提供商。它可能没有正确安装。
当我从命令行运行javascript文件时,不会发生错误。 getDbFilePath()返回正确的路径,数据库存在等。
如何解决?也许,有意义使用其他数据库提供商吗?
谢谢
答案 0 :(得分:0)
x64没有注册/可用的本机Jet映像 - 它仅在x64上的32位进程中可用。侧边栏可执行文件作为本机x64映像运行 - 因此失败。
您的选择似乎有限:
将Jet调用包含在代理32位COM对象中。在64位注册表中将对象注册为进程外。 e.g。
没有x64支持
试图强制侧边栏以32位模式运行似乎很难/不可能,更不用说不合理了。