2011-07-24 11 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); 

これはあなたのDBへの正しいパスですか?

+0

したがって、アプリケーションのルートにあるように、[オブジェクト]を返してから、正しいファイルパスを返します。 – Justin

関連する問題