sql >> Database >  >> RDS >> Sqlserver

NodeJS MSSQL WAAR IN Voorbereide SQL-instructie

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) {
                });
            });
        });
    });
}



  1. Mysql geeft rijen weer als kolommen

  2. Waarde controleren in een array binnen één SQL-query met WHERE-clausule

  3. Wat is het equivalent van het spool-commando in MySQL?

  4. mysql-rijnummering reset elke verschillende recordwaarden