我正在使用mssql和node-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
返回对象属性数组,但不保证正确的顺序是交易破坏者。
我该如何解决这个问题?
答案 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');
});