使用ibm_db模块在Node JS中执行prepared语句时出现问题

Issue with executing prepared statement in Node JS with ibm_db module

本文关键字:语句 prepared 执行 问题 JS ibm db 模块 Node 使用      更新时间:2023-09-26

我是NodeJS技术的新手,在进行NodeJS项目时,我遇到了以下问题。

我已经实现了ibm_db模块(用于建立DB2连接),并使用"准备好的语句"执行"SELECT"查询。下面的查询执行时没有错误,但console.log(result)给出的结果是{fetchMode : 4},但我在这里期待COLUMN_1的结果。有人能告诉我这里有没有遗漏什么吗。

db.prepare('SELECT COLUMN_1 FROM TABLE_A WHERE COLUMN_2=?', function(err, stmt){
        if(err){
            console.log(err);
        }
        stmt.execute(['CA'], function(err, result){
            console.log(result);
        });
});

在execute回调内部使用额外的fetch可以让我看到查询语句的正确结果。这里有一个例子:

db.prepare('SELECT COLUMN_1 FROM TABLE_A WHERE COLUMN_2=?', function(err, stmt){
    if(err){
        console.log(err);
    }
    stmt.execute(['CA'], function(err, result){
        result.fetch(function (err, data) {
            if (err) {
                console.error(err);
            }
            console.log(JSON.stringify(data));
            result.closeSync();
        });
    });
});

以下网站给了我提示:https://groups.google.com/d/msg/node-ibm_db/AhZeeN6jFTM/MrRXSIW3DQAJ