ऐसा प्रतीत होता है कि sql
ऑब्जेक्ट (यानी mssql
मॉड्यूल) में किसी भी चीज़ के सरणियों को संभालने की कोई विशेषता नहीं है। इसके अलावा, ps.input
. पर कॉल में एक अदिश प्रकार निर्दिष्ट करना इसी तरह काम नहीं करता।
अगली सबसे अच्छी बात यह है कि अपने sql स्टेटमेंट में ही अपने पैरामीटर की सरणी के लिए कुंजियाँ बनाएँ:
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) {
});
});
});
});
}