2014-02-12 174 views
0

我需要找出是否存在記錄,以便我能夠更新或刪除它。檢查記錄是否存在SQL PhoneGap

據我所知,所有事情都需要一個交易,選擇一個計數是行不通的。

幾乎沒有我能找到是有用的任何文件,目前的代碼,我是:

app.database.db.transaction(function (tx) { 
    $.each(result.specoffer, function (i, item) { 
     if (typeof item.id != 'undefined') { 
      var sql = '' + 
      'IF EXISTS SELECT id FROM Specials WHERE id = ' + item.id + ' ' + 
      'UPDATE Specials SET picture = "' + item.picture + '", startdate = "test", finishdate = "test", mess = "' + item.mess + '", shortmess = "' + item.picture + 
      '", shortmess = "' + item.shortmess + '", name = "' + name + '" WHERE id = '     + item.id + ' ' + 
      'ELSE ' + 
      'INSERT INTO Specials (id, picture, startdate, finishdate, mess, shortmess, name) VALUES (' + 
      item.id + ', "' + item.picture + '", "test", "test", "' + item.mess + '", "'     + item.shortmess + '", "' + item.name + '")'; 

      tx.executeSql(sql); 
     } 
}); 

任何幫助,將不勝感激

+0

你是如何直接從Javascript客戶端訪問數據庫的?我認爲你需要創建一個客戶端可以與之交談的API。你可以在你的項目設置上發佈更多的細節嗎?謝謝。 – andHapp

+0

它是phonegap存儲,http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html它與設備上的本地存儲進行通信。這是W3C標準,但已被淘汰。 http://www.w3.org/TR/webdatabase/ 然而,Phonegap仍然使用它,你可以用它來智能手機本地保存數據。 –

+0

我使用jsonp每10到15分鐘從服務器檢索數據,我把它放到本地存儲以保存往返或用戶丟失wifi。這是一個非常不錯的設置,你真的需要爲任何體面的移動應用程序,我不知道爲什麼沒有更多的人有同樣的問題。 –

回答

1

您可以使用更新,或者直接刪除

db.transaction(function(tx) { 
     tx.executeSql('UPDATE Category SET categoryName="' + categoryName 
       + '",categoryIconPath="' + categoryIconPath 
       + '",categoryDescription="' + categoryDescription 
       + '" WHERE categoryId=' + categoryId + '', [], function(tx, 
       result) { 

     }, errorCB); 

分別放上你的表名和列。這裏categoryId是獨一無二的像item.Id在你的情況下