帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
12
帖子
0
勋章
183
Y币

[插件开发] db模块,数据库能打开但操作不了表

[复制链接]
发表于 2015-7-20 14:58:20
function executeSql(ssql,sesql){
                db.executeSql({
                        name: dbname,
                        sql: ssql
                }, function(ret, err){
                    if(ret.status){
                       alert("添加数据成功");
                        //查询数据
                        //selectSql(sesql);
                    }else{
                        api.alert({msg:err.msg});
                                alert("添加数据失败");
                    }
                });
                  
        }

这段代码在安卓手机上,能正常运行,在iphone 8.4版本与vivo手机上运行,报数据库打开成功,添加数据失败,错误:表不存在。
请各位帮忙看看,是什么问题,谢谢!

5
帖子
0
勋章
1万+
Y币
在相关目录下查看下是否有这个表,如果报错一定是表有问题了
28
帖子
1
勋章
1万+
Y币
openDatabase时若打开已存在的数据库,那么需要指定path路径;若不存在那么会自动创建数据库,这时候里面的表就需要自己再创建了
12
帖子
0
勋章
183
Y币
技术支持-M 发表于 2015-7-20 15:01
在相关目录下查看下是否有这个表,如果报错一定是表有问题了

在index页面先把数据库拷贝在fs://目录下,拷贝成功后在打开的数据库,安卓上能正常对数据库表进行操作,在iphone 8.4版本与vivo手机上运行就会报表不存在
12
帖子
0
勋章
183
Y币
技术咨询-Kenny 发表于 2015-7-20 16:50
openDatabase时若打开已存在的数据库,那么需要指定path路径;若不存在那么会自动创建数据库,这时候里面的 ...

数据库都已经打开成功了,安卓上都能正常的对表进行增,删,改,查,在在iphone 8.4版本与vivo手机上运行,就会报表不存在
28
帖子
1
勋章
1万+
Y币
zhangdi 发表于 2015-7-20 17:37
数据库都已经打开成功了,安卓上都能正常的对表进行增,删,改,查,在在iphone 8.4版本与vivo手机上运行 ...

你的数据库是放在widget目录下面的吗?这个目录下面是只读的,没法添加数据,只能先拷贝到fs://对应目录下面再使用
12
帖子
0
勋章
183
Y币
技术咨询-Kenny 发表于 2015-7-20 18:18
你的数据库是放在widget目录下面的吗?这个目录下面是只读的,没法添加数据,只能先拷贝到fs://对应目录 ...

db文件在index里面就已经,拷贝到fs://目录下面去了,操作的也是fs://目录下面的db文件
5
帖子
0
勋章
1万+
Y币
zhangdi 发表于 2015-7-20 17:37
数据库都已经打开成功了,安卓上都能正常的对表进行增,删,改,查,在在iphone 8.4版本与vivo手机上运行 ...

到手机相关目录看看这个数据库结构是否完整,不会看时请@我
12
帖子
0
勋章
183
Y币
技术支持-M 发表于 2015-7-21 20:10
到手机相关目录看看这个数据库结构是否完整,不会看时请@我

        var dbpaths = 'widget://res//test.db';
        var dbpath = 'fs://welink.db';
       //拷贝文件到相应目录
        fs.rename({
                         oldPath: dbpaths,
                         newPath: dbpath
                },function(ret,err){
                         if (ret.status) {
                                console.log("拷贝文件到手机成功");
                               //打开数据库
                               
                         }else {
                                  api.alert({msg:err.msg});
                        }
           });

数据库已经拷贝至fs://目录(路径:dbpath),安卓里面访问db文件,就是用的dbpath 路径,ios里面拷进去后,不能直接用dbpath路径吗?
5
帖子
0
勋章
1万+
Y币
zhangdi 发表于 2015-7-21 23:17
var dbpaths = 'widget://res//test.db';
        var dbpath = 'fs://welink.db';
       //拷贝文件到相应目 ...

就是直接使用dbpath这个路径 的,复制应该用copyTo,你那叫重命名,不管用
12下一页
您需要登录后才可以回帖 登录

本版积分规则