Невозможно получить количество строк, используя ibm_db для NodeJS - PullRequest
0 голосов
/ 27 сентября 2018

У меня проблема с невозможностью получить результат для затронутых строк из следующих

Во время отладки я замечаю, что всегда происходит сбой при conn.querySync(query.sqlUpdate, params); Console.log также ничего не показывает.

Что я тут не так сделал?

КОД

//imports
const format = require('string-format');


const query = require('../db/query');
const message = require('../common/message');
const constant = require('../common/constant');

var ibmdb = require("ibm_db");
require('dotenv').config();

// access the environment variables for this environment
const database =    "DATABASE=" + process.env.DATABASE  + ";";
const hostname =    "HOSTNAME=" + process.env.HOSTNAME  + ";";
const uid =         "UID="      + process.env.UID       + ";";
const pwd  =        "PWD="      + process.env.PWD       + ";";
const dbport =      "PORT="     + process.env.DBPORT    + ";";
const protocol =    "PROTOCOL=" + process.env.PROTOCOL;

const connString = database+hostname+uid+pwd+dbport+protocol;

function updateContact(params) {
  ibmdb.open(connString, function(err, conn){
    //blocks until the query is completed and all data has been acquired
    var rows = conn.querySync(query.sqlUpdate, params);
    console.log(rows);
  });
}

module.exports.updateContact = updateContact;

1 Ответ

0 голосов
/ 28 сентября 2018

Я, наконец, понимаю, в чем проблема.Проблема заключается в том, что я использую функцию querySync.Эта функция не возвращает затронутые числа строк.

https://github.com/ibmdb/node-ibm_db/blob/master/APIDocumentation.md#querySyncApi

Надлежащим способом является подготовка, за которой следует executeNonQuery.

https://github.com/ibmdb/node-ibm_db/blob/master/APIDocumentation.md#executeNonQueryApi

Итакиз API я изменяю свои коды.

        ...
        conn.prepare(query.SQL_UPDATE, function (error, stmt) {

            if (err) {
                console.log(err);
                return conn.closeSync();
            }

            stmt.executeNonQuery(params, function (err, result) {
                if( err ) {   
                    console.log(err);  
                }
                else {
                    console.log("Affected rows = " + result);
                }

                //Close the connection
                conn.close();               
            });
        });
        ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...