Es scheint, dass die Datei sql
Objekt (also das mssql
Modul) hat kein Attribut, um Arrays von irgendetwas zu handhaben. Außerdem die Angabe eines skalaren Typs im Aufruf von ps.input
funktioniert ebenfalls nicht.
Das Nächstbeste ist, Schlüssel für Ihr Array von Parametern in Ihre SQL-Anweisung selbst einzubauen:
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) {
});
});
});
});
}