【问题标题】:Adobe AIR - SQL statement against DBAdobe AIR - 针对数据库的 SQL 语句
【发布时间】:2011-07-24 00:25:25
【问题描述】:

这是我的 Adob​​e 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

我不断得到:

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

【问题讨论】:

    标签: sqlite air adobe


    【解决方案1】:

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

    在致电db.open() 之前,请先尝试此方法进行故障排除:

    alert(dbFile);
    

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

    【讨论】:

    • 所以它返回了一个 [object]... 然后是正确的文件路径,因为它位于应用程序的根目录中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多