Adobe AIR - 针对DB的SQL语句

时间:2011-07-24 00:25:25

标签: sqlite air adobe

这是我用于Adobe Air的javascript:

$(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

我一直在:

  

错误:找不到表“任务”。

1 个答案:

答案 0 :(得分:1)

仔细检查您正在打开的文件路径是否存在。如果没有,SQLite会为您创建一个。

在致电db.open()

之前,请尝试对此进行问题排查
alert(dbFile);

这是您的数据库的正确路径吗?