2015-12-29 1 views
0

Я новичок в технологии NodeJS, работая над проектом nodejs, я получил ниже проблемы.Проблема с выполнением подготовленного оператора в узле JS с модулем ibm_db

Я реализовал модуль 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); 
     }); 
}); 
+0

попробовать протоколирование ошибки здесь: Может быть есть какая-то ошибка? 'stmt.execute (['CA'], function (err, result) {console.log (err, result);});' – SKY

+0

@SKY только что я проверил, что ошибки не было. –

+0

Немного новичок в DB2 и модуле ibm_db, что означает fetchMode: 4? – SKY

ответ

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){ 
     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

+0

Спасибо @ tm297, это сработало. –

Смежные вопросы