如何将参数传递给 PhoneGap 数据库事务函数

Posted

技术标签:

【中文标题】如何将参数传递给 PhoneGap 数据库事务函数【英文标题】:how to pass arguments to PhoneGap database transaction function 【发布时间】:2012-12-31 08:35:16 【问题描述】:

我有一个正在运行的 PhoneGap 数据库事务,我可以在其中运行 sql 查询并处理结果。但是,为了使其可重用,我需要将参数传递给查询函数。应该有比在查询函数中声明全局变量并访问它们/重置更好的方法。感谢您在转换此内容方面的任何帮助:

    //update images function
    function updateGalleryCovers() 
        var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
        db.transaction(queryDB_u_g, errorCB);
    
    //Query the database
    function queryDB_u_g(tx) 
        var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+getUserId()+'"';
        tx.executeSql(query, [], querySuccess_u_g, errorCB);
    
//Query success callback
function querySuccess_u_g(tx, results) 
    var len = results.rows.length;
    for (var i=0; i<len; i++)
        // process results
    

到这样的事情:

    //update images function
    function updateGalleryCovers(userid) 
        var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
        db.transaction(queryDB_u_g, userid, errorCB);
    
    //Query the database
    function queryDB_u_g(tx, userid) 
        var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+userid+'"';
        tx.executeSql(query, [], querySuccess_u_g, errorCB);
    
//Query success callback
function querySuccess_u_g(tx, results) 
    var len = results.rows.length;
    for (var i=0; i<len; i++)
        // process results
    

谢谢!

【问题讨论】:

为什么你的第二个例子不起作用?我很确定您可以将变量传递给函数并使用它们。 @Leeish:phonegap Database.transaction() 方法接受执行查询的函数的名称,后跟回调函数的名称。没有规定传递我所知道的论点。 docs.phonegap.com/en/2.3.0/… 让我看看我的一些代码... 【参考方案1】:

事务功能由 sqlite 而不是 phonegap 提供。确实,由于 sqlite 接受的方法签名,您不能将额外的变量传递给函数。

但这里有一个解决方法:

db_conn.transaction( function(tx) your_function(tx, parameter1, parameter2) , ErrorCallBack );

在这里,您将一个虚拟函数传递给事务成功回调,并将事务对象连同它一起获取。

希望有帮助

【讨论】:

tx 代表什么? 这里的tx 表示transaction

以上是关于如何将参数传递给 PhoneGap 数据库事务函数的主要内容,如果未能解决你的问题,请参考以下文章

如何通过不提交当前会话事务将 DataTable 作为参数传递给存储过程?

如何将参数传递给数据绑定中的函数?

如何将 POST 参数传递给 Durable Function,然后将此参数传递给 Timer Triggered 函数

如何将参数传递给数据绑定中的函数?

Prettyphoto - 如何将唯一参数传递给回调函数

如何将参数传递给快速完成的函数