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