使用Ti.Database.install()安装数据库时遇到一些问题。这就是我正在做的事情:
将一些代码添加到controllers/index.js
,以便文件看起来像这样
var db = Ti.Database.install('/testimusDB.sqlite', 'testimusDB');
var rs = db.execute('SELECT * FROM testimusTable');
db.close();
while (rs.isValidRow())
{
var name = rs.fieldByName('name');
var age = rs.fieldByName('age');
alert(name + ' is ' + age + 'years old');
rs.next();
}
rs.close();
$.index.open();
使用FF Plugin SQLite Manager创建一个名为testimusDB.sqlite的数据库 并将其复制到项目的REsources文件夹
我得到的是
Runtime Error: LOCATION: [101,19] ti:/invoker.js
MESSAGE: Uncaught Error: Resources/testimusDB.sqlite SOURCE: return
delegate.apply(invoker._thisObj_,args);
具有相同问题的人通过减小DB的大小(我的是64 KB)或使用绝对路径(我尝试了绝对/相对路径和sqlite- / db- / sql-后缀)来解决它。任何想法如何解决这个问题?
答案 0 :(得分:1)
好的,我明白了:当你使用合金时,你不能使用install()! (如果有人知道这些信息的官方来源,请告诉我)。您需要使用模型来同步数据库。 This guy和this guide给了我很多帮助。
感谢您的回答。
答案 1 :(得分:0)
在操作结束时关闭与db的连接:
rs.close();
db.close();
数据库的大小无关紧要。我使用的是更大的一个:> 10MB。