使用mssql和node-sql进行更新

时间:2015-07-01 11:34:12

标签: mysql node.js node-sqlserver

我正在使用mssqlnode-sql来构建string fileRef = f[SPBuiltInFieldId.FileRef].ToString(); sb.Append("<SetVar Name=\"owsfileref\">" + fileRef + "</SetVar>"); 查询,但我找不到任何示例如何使用它来构建UPDATE查询。我有一个对象,其中属性对应于表字段,我想更新所有这些。

假设:

SELECT

child: sql.define({
    name: 'children',
    columns: ['id', 'name', 'surname', 'group']
  })

如何在不知道var data = {/*new child data*/}; var query = child.update(data).where(child.id.equals(data.id)).toQuery().text; 属性的值和数量的情况下将其与mssql一起使用?

现在我有这个:

data

可以通过使用lodash的connection.query(query, [data.id, data.name, data.surname, data.group], function(err, result) { res.redirect('/index'); });

来实现
values

返回对象属性数组,但不保证正确的顺序是交易破坏者。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

这将根据表列的顺序返回值数组:

child.columns.map(function(col){return data[col.name]})

有可能用lodash以较短的形式压缩上面的内容。

答案 1 :(得分:0)

几天之后我认为node-sql的查询对象除了.text属性之外还有.val属性,所以上面的更新可以写成

var data = {/*new child data*/};

var query = child.update(data).where(child.id.equals(data.id)).toQuery();

connection.query(query.text, query.values, function(err, result) {

  res.redirect('/index');
});