azure移动服务后端SQL插入



我的问题是,在azure移动服务后端,当我在mssql.query上运行SQL插入时,就像下面的那个一样

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字段导致了问题吗?如果是,我插入时应该输入什么?

谢谢!

检查日志以查看可能出现的问题。在插入新记录时,您不需要担心__version或其他系统列。

这是在表插入脚本中吗?如果是这样,您可能不希望在回调中使用request.execute()。这将在mssql语句中插入的记录之外插入原始记录。

您还可能遇到问题,因为mssql.query()可以根据SQL生成的结果消息数量多次调用其回调函数。用sql变量定义一个类似requestExecuted的变量,在mssql成功回调中,在执行请求之前检查它。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语句,看看它是否被调用以及被调用了多少次。如果您的日志中有任何错误的详细信息,请更新您的问题。

最新更新