orange-orm
Version:
Object Relational Mapper
31 lines (23 loc) • 809 B
JavaScript
var log = require('../table/log');
function wrapCommand(_context, connection) {
return runQuery;
function runQuery(query, onCompleted) {
try {
var params = Array.isArray(query.parameters) ? query.parameters : [];
var sql = query.sql();
log.emitQuery({ sql, parameters: params });
var statement = connection.query(sql);
var info;
if (params.length === 0) info = statement.run();
else info = statement.run.apply(statement, params);
var affectedRows = 0;
if (info && typeof info.changes === 'number') affectedRows = info.changes;
else if (info && typeof info.affectedRows === 'number') affectedRows = info.affectedRows;
onCompleted(null, { rowsAffected: affectedRows });
}
catch (e) {
onCompleted(e, { rowsAffected: 0 });
}
}
}
module.exports = wrapCommand;