2017-01-31 5 views
0

Я использую node.js для подключения к базе данных DB2 и загрузки различных запросов. Но я хотел бы использовать параметры из пользовательского ввода. Моя строка соединения:Node.js Запрос DB2 с параметрами

var ibmdb = require("ibm_db") 
    , cn = "DATABASE=namedb;HOSTNAME=hst;UID=portal;PWD=portalpwd;PORT=50000;PROTOCOL=TCPIP;" 
    ; 

Но мой запрос является статическим, мне нужно передать параметры/переменные из пользовательского ввода.

Я использую пользовательский ввод с var rl = require('readline');, но проблема в том, как общаться переменные этого запроса и поместить динамические параметры не одно значение, как name, id и т.д.

var rows = conn.querySync(
    "select name,id,uid,password,type from db21.rep_name fetch first 10 rows only" 
); 
+0

Вы пробовали читать документацию? В частности, о аргументе 'bindingParameters' для' querySync() '? – mustaccio

ответ

1

Node.js package ibm_db является fully documented , Существует несколько способов решения проблемы, в зависимости от того, хотите ли вы иметь версию асинхронной или синхронной версии и хотите ли вы сначала подготовить, а затем выполнить инструкцию.

Простейшим вариантом, вероятно, является использование querySync, как уже сделано вами. Существует необязательный параметр bindingParameters для передачи в массиве значений. Они привязаны ко всем местам, имеющим ?. Что-то вроде следующего должно работать.

var rows = conn.querySync(
    "select name,id,uid,password,type from db21.rep_name where name=? fetch first 10 rows only", ['henrik'] 
); 
+0

выберите * from db21.rep_name, где customer =? fetch только первые 10 строк ", ['customer']) --- мне нужен пользовательский ввод и поместить результат в клиента – andress

+0

он отлично работает, большое спасибо – andress