我需要访问 access 数据库 (*.mdb) 的数据。该方法应该用 nodejs 编写,并由多个用户使用,不需要对 Windows 中的 ODBC 驱动程序列表进行任何更改。
我找到了 node-odbc
。查看以下代码段的文档应该可以正常工作:
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
答案 0 :(得分:0)
我发现了另一个名为 node-adodb
的包。下面的代码片段对我来说很好用,有密码保护的数据库。
此外,通过使用 SysWOW64 cscripts.exe
文件修复了此包 x64 和 x86 之间的差异。
const adodb = require('node-adodb');
const cn = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Jet OLEDB:Database Password=MyPassword;';
const connection = adodb.open(cn);
connection.query("SELECT name FROM users WHERE firstname='John';").then((data) => {
console.log(data);
}).catch(err => {
console.error(JSON.stringify(err))
});