Nodejs 扫描 access 数据库有啥好的解决方案么?
Nodejs 扫描 access 数据库有啥好的解决方案么?
项目背景是:某设备工作状态下会实时在 access 数据库中写入数据,我们的业务系统需要定时去扫描数据库取回数据。 问题是:如何能记录下上次扫描的位置?nodejs 连接 access 数据库有什么好办法?
2 回复
在写入数据的时候自己记录指针(比如时间戳、id 等)
针对Node.js扫描Access数据库的需求,以下是一些解决方案:
方案一:使用ODBC连接Access数据库
-
配置ODBC数据源:
- 在Windows系统中,打开odbcad32.exe,添加系统DSN或用户DSN。
- 选择Microsoft Access Driver,并配置数据源名称、数据库路径等。
-
Node.js代码:
const odbc = require('odbc');
const db = new odbc.Database();
const dbInfo = 'DSN=your_dsn;DBQ=path_to_your_access_database;UID=sa;PWD=your_password;';
db.open(dbInfo, (err) => {
if (err) throw err;
const sql = 'SELECT * FROM your_table';
db.query(sql, [], (err, results) => {
if (err) throw err;
console.log(results);
db.close();
});
});
方案二:使用ADO.js库
- 安装ADO.js:
npm install ado
- Node.js代码:
const ado = require('ado');
const connectionString = 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=path_to_your_access_file.accdb;';
ado.connect(connectionString, (err, connection) => {
if (err) throw err;
const query = 'SELECT * FROM your_table';
connection.query(query, (err, results) => {
if (err) throw err;
console.log(results);
});
});
以上两种方案均能有效实现Node.js对Access数据库的扫描,根据具体需求和环境选择合适的方案即可。