Tampaknya sql
objek (yaitu mssql
module) tidak memiliki atribut untuk menangani array apa pun. Selain itu, menentukan jenis skalar dalam panggilan ke ps.input
sama tidak bekerja.
Hal terbaik berikutnya adalah membuat kunci untuk array parameter Anda ke dalam pernyataan sql Anda sendiri:
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) {
});
});
});
});
}