sql >> Databáze >  >> RDS >> Sqlserver

NodeJS MSSQL WHERE IN Připravený příkaz SQL

Zdá se, že sql objekt (tj. mssql modul) nemá žádný atribut pro zpracování polí čehokoli. Navíc určení skalárního typu ve volání ps.input podobně nefunguje.

Další nejlepší věcí je zabudovat klíče pro pole parametrů do samotného příkazu 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) {
                });
            });
        });
    });
}



  1. Jak seskupit a vzít počet jednoho sloupce vydělit počtem jedinečných druhého sloupce datového rámce v python pandas?

  2. Plánování obnovy po havárii pro MySQL a MariaDB

  3. Provedení uložené procedury oracle v R pomocí ROracle

  4. Mysql vytvoří uloženou proceduru z více uložených procedur