2010-11-13 81 views
0

我想創建一個小插件,使SQLite數據庫的工作更容易一點。除了從數據庫中選擇數據外,我已經具備了基本的CRUD功能。你能從SQLite數據庫返回一個帶有JavaScript的SQLResultSet嗎?

我想從executeSql函數中返回選定的數據,但似乎我所能做的就是調用另一個方法,而不僅僅是返回數據。

所以我想要做的是什麼:

var data = $(window).dbPlugin('select', '*', 'tableName', 'conditions'); 

然後,我願與查詢「數據」變量作爲SQLResultSet工作。但是,事務似乎只允許我調用數據處理程序方法,而不僅僅返回結果。

testDB.transaction( 
    function (transaction) { 
     transaction.executeSql(sql, [], dataHandler, errorHandler); 
    } 
); 

function dataHandler(transaction, results) { 
    // Now I can work with the "results" as the SQLResultSet 
} 

任何想法如何返回選定的數據,或者如果它甚至可能?

回答

0

SQLlite是異步的,並且沒有任何方法可以避免這種情況。您可以將您想要作爲回調調用的函數傳遞到.dbPlugin方法中。條件傳遞另一個值,這是查詢運行後要調用的函數。然後在您的回調函數中設置數據。

這很煩人,我最近寫了一些像你在寫我的最後一個項目。我使用了一個名爲blockUI的jQuery插件,它會在SQL調用期間基本上阻塞接口,使其看起來更「同步」。

祝你好運。

相關問題