db
来自于:官方立即使用
异步接口
subfile openDatabase closeDatabase transaction executeSql selectSql
同步接口
subfileSync openDatabaseSync closeDatabaseSync transactionSync executeSqlSync selectSqlSync
附录
概述
db 模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大的简化了数据持久化问题,本模块已支持同步接口。
异步接口
subfile
获取指定目录下的子文件
subfile({params}, callback(ret, err))
params
directory:
- 类型:字符串
- 描述:(可选项)目录路径,不传时使用 db 模块的默认路径。支持 fs://、widget://等协议(如fs://user.db)
- 默认值:本模块自动创建的路径
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;操作成功状态值,true|false
files:[], //数组类型;
folders:[] //数组类型;
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg: '' , //字符串类型;错误信息
code: '' //数字类型;错误码,取值范围:
//1:该路径不存在文件
//2:该路径是文件路径非目录路径
}
示例代码
var db = api.require('db');
db.subfile({
directory: ''
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.4及更高版本
openDatabase
打开数据库,若数据库不存在则创建数据库。
数据库打开后即使当前页面关闭了,数据库也不会关闭,除非手动调用 closeDatabase()方法关闭,所以一旦打开在其它页面就可以直接使用。
若数据库放在 widget 目录下,那么需要先把数据库拷贝到 fs:// 对应目录下面再使用
openDatabase({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:数据库名称
path:
- 类型:字符串
- 描述:(可选项)数据库所在路径,不传时使用默认创建的路径。支持 fs://、widget://等协议(如fs://user.db)
- 默认值:自动创建的路径
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;操作成功状态值,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误信息
}
示例代码
var db = api.require('db');
db.openDatabase({
name: 'test'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统,PC 模拟器
可提供的1.0.0及更高版本
closeDatabase
关闭数据库
closeDatabase({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:数据库名称
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;操作成功状态值,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述
}
示例代码
var db = api.require('db');
db.closeDatabase({
name: 'test'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统,PC 模拟器
可提供的1.0.0及更高版本
transaction
执行事务操作语句
transaction({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:数据库名称
operation:
- 类型:字符串
- 描述:事务操作类型,取值范围如下:
- begin //开始事务
- commit //提交事务
- rollback //回滚操作
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;操作成功状态值,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述
}
示例代码
var db = api.require('db');
db.transaction({
name: 'test',
operation: 'begin'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统,PC 模拟器
可提供的1.0.0及更高版本
executeSql
执行 sql
executeSql({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:数据库名称
sql:
- 类型:字符串
- 描述:sql 语句
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;操作成功状态值,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述
}
示例代码
var db = api.require('db');
db.executeSql({
name: 'test',
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));
}
});
可用性
iOS系统,Android系统,PC模拟器
可提供的1.0.0及更高版本
selectSql
查询sql
selectSql({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:数据库名称
sql:
- 类型:字符串
- 描述:sql语句
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;操作成功状态值,true|false
data: [] //数组类型;查询结果数据
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述
}
示例代码
var db = api.require('db');
db.selectSql({
name: 'test',
sql: 'SELECT * FROM Persons'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统,PC 模拟器
可提供的1.0.0及更高版本
同步接口
subfileSync
获取指定目录下的子文件
subfileSync({params})
params
directory:
- 类型:字符串
- 描述:(可选项)目录路径,不传时使用 db 模块的默认路径。支持 fs://、widget://等协议(如fs://user.db)
- 默认值:本模块自动创建的路径
return
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;操作成功状态值,true|false
files:[], //数组类型;
folders:[], //数组类型;
msg: '' , //字符串类型;错误信息,仅当 status 为 false 时有值
code: '' //数字类型;错误码,仅当 status 为 false 时有值。取值范围:
//1:该路径不存在文件
//2:该路径是文件路径非目录路径
}
示例代码
var db = api.require('db');
var ret = db.subfileSync({
directory: ''
});
alert(JSON.stringify(ret));
可用性
iOS系统,Android系统
可提供的1.0.4及更高版本
openDatabaseSync
打开数据库,若数据库不存在则创建数据库(同步接口)。
数据库打开后即使当前页面关闭了,数据库也不会关闭,除非手动调用 closeDatabase()方法关闭,所以一旦打开在其它页面就可以直接使用。
若数据库放在 widget 目录下,那么需要先把数据库拷贝到 fs:// 对应目录下面再使用
openDatabaseSync({params})
params
name:
- 类型:字符串
- 描述:数据库名称
path:
- 类型:字符串
- 描述:(可选项)数据库所在路径,不传时使用默认创建的路径。支持 fs://、widget://等协议(如fs://user.db)
- 默认值:自动创建的路径
return
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;操作成功状态值,true|false
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
}
示例代码
var db = api.require('db');
var ret = db.openDatabaseSync({
name: 'test'
});
alert(JSON.stringify(ret));
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeDatabaseSync
关闭数据库(同步接口)
closeDatabaseSync({params})
params
name:
- 类型:字符串
- 描述:数据库名称
return
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;操作成功状态值,true|false
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
}
示例代码
var db = api.require('db');
var ret = db.closeDatabaseSync({
name: 'test'
});
alert(JSON.stringify(ret));
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
transactionSync
执行事务操作语句(同步接口)
transactionSync({params})
params
name:
- 类型:字符串
- 描述:数据库名称
operation:
- 类型:字符串
- 描述:事务操作类型,取值范围如下:
- begin //开始事务
- commit //提交事务
- rollback //回滚操作
return
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;操作成功状态值,true|false
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
}
示例代码
var db = api.require('db');
var ret = db.transactionSync({
name: 'test',
operation: 'begin'
});
alert(JSON.stringify(ret));
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
executeSqlSync
执行 sql(同步接口)
executeSqlSync({params})
params
name:
- 类型:字符串
- 描述:数据库名称
sql:
- 类型:字符串
- 描述:sql 语句
return
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;操作成功状态值,true|false
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
}
示例代码
var db = api.require('db');
var ret = db.executeSqlSync({
name: 'test',
sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
});
alert(JSON.stringify(ret));
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
selectSqlSync
查询 sql(同步接口)
selectSqlSync({params})
params
name:
- 类型:字符串
- 描述:数据库名称
sql:
- 类型:字符串
- 描述:sql语句
return
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;操作成功状态值,true|false
data: [], //数组类型;查询结果数据
code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
}
示例代码
var db = api.require('db');
var ret = db.selectSqlSync({
name: 'test',
sql: 'SELECT * FROM Persons'
});
alert(JSON.stringify(ret));
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
附录
错误码对照表
- 0:SQLITE_OK / Successful result /
- 1:SQLITE_ERROR / SQL error or missing database /
- 2:SQLITE_INTERNAL / Internal logic error in SQLite /
- 3:SQLITE_PERM / Access permission denied /
- 4:SQLITE_ABORT / Callback routine requested an abort /
- 5:SQLITE_BUSY / The database file is locked /
- 6:SQLITE_LOCKED / A table in the database is locked /
- 7:SQLITE_NOMEM / A malloc() failed /
- 8:SQLITE_READONLY / Attempt to write a readonly database /
- 9:SQLITE_INTERRUPT / Operation terminated by sqlite3_interrupt()/
- 10:SQLITE_IOERR / Some kind of disk I/O error occurred /
- 11:SQLITE_CORRUPT / The database disk image is malformed /
- 12:SQLITE_NOTFOUND / Unknown opcode in sqlite3_file_control() /
- 13:SQLITE_FULL / Insertion failed because database is full /
- 14:SQLITE_CANTOPEN / Unable to open the database file /
- 15:SQLITE_PROTOCOL / Database lock protocol error /
- 16:SQLITE_EMPTY / Database is empty /
- 17:SQLITE_SCHEMA / The database schema changed /
- 18:SQLITE_TOOBIG / String or BLOB exceeds size limit /
- 19:SQLITE_CONSTRAINT / Abort due to constraint violation /
- 20:SQLITE_MISMATCH / Data type mismatch /
- 21:SQLITE_MISUSE / Library used incorrectly /
- 22:SQLITE_NOLFS / Uses OS features not supported on host /
- 23:SQLITE_AUTH / Authorization denied /
- 24:SQLITE_FORMAT / Auxiliary database format error /
- 25:SQLITE_RANGE / 2nd parameter to sqlite3_bind out of range /
- 26:SQLITE_NOTADB / File opened that is not a database file /
- 27:SQLITE_NOTICE / Notifications from sqlite3_log() /
- 28:SQLITE_WARNING / Warnings from sqlite3_log() /
- 100:SQLITE_ROW / sqlite3_step() has another row ready /
- 101:SQLITE_DONE / sqlite3_step() has finished executing /