首页 > 解决方案 > 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 工作。这意味着连接也没有问题

有没有人有同样的问题?

标签: node.jsms-accessodbc

解决方案


(回答我自己的问题,它可能会帮助处于同一位置的人..)

需要关闭连接才能正确执行查询!

例子:

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()
    })
})

推荐阅读