代码之家  ›  专栏  ›  技术社区  ›  Chris Schmitz

可以从sqlite数据库返回带有javascript的sqlresultset吗?

  •  0
  • Chris Schmitz  · 技术社区  · 14 年前

    我正在尝试创建一个小插件,它将使使用sqlite数据库更加容易。除了从数据库中选择数据之外,我还有一些基本的CRUD函数。

    我想从executesql函数返回选定的数据,但似乎我所能做的只是调用另一个方法,而不仅仅是返回数据。

    所以我想做的是:

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

    然后我想使用“data”变量作为查询中的sqlresultset。但是,该事务似乎只允许我调用数据处理程序方法,而不只是返回结果。

    testDB.transaction(  
        function ( transaction ) {  
            transaction.executeSql( sql, [], dataHandler, errorHandler);  
        }  
    );
    
    function dataHandler( transaction, results ) {
        // Now I can work with the "results" as the SQLResultSet
    }
    

    对于如何返回所选数据,或者是否可能,有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Ryan Doom    14 年前

    sqllite是异步的,没有任何方法可以避免这种情况。可以将要作为回调调用的函数传入.dbplugin方法。在条件之后传递另一个值,该值是运行查询后要调用的函数。然后在回调函数中设置数据。

    很烦人,我最近写了一些像你写的关于我上一个项目的东西。我使用了一个名为blockui的jquery插件,它在SQL调用期间基本上会阻塞接口,这使得它看起来更“同步”。

    祝你好运。