在iPhone上运行的PhoneGap应用程序中的SQL数据库出现问题

时间:2011-07-20 13:51:16

标签: iphone android sql html5 cordova

我有使用PhoneGap用HTML5编写的移动应用程序。应用程序的某些部分使用SQL数据库,如下所示:

db = window.openDatabase("my_app_database", "1.0", "Description of my database about 50 chars long", 1000000); 

$.get('db/app_data.dat',function(result){
  var data = $.parseJSON(result);
  if (!data) {
    alert('Data error');
    return false;
  }
  db.transaction(function(tx){
    tx.executeSql('DROP TABLE IF EXISTS table_a');
    tx.executeSql('DROP TABLE IF EXISTS table_b');
    tx.executeSql('CREATE TABLE table_a (id INTEGER,name,html)');
    tx.executeSql('CREATE TABLE table_b (id_a INTEGER, id_b INTEGER)');
  });
  db.transaction(function(tx){
    $.each(data.item, function(i, v){
      tx.executeSql('INSERT INTO table_a(id, name,html) VALUES (?,?,?)',[v.id, v.name, v.html]);
    });
  });
});

在Android上,这完全没问题。但是在iPhone(4.0,4.2)上它根本不起作用。你有什么想法为什么在PhoneGap上使用SQL数据库标准会在iPhone上造成任何问题?是否有一些限制需要注意?例如。数据库名称限制,数据库大小限制或查询限制?

编辑:不知道它是否相关,但我现在正在使用此应用程序中的PhoneGap v.9.5.5.1。

1 个答案:

答案 0 :(得分:3)

好的,我终于找到了这个问题。似乎存在某种SQL查询长度限制,没有记录。至少我还没有找到它。我的INSERT查询长度为190个字符(为了简化问题,这里我缩短了给定示例中的查询),当我不断尝试和测试时,我也尝试缩短列名。我不知道这个限制的确切数量,但是长度为130个字符的查询工作正常。