Adobe AIR - оператор SQL против БД - PullRequest
1 голос
/ 24 июля 2011

Это мой javascript для Adobe Air:

$(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 Ответ

1 голос
/ 24 июля 2011

Дважды проверьте, что ваш открываемый путь к файлу действительно существует. Если этого не произойдет, SQLite создаст его для вас.

Попробуйте устранить неполадку, прежде чем позвонить db.open():

alert(dbFile);

Это правильный путь к вашей БД?

...