SQLIte for Iphone:记录没有得到更新

时间:2011-03-26 04:15:08

标签: ios4 appcelerator appcelerator-mobile

我正在使用Appcelerator。我使用以下代码来获取db记录。我使用SQLite客户端,NavCatLite作为SQLite GUI来查看和插入数据。我有一个奇怪的问题,当我通过SQLite客户端更新记录时,它确实反映在我的代码中。为什么不刷新数据?我甚至关闭了客户端,因为我认为它会缓存连接,但它也没有帮助。代码如下:

/** * All Db Functions Goes here */

var resumeDB = Titanium.Database.install('resume.db', 'myResume');
//var resumeDB = Titanium.Database.open('cold');

//Iterate through ResultSet

var myResultSet = resumeDB.execute('SELECT * FROM cvs');
while (myResultSet.isValidRow())
{
  Ti.API.info("Result iS = "+myResultSet.fieldByName('sb_title'));
  myResultSet.next();

} // Do something that iterates

resumeDB.close();

P.s:这不是只读数据库。用户每次都会插入和获取数据。

2 个答案:

答案 0 :(得分:2)

最初存储在/Resources中的数据库文件不是安装后应用程序使用的数据库文件。

the guide

  

另一方面, install()将复制   来自的预先存在的数据库文件   Titanium的Resources目录,或者一个   它的后代,到   applicationDataDirectory /../数据库/   并返回对已打开的引用   数据库即可。如果文件已存在   具有相同名称的复制动作   将默默地失败和数据库   将被简单地打开。

简而言之,它不会那样工作。

答案 1 :(得分:0)

我认为数据库只安装了一次,连同应用程序首次安装到设备/模拟器上时(我用iPhone看过这个,不确定Android)。第一次运行应用程序时,您的数据库将被复制到另一个位置,此后它是运行的副本,而不是您更新的数据库。尝试删除build / iphone / build / android目录的内容并再次运行应用程序以强制更新。如果这不起作用,请尝试重置模拟器/从设备上删除应用程序并重新安装。