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

[插件开发] sqlite在IOS下的问题

[复制链接]
发表于 2017-10-17 10:21:16
本帖最后由 小小小昕 于 2017-10-17 14:45 编辑

//导入数据库
function leadInDb() {
    var fs = api.require('fs');
    fs.copyTo({
        oldPath: 'widget://res/test.db',
        newPath: 'fs://db'
    }, (ret, err) => {
        alert('导入成功');
    });
}

//打开数据库
function openDb(_onSuccess, _onError) {
    var db = api.require('db');
    db.openDatabase({
        name: 'test',
        path: 'fs://db/test.db'
    }, function(ret, err) {
        if (ret.status) {
            alert(JSON.stringify(ret));
        } else {
            alert(JSON.stringify(err));
        }
    });
}

var db = api.require('db');
var sql = "SELECT * FROM re_reservation ";
    db.selectSql({
        name: 'test',
        sql: sql
    }, function(ret, err) {
        if (ret.status) {
           alert(JSON.stringify(ret));
        } else {
            alert(err);
        }
    });

调用leadInDb方法后导入成功 openDb也成功,执行sql查询却是个空表,不知道是因为fs.copyTo方法失效,导致openDb自动创建一个空数据库还是什么原因,安卓上都正常,ios上有问题

380
帖子
4
勋章
6
Y币
   fs.copyTo({
        oldPath: 'res://test.db',
        newPath: 'fs://db'

res:// 是什么路径?
28
帖子
1
勋章
1万+
Y币
copyTo方法的回调中你都没有判断,如何知道成功了?
15
帖子
0
勋章
37
Y币
技术支持-F 发表于 2017-10-17 10:29
fs.copyTo({
        oldPath: 'res://test.db',
        newPath: 'fs://db'

在项目根目录里 打错了,应该是widget://res/test.db 还是不行的,原来我是放在widget://test.db
15
帖子
0
勋章
37
Y币
本帖最后由 小小小昕 于 2017-10-17 11:28 编辑
技术咨询-Kenny 发表于 2017-10-17 10:29
copyTo方法的回调中你都没有判断,如何知道成功了?

我自己写的时候有用.exist判断文件是否存在  if(ret.status){
   fs.exist({})去判断
}
28
帖子
1
勋章
1万+
Y币
拷贝的时候如果目标文件夹已经存在该文件,则会拷贝失败,所以检查一下是否之前已经有文件存在了
15
帖子
0
勋章
37
Y币
技术咨询-Kenny 发表于 2017-10-17 12:19
拷贝的时候如果目标文件夹已经存在该文件,则会拷贝失败,所以检查一下是否之前已经有文件存在了 ...

把它remove了,重新再copyTo一个了,但是还是一样空的
28
帖子
1
勋章
1万+
Y币
oldPath: 'res://test.db',这样能成功?
15
帖子
0
勋章
37
Y币
技术咨询-Kenny 发表于 2017-10-17 12:53
oldPath: 'res://test.db',这样能成功?

前面是复制打错了   widget://res/test.db     copyTo    fs://db
28
帖子
1
勋章
1万+
Y币
小小小昕 发表于 2017-10-17 14:32
前面是复制打错了   widget://res/test.db     copyTo    fs://db

你也别copy了,直接打开widget下面的数据库,看看查询是否有问题。另外检查下其它页面是否也有打开数据库的操作。
12下一页
您需要登录后才可以回帖 登录

本版积分规则