Có vẻ như sql
đối tượng (tức là mssql
mô-đun) không có thuộc tính để xử lý mảng của bất kỳ thứ gì. Hơn nữa, chỉ định một kiểu vô hướng trong lệnh gọi tới ps.input
tương tự không hoạt động.
Điều tốt nhất tiếp theo là xây dựng các khóa cho mảng tham số của bạn vào chính câu lệnh sql của bạn:
var connection = new sql.Connection(config, function(err) {
var ps = new sql.PreparedStatement(connection);
// Construct an object of parameters, using arbitrary keys
var paramsObj = params.reduce((obj, val, idx) => {
obj[`id${idx}`] = val;
ps.input(`id${idx}`, sql.VarChar(200));
return obj;
}, {});
// Manually insert the params' arbitrary keys into the statement
var stmt = 'select * from table where id in (' + Object.keys(paramsObj).map((o) => {return '@'+o}).join(',') + ')';
ps.prepare(stmt, function(err) {
ps.execute(paramsObj, function(err, data) {
callback(null, data);
ps.unprepare(function(err) {
});
});
});
});
}