大家好!我是范范。本人刚接触ST2到现在刚刚两个月,6月1号接的项目,那时才知道有Sencha Touch2这个东西,到现在两个月了期间的幸酸就不说了。今天说说在项目中用到的HTML5的本地存储。可能有的地方不是很合理,大家可以提出宝贵意见。下面开整:

下面是创建数据库的代码:database.js

var initDatabase = function(db,tables){

	for(var i=0;i<tables.length;i++){
pmdb.createTable(db,tables[i],
function(){ //成功后回调函数 },
function(tx, error){ //失败后回调函数
console.log(i);
}
);
}
}; var pmdb =
{
//建表,在系统初始化时调用
createTable:function (db,createSql,sucessCallback,failCallBack){
if(!db) {
return ;
}
// 创建表
db.transaction( function(tx) {
tx.executeSql(
createSql, //createSql
[], //参数
sucessCallback, //成功后回调函数
failCallBack //失败后回调函数
);
});
}, //执行,
excute:function (db,sql,param,sucessCallback,failCallBack){
if(!db) {
return ;
}
db.transaction(function(tx) {
tx.executeSql(
sql,
param,
sucessCallback, //成功后回调函数
failCallBack //失败后回调函数
);
});
}, //删除表
drop: function(db,tableName) {
db.transaction(function (tx) {
tx.executeSql('DROP TABLE '+tableName);
});
}, //打开数据库:一个用户一个数据库
openDB: function (userName){
var dbName= "PM_"+userName; var dbVersion = "1.0" ;
var dbSize = 1024 * 1024;
var alia = "工程质量管理数据库";
var db = openDatabase(dbName, dbVersion, alia, dbSize);
return db;
} ,
//批量根据id删除数据
deleteData: function(db,tableName,id,data,sucessCallback,failCallBack){
if (!db) {
return;
}
if(data.length>0){
var ids = "";
for(var index=0;index<data.length;index++){
if(index==0){
ids="'"+data[index][id]+"'";
}else{
ids+=",'"+data[index][id]+"'";
}
}
var sql = "delete from " + tableName + " where "+id+" in ("+ids+")";
pmdb.excute(db,sql,[],sucessCallback,failCallBack);
}
}
,
// 向数据库插入数据
insertData : function(db,tableName,field,data,sucessCallback,failCallBack) {
if (!db) {
return;
} for (var index = 0; index < data.length; index++) {
var values = data[index];
var value = pmdb.newArray(values, field); // 将data数据转成Array
var fieldnew=newArrayFilds;
var sql = "INSERT INTO " + tableName + " (" + fieldnew.join(",")
+ ") values " + "("
+ new Array(fieldnew.length + 1).join(",?").substr(1) + ")"; pmdb.excute(db,sql, value,sucessCallback,failCallBack);
}; //
},
// 将data数据转成Array
newArray : function(data, filds) {
var newArray = new Array();
var k=0;
for (i = 0; i < filds.length; i++) {
if(i==0){newArrayFilds.length=0}
name = filds[i];
var fildData=data[name];
if(fildData!=undefined&&fildData!=""){
if(newArray.length>0){
newArray[k+1] = fildData;
newArrayFilds[k+1]=name;
k=k+1;
}else{
newArray[k] = fildData;
newArrayFilds[k]=name; } }
}
return newArray;
} };
var newArrayFilds = new Array();

下面是建表的代码:CreateTable.js

//建表
var creatTables ={
sqls :function(){
var tables = new Array(2);//表的个数
//基础数据表、参数表
tables[0] = "CREATE TABLE IF NOT EXISTS t_Question  (question_id int, project_id string,category_id int,pj_node_code string,location string,description string,cs_id int,fix_requirement string,fix_date datetime,question_priority string,submit_user_id int,submit_date datetime,question_status int,amount number,IsSubmit int )";
tables[1] = "CREATE TABLE IF NOT EXISTS t_QuestionUser  (question_id string,user_type string,user_id int)";
return tables; } };


下面是存入时的数据集合:
var questionArray = new Array("question_id","project_id","category_id","pj_node_code","location","description","cs_id","fix_requirement","fix_date","question_priority","submit_user_id","submit_date","question_status","amount","IsSubmit");
var questionUserArray = new Array("question_id","user_type","user_id");
												

Sencha Touch 2 结合HTML5的本地存储创建数据库实现增、删、改、查的更多相关文章

  1. HTML5 LocalStorage 本地存储

    HTML5 LocalStorage 本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就 ...

  2. (转载)HTML5 LocalStorage 本地存储

    原文地址:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地 ...

  3. HTML5的本地存储 LocalStorage

    localStorage顾名思义,就是本地存储的意思,在以前很长一段时间,要想在客户端存 储一些配置及登录信息等数据都只能通过COOKIE或flash的方式,如今html5来临,也 带来了更强大的本地 ...

  4. 【转】HTML5 LocalStorage 本地存储

    原文见:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步 ...

  5. html5的本地存储localStorage和sessionStorage

    html5的本地存储localStorage和sessionStorage html5中新增的比较重要的一个功能就是web storage来实现客户端本地存储数据,之前存储数据都是用cookie来实现 ...

  6. HTML5 LocalStorage 本地存储总结

    存储数据的方法就是直接给window.localStorage添加一个属性,例如:window.localStorage.a 或者 window.localStorage["a"] ...

  7. HTML5 LocalStorage 本地存储(转)

    原文:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地存储 ...

  8. HTML5 LocalStorage 本地存储原理详解

    首先自然是检测浏览器是否支持本地存储.在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在 ...

  9. HTML5 LocalStorage 本地存储,刷新值还在

    H5的两种存储技术的最大区别就是生命周期. 1. localStorage是本地存储,存储期限不限: 2. sessionStorage会话存储,页面关闭数据就会丢失. 使用方法: localStor ...

随机推荐

  1. Scala单例对象、伴生对象实战详解

    1.Scala单例对象 Scala单例对象是十分重要的,没有像在Java一样,有静态类.静态成员.静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员. ...

  2. 异步流程控制库GoWithTheFlow

    异步流程控制库GoWithTheFlow 一个尾触发方式来控制异步流程的库, 有seq(顺序执行) par(同步执行) 两种方法 博客 http://notes.jetienne.com/2011/0 ...

  3. CentOS7 vs centos6

    The CentOS Project has announced general availability of CentOS-7, the first release of the free Lin ...

  4. poj1547---结构数组

    题意:老师发给每个学生的橡皮泥相同,找出谁抢了谁的橡皮泥 思路:结构数组存储每个学生的橡皮总量,和名字 /* 结构数组存储用户信息--只放名称和体积 while输入循环复用长宽高变量 for循环求所有 ...

  5. python之lambda表达式

    lambda函数小结 1.lambda表达式: 以前看人家写一个长式子就能干一件我写一个函数干的事情觉得好帅,现在通过学习知道了lambda表达式其原理就是一个函数,而且是一个只能处理简单功能的函数. ...

  6. Android Json生成及解析实例

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  7. 部署SharePoint2013解决方案

    Add-SPSolutionInstall-SPSolution -Identity Grain2013.wsp -GACDeployment -CompatibilityLevel {14,15}  ...

  8. python文件目录遍历保存成xml文件代码

    Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...

  9. Java基础之"=="和 和 equals 方法的区别

    一."=="操作符 ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作 ...

  10. The following classes could not be found: - android.support.v7.internal.widget.ActionBarOverlayLayou解决方案

    如图出现如下的错误的时候,一般都是升级Androdi Studio 后导致的,引入库不全,或者其他 东西缺少,可以如下解决方案: 或者如下的解决方案: 在布局文件的Design界面中,修改原来的App ...