帖子
帖子
用户
博客
课程
显示全部楼层
18
帖子
0
勋章
70
Y币

[插件开发] db模块如何一次行存储多条数据

[复制链接]
发表于 2016-10-19 15:27:24
db模块对于更新数据库,只有一个executeSql的方法,这个方法如果要批量插入和更新,得一遍一遍的执行,有没有其他的办法,一次执行啊,不会是多条插入语句拼接成一个sql吧
5
帖子
0
勋章
3281
Y币
循环插入。
30
帖子
2
勋章
6989
Y币
你可以尝试使用transaction执行事务来完成
db.executeSql({name : 'MYDATABASE',sql : "delete from mygroup"}, function(ret, err) {
                                db.transaction({name: 'MYDATABASE',operation: 'begin'}, function(ret, err){
                                    if(ret.status){
                                        for(var i=0;i<groupdata.length;i++){
                                                addGroup(userid,groupdata[i].GroupId,groupdata[i].GroupName,groupdata[i].Attach,groupdata[i].UserId,groupdata[i].Username);
                                        }
                                        db.transaction({name: 'MYDATABASE',operation: 'commit'}, function(ret, err){});
                                    }
                                });
                        });

示例
4
帖子
0
勋章
22
Y币
收藏了,这样效率高吗?
24
帖子
0
勋章
441
Y币
快三年了,你问谁呢
95
帖子
0
勋章
465
Y币
勇可可 发表于 2016-10-19 15:40
db.executeSql({name : 'MYDATABASE',sql : "delete from mygroup"}, function(ret, err) {
                                db.transac ...

这个方法,你确定最后submit的时间,是在插入完全完成了以后吗?
20
帖子
0
勋章
6613
Y币
无意平常心 发表于 2019-8-24 21:41
这个方法,你确定最后submit的时间,是在插入完全完成了以后吗?

试一下就知道了,这个方法可以。
95
帖子
0
勋章
465
Y币
yxWin 发表于 2019-8-25 04:56
试一下就知道了,这个方法可以。

版主,我觉得他用的executesql异步,应该改成同步。
无意平常心 发表于 2019-8-24 21:41
这个方法,你确定最后submit的时间,是在插入完全完成了以后吗?

这个方法会限制你连接数据库的东东  不会让你整个app卡死
您需要登录后才可以回帖 登录

本版积分规则