2013-04-02 41 views
0

我正在開一個windows store的javascript應用程序。該應用程序通過移動服務與Azure集成。我想刪除與特定ID匹配的特定記錄。如何從Azure數據庫中的表中刪除行?

說,如果我有四列(無,姓名,職務,消息,ID)在表(項目)

我想刪除它具有ID = 5和標題整行=「計算器」。哪些代碼將執行該操作?

回答

2

鑑於您獲得了對table對象的引用,您需要從表格中獲取實際行,然後在table對象上調用del(item, callback)方法。您可以從已檢索的對象列表中獲取實際的行,或使用where method來獲取它。

類似的東西來:

var myTable = client.getTable('MyItem'); 
// here is a code to get the actual item 
myTable.del(item); 

或更簡單:

myTable.where({ id: 5, titile: "stackoverflow" }) 
    .read() 
    .done(function (results) { 
     var result = results[0]; 
     if (result != null && typeof (result) != "undefined") { 
      todoTable.del(result); 
     } 
    }); 
0

按移動服務服務器腳本參考:

http://msdn.microsoft.com/en-us/library/windowsazure/jj554210.aspx

進行刪除語法Table.del(itemOrId, options) 。如果您已經知道要刪除的行的標識,只需將其傳遞給del .. table.del(5),而不是先獲取該項目然後刪除它。

我的初步答案假定您使用服務器端腳本,但它聽起來像您正在使用JS客戶端庫,它只需要一個對象。如果你真的想傳遞一個id,我會嘗試將它作爲對象參數傳遞,然後更新服務器端刪除腳本以使用Table.del(itemOrId, options),或者,在服務器端刪除腳本中添加id參數,併爲對象傳遞null。

+0

添加對源的引用會很好。因爲文檔仍然說只有被接受的參數是刪除的對象:http://msdn.microsoft.com/en-us/library/windowsazure/jj554233.aspx – astaykov

+0

也是JS SDK的源代碼並沒有強制使用just ID:https://github.com/WindowsAzure/azure-mobile-services/blob/master/sdk/Javascript/src/MobileServiceTable.js – astaykov