2013-11-01 117 views
1

我在安裝數據庫時遇到了一些問題Ti.Database.install()。下面是我在做什麼:Titanium安裝DB

  • 打開新的默認合金項目
  • 添加一些代碼來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插件的SQLite Manager中的DB叫testimusDB.sqlite 並將其複製到項目的REsources文件夾中

  • 通過Titanium Studio在Samsung S3上啓動應用程序

我得到的是

Runtime Error: LOCATION: [101,19] ti:/invoker.js 
    MESSAGE: Uncaught Error: Resources/testimusDB.sqlite SOURCE: return 
    delegate.apply(invoker._thisObj_,args); 

人同樣的問題,通過降低DB(我的是64 KB)的大小或使用絕對路徑解決它(我試過絕對 -/relative-路徑和sqlite-/db-/sql-後綴)。任何想法如何解決這個問題?

+0

爲什麼你把它放在Resources文件夾中?使用合金時該文件夾是自動生成的。 –

回答

1

好吧我明白了:當你使用合金時,你不能使用install()! (如果有人知道這個信息的官方來源,請讓我知道)。您需要使用模型來同步數據庫。 This guythis guide幫了我很多。

感謝您的答案。

0

關閉連接在操作結束DB:

rs.close(); 
db.close(); 

數據庫的大小並不重要。我使用的是更大的:> 10MB。