nodejs连接access数据库报错:Provider cannot be found. It may not be properly installed.

参考网上的案例写了如下代码来连接access数据库

img

执行完connection.query后报错:Provider cannot be found. It may not be properly installed.

我的问题是:我看到网上的代码provider有Microsoft.ACE.OLEDB.12.0 和 Microsoft.Jet.OLEDB.4.0, 我不知道用哪个,如何找到自己正确的Provider? 报错该如何解决?谢谢!

解决方法

1、你应该选择前者,选择Microsoft.ACE.OLEDB.12.0

因为你代码中显示的文件是:.accdb

数据库连接字符串:

  • 访问 2000-2003 (*.mdb):Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;
  • 访问 > 2007 (*.accdb):Provider=Microsoft.ACE.OLEDB.12.0;Data Source=adodb.accdb;Persist Security Info=False;或者 Provider=Microsoft.ACE.OLEDB.15.0;Data Source=adodb.accdb;Persist Security Info=False;

所以,根据你的代码信息,选择Microsoft.ACE.OLEDB.12.0来进行运行。

2、关于这个Microsoft.ACE.OLEDB.12.0下载:

获取地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

具体的版本和相关信息都可以在这个网站找到:

参考链接:

扩展
该类库理论支持 Windows 平台下所有支持 ADODB 连接的数据库,只需要数据库更改连接字符串实现实现操作!

数据库连接字符串:

访问 2000-2003 (.mdb):Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;
访问 > 2007 (
.accdb):Provider=Microsoft.ACE.OLEDB.12.0;Data Source=adodb.accdb;Persist Security Info=False;或者 Provider=Microsoft.ACE.OLEDB.15.0;Data Source=adodb.accdb;Persist Security Info=False;

注意:
该类库需要系统支持Microsoft.Jet.OLEDB.4.0或者Microsoft.ACE.OLEDB.12.0,对于Windows XP SP2以上系统默认支持Microsoft.Jet.OLEDB.4.0,其他需要自己安装支持!

推荐使用Microsoft.ACE.OLEDB.12.0,获取地址:Microsoft.ACE.OLEDB.12.0:


如有问题及时沟通

Microsoft.Jet.OLEDB.4.0 可以访问 Office 97-2003,但不能访问 Office 2007。
Microsoft.ACE.OLEDB.12.0是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。所以,在使用不同版本的office时,要注意使用合适的引擎。