【问题标题】:Nodejs odbc - Insert statement doesn't workNodejs odbc - 插入语句不起作用
【发布时间】:2020-05-08 18:04:05
【问题描述】:

我正在尝试使用 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 工作的。这意味着连接也没有问题

有人遇到过同样的问题吗?

【问题讨论】:

  • 尝试删除反斜杠字符。没见过这个。 SQL 引擎需要将这些撇号视为特殊字符,而不是文字。
  • 我也试过没有反冲和模板字符串格式..没用。仍然 100% 确定列/数据类型的名称是正确的..

标签: node.js ms-access odbc


【解决方案1】:

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

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

例子:

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

【讨论】:

    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多