2015-11-19 66 views
0

我的問題是,在Azure移動服務後端,當我在mssql.query運行SQL插入類似下面蔚藍的移動服務後端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); 
     } 
    }); 

的一個數據不會顯示在天藍門戶網站了。我知道我可以使用內置的

todoItemTable.insert() 

來插入,但有時業務邏輯非常複雜,只能在SQL中完成。它是導致問題的__version字段嗎?如果插入時應該插入什麼?

謝謝!

回答

0

檢查您的日誌以查看可能出現的問題。插入新記錄時,您不必擔心__version或其他系統列。

這是在表插入腳本?如果是這樣,你可能不想在你的回調中使用request.execute()。除插入到mssql語句中的記錄外,還會插入原始記錄。

您可能還有問題,因爲mssql.query()可以多次調用其回調函數,具體取決於SQL生成的結果消息的數量。有喜歡與你sql變量定義了requestExecuted的變量,並在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); 
     } 
    }); 

如果這不會讓你走,試着加入控制檯.log語句在回調中查看它是否正在調用以及多少次。如果您在日誌中有錯誤,請更新您的問題。