【发布时间】:2021-08-13 10:27:57
【问题描述】:
问题
我需要访问 access 数据库 (*.mdb) 的数据。该方法应该用 nodejs 编写,并由多个用户使用,这些用户应该不需要对 Windows 中的 ODBC 驱动程序列表进行任何更改。
方法
我找到了node-odbc。查看 sn-p 之后的文档应该可以正常工作:
const db = require('odbc');
const cn = `Provider=Microsoft.Jet.OLEDB.12.0;Data Source=C:\\Users\\some\\Dev\\db.mdb`;
db.connect(cn, (err, connection) => {
if (err) {
console.error(err);
}
console.log(connection);
});
不幸的是,这是我得到的输出:
[Error: [odbc] Error connecting to the database] {
odbcErrors: [
{
state: 'IM002',
code: 0,
message: '[Microsoft][ODBC Driver Manager] The DSN could not be found and' +
'there was no default driver specified'
}
]
}
null
【问题讨论】:
-
让我直截了当地说:您想使用 Node.JS 中的 Access,但是却神奇地不使用任何外部驱动程序?好吧,我猜是从here 开始,然后开始完全用 JavaScript 编写自己的驱动程序。祝你好运。
-
@ErikA 非常感谢,但这基本上不是重点。我只是不希望用户手动下载任何东西。在某种二进制文件中包含驱动程序也可以正常工作。但是除了这件事,我需要下载什么驱动程序才能让它工作? Jet.OLEDB.12?
-
好吧,驱动程序是专有的,并且与不同位的现有安装冲突,所以如果你想自动安装驱动程序,你就不走运了。您确实希望您的用户正确设置 Access,或者希望完全使用不同的数据库。
-
非常感谢@ErikA,非常感谢您的帮助!
标签: node.js odbc ms-access-2010