mmqq834533 2014-07-03 08:50
浏览 1089

Javascript操作SQLite中的函数执行问题

首先是现有的问题描述——
当前流程
我通过Ajax取到一组数据,然后在Ajax的回调函数中,操作SQLite,如果本地数据库中(通过ID查找)没有这组数据,就Insert;如果有,就更新本地数据库里的条目。
存在问题
我的Insert方法是可以正常运行的。但是Update方法就会在实际运行时直接被跳过。
核心代码如下

db.transaction(function(con){
        con.executeSql('SELECT * FROM ' + uname + ' WHERE appid=' + APP_ID,[],function(con,res){
            if(res.rows.length <= 0){//如果有数据
                addData(uname, APP_ID, 1, 0, APP_NAME_CN, ICON_PATH, VERSION, APP_COMPANY, ACTIVITY.toLowerCase());}
            else{//没有数据
                isDown = (res.rows.item(0).isDown == 1);
                sql = 'UPDATE ' + uname + ' SET name = "' + APP_NAME_CN + '",icon = "' + ICON_PATH + '", ver = ' + VERSION + ', comp = "' + APP_COMPANY + '", schemeUrl = "' + ACTIVITY.toLowerCase() + '" WHERE appid = ' + APP_ID;
                db.transaction(function(con1){
                    con1.executeSql(sql,function(con2,res2){
                        alert("!")
                    },function(con3,error3){
                        alert("添加数据出错!")
                    })
                });
//                updateData(uname, APP_ID,APP_NAME_CN, ICON_PATH, VERSION, APP_COMPANY, ACTIVITY.toLowerCase());//这是原有的函数,被我拉到这个文件中了
            }
        })
    });``` 
**另外**
整个项目是用原生代码写的,不能使用框架和其他引用。
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 使用C++实现ATM系统
    • ¥20 求帮,直连能连上oracle12,但是thinkphp6就是报错
    • ¥15 paddleocr运行报错
    • ¥15 怎么用 matlab 设计滞后-超前串联校正网络
    • ¥15 MFC引用C#生成的dll,将dll放置到非exe程序目录,如何操作
    • ¥15 C#创建webservice接口,三方通过多次跳转访问本方服务,获取wsdl文档,wsdl中ip地址为局域网内本机地址而非三方直接访问的地址。
    • ¥15 关于#wireshark#的问题:需要安卓app流量数据集要安卓流量做包序列长度的实验,比如某些流量是在看视频还是在发评论
    • ¥15 Smail语句如何使用判断语句跳过验证卡密界面
    • ¥15 关于#wireshark#的问题:并且能够给数据做标注,如这个流量是在看视频或者是在转账
    • ¥15 运筹优化,gurobi,python