2011-07-24 120 views
1

SQL語句這是我針對Adobe AIR的javascript:的Adobe AIR - 對DB

$(document).ready(function(e) { 
    setupDB(); 

    var tasks = getTasks(); 
    $("#tasks").empty(); 

    var numRecords = tasks.data.length; 

    for(i=0; i<numRecords; i++) { 
     $("<li/>").append('<span>'+ tasks.data[i].id +' - '+ tasks.data[i].task +'</span>').appendTo("#tasks"); 
    } 
}); 


var db = new air.SQLConnection(); 

function setupDB() { 

    var dbFile = air.File.applicationStorageDirectory.resolvePath("airTasks.db"); 

    try { 
     db.open(dbFile);  

    } catch (error) { 
     alert("DB Error: "+ error.message); 
     alert("Details: "+ error.details); 

     air.trace("DB Error: "+ error.message); 
     air.trace("Details: "+ error.details); 
    } 
} 

function getTasks() { 

    var query = new air.SQLStatement(); 
    query.sqlConnection = db; 
    query.text = "SELECT id, task FROM tasks"; 

    try { 
     query.execute(); 

    } catch(error) { 
     alert("Error getting tasks from DB: "+ error.message +", DETAILS: "+ error.details); 

     air.trace("Error getting tasks from DB: "+ error); 
     air.trace(error.message); 

     return; 
    } 

    return query.getResults(); 
} 

這裏是數據庫版本的截圖3 - airTasks.db enter image description here

我不斷收到:

ERROR: Table "tasks" not found.

回答

1

仔細檢查您打開的文件路徑實際上是否存在。如果沒有,SQLite會爲您創建一個。

試試這個給你打電話之前db.open()解決:

alert(dbFile); 

這是你的數據庫的正確路徑?

+0

所以它返回一個[對象] ...然後是正確的文件路徑,因爲它在應用程序的根目錄中。 – Justin