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 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;操作成功状态值,true|false
  3. files:[], //数组类型;
  4. folders:[] //数组类型;
  5. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. msg: '' , //字符串类型;错误信息
  3. code: '' //数字类型;错误码,取值范围:
  4. //1:该路径不存在文件
  5. //2:该路径是文件路径非目录路径
  6. }

示例代码

  1. var db = api.require('db');
  2. db.subfile({
  3. directory: ''
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

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 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;操作成功状态值,true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var db = api.require('db');
  2. db.openDatabase({
  3. name: 'test'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

closeDatabase

关闭数据库

closeDatabase({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:数据库名称

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;操作成功状态值,true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
  3. msg: '' //字符串类型;错误描述
  4. }

示例代码

  1. var db = api.require('db');
  2. db.closeDatabase({
  3. name: 'test'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

transaction

执行事务操作语句

transaction({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:数据库名称

operation:

  • 类型:字符串
  • 描述:事务操作类型,取值范围如下:
    • begin //开始事务
    • commit //提交事务
    • rollback //回滚操作

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;操作成功状态值,true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
  3. msg: '' //字符串类型;错误描述
  4. }

示例代码

  1. var db = api.require('db');
  2. db.transaction({
  3. name: 'test',
  4. operation: 'begin'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

executeSql

执行 sql

executeSql({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:数据库名称

sql:

  • 类型:字符串
  • 描述:sql 语句

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;操作成功状态值,true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
  3. msg: '' //字符串类型;错误描述
  4. }

示例代码

  1. var db = api.require('db');
  2. db.executeSql({
  3. name: 'test',
  4. sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统,PC模拟器

可提供的1.0.0及更高版本

selectSql

查询sql

selectSql({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:数据库名称

sql:

  • 类型:字符串
  • 描述:sql语句

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;操作成功状态值,true|false
  3. data: [] //数组类型;查询结果数据
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。本参数暂仅支持iOS平台
  3. msg: '' //字符串类型;错误描述
  4. }

示例代码

  1. var db = api.require('db');
  2. db.selectSql({
  3. name: 'test',
  4. sql: 'SELECT * FROM Persons'
  5. }, function(ret, err) {
  6. if (ret.status) {
  7. alert(JSON.stringify(ret));
  8. } else {
  9. alert(JSON.stringify(err));
  10. }
  11. });

可用性

iOS系统,Android系统,PC 模拟器

可提供的1.0.0及更高版本

同步接口

subfileSync

获取指定目录下的子文件

subfileSync({params})

params

directory:

  • 类型:字符串
  • 描述:(可选项)目录路径,不传时使用 db 模块的默认路径。支持 fs://、widget://等协议(如fs://user.db)
  • 默认值:本模块自动创建的路径

return

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔类型;操作成功状态值,true|false
  3. files:[], //数组类型;
  4. folders:[], //数组类型;
  5. msg: '' , //字符串类型;错误信息,仅当 status 为 false 时有值
  6. code: '' //数字类型;错误码,仅当 status 为 false 时有值。取值范围:
  7. //1:该路径不存在文件
  8. //2:该路径是文件路径非目录路径
  9. }

示例代码

  1. var db = api.require('db');
  2. var ret = db.subfileSync({
  3. directory: ''
  4. });
  5. 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 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;操作成功状态值,true|false
  3. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
  4. msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
  5. }

示例代码

  1. var db = api.require('db');
  2. var ret = db.openDatabaseSync({
  3. name: 'test'
  4. });
  5. alert(JSON.stringify(ret));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeDatabaseSync

关闭数据库(同步接口)

closeDatabaseSync({params})

params

name:

  • 类型:字符串
  • 描述:数据库名称

return

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;操作成功状态值,true|false
  3. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
  4. msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
  5. }

示例代码

  1. var db = api.require('db');
  2. var ret = db.closeDatabaseSync({
  3. name: 'test'
  4. });
  5. alert(JSON.stringify(ret));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

transactionSync

执行事务操作语句(同步接口)

transactionSync({params})

params

name:

  • 类型:字符串
  • 描述:数据库名称

operation:

  • 类型:字符串
  • 描述:事务操作类型,取值范围如下:
    • begin //开始事务
    • commit //提交事务
    • rollback //回滚操作

return

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;操作成功状态值,true|false
  3. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
  4. msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
  5. }

示例代码

  1. var db = api.require('db');
  2. var ret = db.transactionSync({
  3. name: 'test',
  4. operation: 'begin'
  5. });
  6. alert(JSON.stringify(ret));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

executeSqlSync

执行 sql(同步接口)

executeSqlSync({params})

params

name:

  • 类型:字符串
  • 描述:数据库名称

sql:

  • 类型:字符串
  • 描述:sql 语句

return

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;操作成功状态值,true|false
  3. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
  4. msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
  5. }

示例代码

  1. var db = api.require('db');
  2. var ret = db.executeSqlSync({
  3. name: 'test',
  4. sql: 'CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255))'
  5. });
  6. alert(JSON.stringify(ret));

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

selectSqlSync

查询 sql(同步接口)

selectSqlSync({params})

params

name:

  • 类型:字符串
  • 描述:数据库名称

sql:

  • 类型:字符串
  • 描述:sql语句

return

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;操作成功状态值,true|false
  3. data: [], //数组类型;查询结果数据
  4. code: '', //数字类型;错误码,详情参考-----附录之‘错误码对照表’。,仅当 status 为 false 时有值。本参数暂仅支持iOS平台
  5. msg: '' //字符串类型;错误描述,仅当 status 为 false 时有值
  6. }

示例代码

  1. var db = api.require('db');
  2. var ret = db.selectSqlSync({
  3. name: 'test',
  4. sql: 'SELECT * FROM Persons'
  5. });
  6. 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 /