apicloud中的sqlite操作模块db
db 模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大的简化了数据持久化问题。
1.执行
var db = api.require('db');
db.executeSql({
name: 'db_name',
sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
执行案例
function dbExecuteSql(sqlite_sql, callback) {
sqlite_db = api.require('db');
sqlite_db.executeSql({
name : BASE_FS_SQDB_NAME,
sql : sqlite_sql
}, function(ret, err) {
if (ret.status) {
callback(true);
} else {
api.toast({
msg : '对不起,获取会话信息失败,为您恢复数据,请稍后'
});
openDb(function(is_true) {
if (is_true) {
callback(true);
} else {
callback(false);
}
});
}
});
}
2.查询
var db = api.require('db');
db.selectSql({
name: 'db_name',
sql: 'SELECT * FROM Persons'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
查询案例
function dbSelectSql(sqlite_sql, callback) {
sqlite_db = api.require('db');
dbOpenDb(function(is_true) {
if (is_true) {
sqlite_db.selectSql({
name : BASE_FS_SQDB_NAME,
sql : sqlite_sql
}, function(ret, err) {
if (ret.status) {
// alert(JSON.stringify(ret.data));
callback(ret.data);
} else {
api.toast({
msg : '数据查询失败:' + err.msg
});
openDb(function(is_true) {
if (is_true) {
callback(true);
} else {
callback(false);
}
});
}
});
} else {
callback(false);
}
});
}
3.打开数据库,如不存在则创建
var db = api.require('db');
db.openDatabase({
name: 'db_name'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
创建案例
function dbOpenDb(callback) {
isExisDb(function(is_true) {
if (is_true) {
sqlite_db = api.require('db');
//alert(dbname);
sqlite_db.openDatabase({
name : BASE_FS_SQDB_NAME,
path : BASE_FS_SQDB_PATH + BASE_FS_SQDB_NAME + ".db"
}, function(ret, err) {
if (ret.status) {
callback(true);
} else {
api.toast({
msg : '对不起,获取会话信息失败,为您恢复数据,请稍后'
});
openDb(function(is_true) {
if (is_true) {
callback(true);
} else {
callback(false);
}
});
}
});
}
});
}
apicloud中的sqlite操作模块db的更多相关文章
- apiCloud中的数据库操作mcm-js-sdk的使用
1.引入js <!-- 引入mcm-js-sdk Begin --> <script type="text/javascript" src="../pl ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Python程序中的线程操作(线程池)-concurrent模块
目录 Python程序中的线程操作(线程池)-concurrent模块 一.Python标准模块--concurrent.futures 二.介绍 三.基本方法 四.ProcessPoolExecut ...
- 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET
今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...
- 关于ApiCloud的Superwebview在androidstudio中集成微信支付模块,提示模块未绑定的问题
前两天ApiCloud项目集成了微信支付模块,android端今天也将ApiCloud官方的uzWxPay.jar集成了.在编译玩测试的时候提示wxPay模块为绑定!我的项目是使用ApiCloud推出 ...
- 在Python程序中的进程操作,multiprocess.Process模块
在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...
- python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ...
- Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)
本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...
- 在Qt中使用SQLite数据库
前言 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统. Qt5以上版本可以直接使用SQLite(Qt自带驱动). 用法 1 准备 引入 ...
随机推荐
- ubuntu16.04下snort的安装(官方文档安装)(图文详解)
不多说,直接上干货! 最近为了科研,需要安装和使用Snort. snort的官网 https://www.snort.org/ Snort作为一款优秀的开源主机入侵检测系统,在windows和Linu ...
- window.location.href=*.html访问没反应问题
window.location.href=*.html访问没反应问题 1.SpringMvc配置中:扫描controller.视图层配置路径是否正确 报doc根路径 <mapper>匹配错 ...
- birthday
2.29 7.25 7.... 5... 10.01 02 03
- require(): open_basedir restriction in effect. File
新安装的 lnmp 环境,将项目放上报 require(): open_basedir restriction in effect. File 的错误! 错误日志显示,访问脚本不在 open_base ...
- JZOJ5821手机信号
用set维护,(l,r,v),注意边界,保证了两个端点l,r一定有信号站 增加有三种可能,1.直接加(没有影响),2.将原本的一个区间变成两个 3.将原本的一个区间变成三个 删除有三种情况,1.全包含 ...
- 【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) D】Tree
[链接] 我是链接,点我呀:) [题意] 让你在树上找一个序列. 这个序列中a[1]=R 然后a[2],a[3]..a[d]它们满足a[2]是a[1]的祖先,a[3]是a[2]的祖先... 且w[a[ ...
- 洛谷 P1176 路径计数2
P1176 路径计数2 题目描述 一个N×N的网格,你一开始在(1, 1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N, N),即右下角有多少种方法. 但是这个问题太简单了, ...
- Qt之图形(绘制文本)
简述 前面我们讲解了Qt图形的基本绘制,其中包括: 绘制文本.直线.直线.矩形.弧线.椭圆.多边形.图片,以及其它一些高级用法,比如:渐变.转换等. 本节我们来详细讲解文字的绘制.主要通过QPaint ...
- HDU 2444 The Accomodation of Students 二分图判定+最大匹配
题目来源:HDU 2444 The Accomodation of Students 题意:n个人能否够分成2组 每组的人不能相互认识 就是二分图判定 能够分成2组 每组选一个2个人认识能够去一个双人 ...
- VC眼中的众筹平台:将改变VC募集基金方式,成为下一个纳斯达克市场
“一个好的投资平台可能会成为像纳斯达克一样的市场”,这是投资人给予众筹平台的未来憧憬. ”从长远的角度来说,众筹平台可能会改变VC募集基金的方式“,戈壁投资合伙人蒋涛说,“从二级市场看,不论是企业的I ...