node.js - Nodejs odbc - 插入语句不起作用
问题描述
我正在尝试使用 nodejs 'odbc' 库将数据插入到 Access 文件(.accdb)中。
我的选择查询正在工作,但是当我尝试插入时,我的数据库中没有插入任何内容。
const odbc = require('odbc')
const connectionString = 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Ricardo\\Desktop\\REPOS\\Project\\TestDB.accdb'
const connection = odbc.connect(connectionString, (error, connection) => {
// const query = "SELECT * FROM Tasks"
const query = "INSERT INTO Tasks (Cl, BLX) VALUES (\'SWI\', \'GIV\') "
connection.query(query, (error, result) => {
if (error) {
console.error(error)
}
console.log(result)
})
})
如果我直接在 Access 上运行 INSERT 查询,它就可以工作,这否认了拼写错误的可能性。
奇怪的是,SELECT 语句通过 nodejs 工作。这意味着连接也没有问题
有没有人有同样的问题?
解决方案
(回答我自己的问题,它可能会帮助处于同一位置的人..)
需要关闭连接才能正确执行查询!
例子:
const odbc = require('odbc')
const connectionString = 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Ricardo\\Desktop\\REPOS\\Project\\TestDB.accdb'
const connection = odbc.connect(connectionString, (error, connection) => {
// const query = "SELECT * FROM Tasks"
const query = "INSERT INTO Tasks (Cl, BLX) VALUES (\'SWI\', \'GIV\') "
connection.query(query, (error, result) => {
if (error) {
console.error(error)
}
console.log(result)
connection.close()
})
})
推荐阅读
- google-maps - 以 Flutter 银色或黑白风格设计 Google 地图
- azure-active-directory - 将 Azure Active Directory 与 Keycloak 集成时是否需要高级版?
- mysql - 获取外键的计数和分组
- c++ - 构建多个线程以获得最佳性能的正确方法是什么?
- java - 如何忽略除第一次和最后一次出现之外的所有字符来执行子字符串?
- excel - 将图表复制/粘贴为图片
- javascript - 如何更快地对 HTML 表格进行排序?
- machine-learning - 当在 latex 中使用 \textbf 时,它会改变里面的值的位置
- javascript - 如何通过测试使用浏览器表单数据发布多部分/表单数据
- jenkins - 如何将 groovy 变量分配给 shell 变量,在 Jenkins Pipeline 中出现错误