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

[插件开发] db模块

[复制链接]
发表于 2016-5-6 10:18:05
db模块中有一个方法是打开数据库,如果数据库不存在就创建。但是对于表就只有创建表,如果说我创建了表,下次打开我的开发应用是不是执行这句代码创建的表就会覆盖之前的那张表?秀解答,急啊!
0
帖子
0
勋章
5
Y币
function IntoDbKu() {
                //1.打开数据库
                var db = api.require('db');
                db.openDatabase({//打开
                        name : 'db_name',
                }, function(ret, err) {
                        if (!ret.status) {
                                api.alert({
                                        msg : '数据库打开失败'
                                });
                                return;
                                ;
                        }
                });
                //2.执行SQL语句(创建表、插入、更新、删除、查询)
                //var db = api.require('db');
                var sql = "CREATE TABLE IF NOT EXISTS 'Persons'('Id_P' int,'Name_P' varchar(255))";
                db.executeSql({
                        name : 'db_name',
                        sql : sql
                }, function(ret, err) {
                        if (!ret.status) {
                                api.alert({
                                        msg : '创建表失败'
                                });
                                return;
                        }
                });
                //_______________________________________________________________
                 //加入数据库
                //var db = api.require('db');
                var sql = "INSERT INTO Persons VALUES(7,北京)";
                db.executeSql({
                        name : 'db_name',
                        sql : sql
                }, function(ret, err) {
                        if (!ret.status) {
                                api.alert({
                                        msg : '加入数据库失败'
                                });
                                return;
                        } else
                                api.alert({
                                        title : "直接显示",
                                        msg : JSON.stringify(ret.date),
                                });
                });
                //查询数据库
                var sql = "SELECT*FROM Persons";
                db.selectSql({
                        name : 'db_name',
                        sql : sql
                }, function(ret, err) {
                        if (!ret.status) {
                                toast(err.msg);
                        } else
                                api.alert({
                                        title : "数据库操作结果显示",
                                        msg : JSON.stringify(ret.date),
                                });
                });
                //-----------------------
        }

        function toast(msg) {
                api.toast({
                        msg : msg,
                        duration : 1000,
                        location : "top"
                });
        }
db.executeSql({
                                        name : 'MYDATABASE',
                                        sql : 'create table if not exists departmentGroup (RecordID text,Name text)'
                                }, function(ret, err) {});
参照这么写
0
帖子
0
勋章
26
Y币
应该不会吧
18
帖子
0
勋章
110
Y币
勇可可 发表于 2016-5-6 10:26
db.executeSql({
                                        name : 'MYDATABASE',
                                        sql : 'create table if not exists departmentGroup (Re ...

这是创建表,可是我下次触发这个方法时,是不是还会创建一个新的表?我的问题是这个
试试就知道了
18
帖子
0
勋章
110
Y币

试了,不行,报错,说是表已经创建了
18
帖子
0
勋章
110
Y币
勇可可 发表于 2016-5-6 10:26
db.executeSql({
                                        name : 'MYDATABASE',
                                        sql : 'create table if not exists departmentGroup (Re ...

可是再次进入是就报错了,表已经存在,怎么规避这个问题?求解答
5
帖子
0
勋章
3339
Y币
竞技魔方 发表于 2016-5-6 11:04
可是再次进入是就报错了,表已经存在,怎么规避这个问题?求解答

加下判断,if not exists create database
18
帖子
0
勋章
110
Y币
odiimdhza 发表于 2016-5-6 11:12
加下判断,if not exists create database

能不能写一个完整的例子?谢谢了,我还是写不对
123下一页
您需要登录后才可以回帖 登录

本版积分规则