我的问题是,当我在mssql.query上运行SQL插件时,在azure移动服务后端上,如下所示
var sql = " INSERT INTO Customers
(CustomerName, ContactName) VALUES (?, ?); ";
mssql.query(sql, [item.CustomerName, item.ContactName], {
success: function(results) {
request.execute();
},
error: function(err) {
console.log("error is: " + err);
}
});
数据不再显示在azure门户网站上。我知道我可以使用内置的
todoItemTable.insert()
要插入,但有时业务逻辑非常复杂,只能在SQL中完成。是__version字段导致问题吗?如果我插入时应该放入什么?
谢谢!
答案 0 :(得分:0)
检查日志以查看可能出现的问题。插入新记录时,您无需担心__version或其他系统列。
这是在表插入脚本中吗?如果是这样,您可能不希望在回调中使用request.execute()。除了插入mssql语句中的记录之外,还会插入原始记录。
您可能还有一个问题,因为mssql.query()可以多次调用其回调函数,具体取决于SQL生成的结果消息的数量。使用requestExecuted
变量定义类似sql
的变量,并在mssql成功回调中,在执行request.execute()调用之前检查它:
var requestExecuted = false;
mssql.query(sql, [item.CustomerName, item.ContactName], {
success: function(results) {
if (requestExecuted === false) {
requestExecuted = true;
request.execute();
}
},
error: function(err) {
console.log("error is: " + err);
}
});
如果这不能帮助您,请尝试在回调中添加console.log语句,以查看它是否被调用以及被调用多少次。如果您的日志中有错误的更多详细信息,请更新您的问题。