2014-02-12 173 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在你的情况下