2011-03-26 80 views
0

我正在使用Appcelerator。我正在使用下面的代碼來獲取數據庫記錄。我正在使用SQLite Client,NavCatLite作爲查看和插入數據的SQLite GUI。我有一個奇怪的問題,當我通過SQLite客戶端更新記錄時,它確實反映在我的代碼中。爲什麼不刷新數據?我甚至關閉了客戶端,因爲我認爲它會緩存連接,但它也沒有幫助。代碼如下:SQLIte for Iphone:記錄沒有更新

/** * 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

您在/Resources中初始存儲的數據庫文件不是應用程序安裝後使用的數據庫文件。

the guide

在另一方面,安裝()將複製 一個已經存在的數據庫文件從 鈦資源的目錄,或者一個 它的後代,要 applicationDataDirectory /../數據庫/ ,並返回對打開的數據庫的引用。如果一個文件已經存在 具有相同的名稱,複製動作 將無提示失敗,數據庫 將被簡單地打開。

總之,它只是不這樣工作。

0

我認爲數據庫只安裝一次,當它第一次安裝到設備/模擬器(我已經看到這與iPhone無論如何,不​​知道關於Android)的應用程序。應用程序第一次運行時,您的數據庫被複制到另一個位置,此後它是運行的副本,而不是更新的數據庫。嘗試刪除構建/ iphone/build/android目錄的內容並再次運行應用程序以強制更新。如果這不起作用,請嘗試重置模擬器/從應用程序中刪除應用程序並重新安裝。