Het lijkt erop dat de sql
object (d.w.z. de mssql
module) heeft geen attribuut om arrays van wat dan ook te verwerken. Bovendien, het specificeren van een scalair type in de aanroep naar ps.input
werkt ook niet.
Het beste is om sleutels voor uw reeks parameters in uw sql-statement zelf in te bouwen:
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) {
});
});
});
});
}