起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1456|回复: 7

[结贴] 按照sqlite案例方法创建数据,出现数据还是演示案例数...

[复制链接]

15

主题

66

帖子

221

积分

中级会员

Rank: 3Rank: 3

积分
221
QQ
发表于 2016-3-21 18:44:12 | 显示全部楼层 |阅读模式
我建了一个lsit.w  
代码如下:define(function(require){        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var NoteDB = require("$UI/note3/noteDB");
        var Model = function(){
                this.callParent();
        };

        Model.prototype.modelLoad = function(event){
             this.noteDB=NoteDB.getInstance();
             this.noteDB.initData();
        };

        return Model;
});

noteDB.js代码如下:
define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var SqliteUtil = require("$UI/demo/sqlite/sqliteUtil");

        var _instance = null;

        var NoteDB = function() {
//                在调试场景下,这里可以选择用HTML5的Web SQL Database,在Chrome浏览器远程调试时可以直接看到数据库内容
                this.database = window.openDatabase("X5_NOTE_DB", null, null, -1);
//                this.database = window.sqlitePlugin.openDatabase({name : "X5_NOTE_DB"});
                /*
                this.database.transaction(function(tx) {
                        tx.executeSql("drop table demo_test");
                        tx.executeSql("drop table demo_region");
                });
                */
        };

        /**
         * 这里构建单例,为了让多个页面共用同一个数据连接,避免死锁
         */
        NoteDB.getInstance = function() {
                if (!_instance) {
                        _instance = new NoteDB();
                }
                return _instance;
        };

        /**
         * 获取数据库链接
         */
        NoteDB.prototype.getDatabase = function() {
                return this.database;
        };

        /**
         * 这里给出一个自动判断并初始化数据库的方案
         */
        NoteDB.prototype.initData = function(onSuccess) {
                var db = this.getDatabase();
                // 检查表是否已存在
                var sqlCheckExists = "SELECT count(*) AS cnt FROM sqlite_master WHERE type = 'table' AND UPPER(name) in ('NOTE','NOTE_CLASS') ";
                SqliteUtil.executeSql(db, sqlCheckExists, null, function(res) {
                        if (res.rows.item(0).cnt < 2) {
                                // 如果不存在则获取初始化脚本
                                require(["text!$UI/note3/note.sql"], function(data) {
                                        executeSqlFile(data);
                                });
                        } else {
                                doSuccess();
                        }
                });
                // 执行初始化脚本
                function executeSqlFile(content) {
                        var sqls = content.split(";");
                        SqliteUtil.executeBatch(db, sqls, null, function() {
                                doSuccess();
                        });
                }
                function doSuccess() {
                        if ($.isFunction(onSuccess)) {
                                onSuccess.call(this);
                        }
                }
        };

        return NoteDB;
});

note.sql代码如下:
CREATE TABLE IF NOT EXISTS `note` (
  `fID` varchar(32) PRIMARY KEY ,
  `fDate` date DEFAULT NULL,
  `fMoney` decimal(10,0) DEFAULT NULL,
  `fSummiter` varchar(12) DEFAULT NULL,
  `fRestmiter` varchar(12) DEFAULT NULL,
  `fLiter` varchar(12) DEFAULT NULL
) ;

CREATE TABLE IF NOT EXISTS `note_class` (
  `fID` varchar(32) PRIMARY KEY ,
  `fType` varchar(32) NOT NULL,
  `fClass` varchar(32) NOT NULL
);

INSERT INTO `note` (`fID`, `fDate`, `fMoney`, `fSummiter`, `fRestmiter`, `fLiter`) VALUES
        ('C6CF724644700001C084D910260017E7',  '2015-10-22', 50, '21', '23', '123'),
        ('C6CF724BA7900001956444909A00F4D0',  '2015-10-22', 500, '123', '234', '445'),
        ('C6CF7F7A2A0000018C811900EB0A19F7',  '2015-10-22', 85, '324', '23', '335'),
        ('C6CFC1ECCCF000013B3310301F1D1C7A',  '2015-10-23', 1200, '2435', '234', '267');
INSERT INTO `note_class` (`fID`, `fType`, `fClass`) VALUES
        ('C6CF7622B43000017EA41D601D507130', '支出', '餐费'),
        ('C6CF7626E24000014B31526A1E3B135F', '支出', '交通'),
        ('C6CF762966B000019EA81DC015809660', '收入', '工资'),
        ('C6CF763063B00001A345B2EFD6901C95', '收入', '奖金'),
        ('C6CFC399428000015E1A8F6017B01034', '支出', '购物');
运行后,浏览器显示的是演示案例的数据,不是我自己创建的数据。求指导!!

QQ截图20160321183729.png

21

主题

75

帖子

357

积分

中级会员

Rank: 3Rank: 3

积分
357
QQ
发表于 2016-3-21 18:59:22 来自手机 | 显示全部楼层
我想你应该不只运行过一次,你改一下数据库名试一下。
回复 支持 反对

使用道具 举报

21

主题

75

帖子

357

积分

中级会员

Rank: 3Rank: 3

积分
357
QQ
发表于 2016-3-21 19:18:03 | 显示全部楼层
我也刚学Sqlite几天,这个步骤做完,做下步就显示错误框“accDB is not defined”,希望你继续做下去,看有没有跟我一样出现错误框,我是“accDB”,你应该是NoteDB,错误框“NoteDB is not defined”。
回复 支持 反对

使用道具 举报

发表于 2016-3-22 09:59:54 | 显示全部楼层
yygy 发表于 2016-3-21 19:18
我也刚学Sqlite几天,这个步骤做完,做下步就显示错误框“accDB is not defined”,希望你继续做下去,看有 ...

sqlite的案例是:/UI2/demo/sqlite/simpleData/index.w

sqlite属于cordova插件, cordova插件都必须是打包在app中安装后才可以正常使用的!
你的截图是浏览器中,应该是web Sql 而不是sqlite!

我没没有提供web sql的案例!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

15

主题

66

帖子

221

积分

中级会员

Rank: 3Rank: 3

积分
221
QQ
 楼主| 发表于 2016-3-22 19:28:56 | 显示全部楼层
yygy 发表于 2016-3-21 18:59
我想你应该不只运行过一次,你改一下数据库名试一下。

你说对了,我确实是之前运行过,相同的表名,只显示最早运行的数据。能方便加个朋友吗?以后和你交流交流!我的QQ :409663803
回复 支持 反对

使用道具 举报

15

主题

66

帖子

221

积分

中级会员

Rank: 3Rank: 3

积分
221
QQ
 楼主| 发表于 2016-3-22 19:30:07 | 显示全部楼层
yygy 发表于 2016-3-21 19:18
我也刚学Sqlite几天,这个步骤做完,做下步就显示错误框“accDB is not defined”,希望你继续做下去,看有 ...

这个我也遇到了,但是好像解决了
回复 支持 反对

使用道具 举报

15

主题

66

帖子

221

积分

中级会员

Rank: 3Rank: 3

积分
221
QQ
 楼主| 发表于 2016-3-22 19:36:12 | 显示全部楼层
liangyongfei 发表于 2016-3-22 09:59
sqlite的案例是:/UI2/demo/sqlite/simpleData/index.w

sqlite属于cordova插件, cordova插件都必须是打 ...

你说的可能是根源问题,但是我提问的是为什么显示的是演示案例的数据库内容。其实就是建的表明和之前的一样,所以显示之前表内容,也就是演示案例的内容。我更改了表名字就都解决了。还有你们演示案例里就是让在浏览器调试。哎,感觉我们提的问题,得不到准确答案啊。我们真的想把X5学好,把这个软件捧起来。还希望你们能够做好答疑工作啊。还有就是学习这个软件都是一片一片的,根本连不起来。只能照搬你们的演示案例。但是案例还挺不全。
回复 支持 反对

使用道具 举报

21

主题

75

帖子

357

积分

中级会员

Rank: 3Rank: 3

积分
357
QQ
发表于 2016-3-22 19:37:31 | 显示全部楼层
我也解决了。已加QQ
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-2 20:05 , Processed in 0.112755 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表