Vista x64,小工具开发,OLEDB错误:“提供商无法找到”

时间:2009-05-04 13:20:46

标签: javascript windows-vista oledb

我正在开发一个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()返回正确的路径,数据库存在等。

如何解决?也许,有意义使用其他数据库提供商吗?

谢谢

1 个答案:

答案 0 :(得分:0)

x64没有注册/可用的本机Jet映像 - 它仅在x64上的32位进程中可用。侧边栏可执行文件作为本机x64映像运行 - 因此失败。

您的选择似乎有限:

  1. 放弃Jet,例如切换到SQL Compact Edition,SQL Express或类似的
  2. 之一
  3. 将Jet调用包含在代理32位COM对象中。在64位注册表中将对象注册为进程外。 e.g。

    http://dnjonline.com/article.aspx?ID=jun07_access3264

  4. 没有x64支持

  5. 试图强制侧边栏以32位模式运行似乎很难/不可能,更不用说不合理了。