Node.js 带参数的 DB2 查询

Node.js DB2 query with parameters

我正在使用 node.js 连接到 DB2 数据库并加载不同的查询。但我想使用用户输入的参数。 我的连接字符串是:

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

但我的查询是静态的,我需要从用户输入中传递 parameters/variables。

我在 var rl = require('readline'); 中使用用户输入,但现在的问题是如何将变量传递给此查询并放置 动态参数 而不是像 [=14 这样的单个值=]、id

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

Node.js package ibm_db is 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']
 );