【问题标题】:PhoneGap + SQLite IssuesPhoneGap + SQLite 问题
【发布时间】:2012-12-11 05:38:43
【问题描述】:

由于某种原因,以下代码不起作用:

var users = window.SQLitePlugin.openDatabase("users","1.0","Demo",-1);
users.transaction(function(tx){
    KovarApp.lib.say("Transaction Started");
    var createString =  "CREATE TABLE IF NOT EXISTS 'users' ('id' integer(11) primary key, 'username' varchar(25),'password' varchar(100),'firstname' varchar(25),'lastname' varchar(25),'qdatabase' varchar(20),'ugroup' varchar(50),'status' varchar(50))";
    tx.executeSql(createString,[],function(tx,res){
        KovarApp.lib.say("Create Worked");
    },function(){
        KovarApp.lib.say("Create Failed");
    });

    var insertString = "INSERT INTO users (username,password,firstname,lastname,qdatabase,ugroup,status) values ('jktest','e10adc3949ba59abbe56e057f20f883e','Andrew','Rhyne','basictemplate','admin','yes')";
    tx.executeSql(insertString,[],function(tx,res){
        KovarApp.lib.say("Insert Worked");
    },function(){
        KovarApp.lib.say("Insert Failed");
    });

    var testString = "SELECT 1 FROM users WHERE username = 'jktest'";
    tx.executeSql(testString,[],function(tx,res){
        KovarApp.lib.say("res.rows.length: " + res.rows.length + " -- should be 1");
    });
    KovarApp.lib.say('Transaction Ended');
});

我的日志函数显示事务已启动和事务已结束,但未针对单个查询触发回调。我正在使用 Brody 的 sqlite3 插件:https://github.com/brodyspark/PhoneGap-SQLitePlugin-Android

这里的任何帮助都会很棒。我真的不知道我做错了什么,但它根本不起作用。作为旁注,他已指定对数据库大小没有任何限制,这由 -1 表示(表示没有大小限制)。

【问题讨论】:

    标签: sqlite cordova


    【解决方案1】:

    所有回调函数都是异步执行的。 在您的代码中,插入/选择命令在之前的命令完成之前启动,事务在各个命令完成之前结束。

    将启动命令的代码移动到上一个命令的成功回调函数中。
    换句话说,transactionexecuteSql 调用应该始终是其包含函数中的最后一个语句。

    【讨论】:

    • 但这并不能解释为什么没有执行任何回调。它应该吐出“创建工作”等......
    • 我知道它的结构不正确,但无论结构如何,回调都应该至少在创建查询时触发
    【解决方案2】:

    Brody 项目中的 Javascript 文件暂时依赖于平台。看起来最终会在 javascript 都可移植的地方进行抽象,但这就是问题所在 - 我在 Android 上运行了 JS 文件的 iOS 版本。呵呵

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 2012-11-11
      • 2017-05-17
      • 2012-12-07
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多