Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
43db95b6
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
43db95b6
编写于
7月 24, 2023
作者:
O
openharmony_ci
提交者:
Gitee
7月 24, 2023
浏览文件
操作
浏览文件
下载
差异文件
!20923 RDB模块新增接口及错误码补充
Merge pull request !20923 from lihuihui/master
上级
a08005a6
693d50a9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
338 addition
and
3 deletion
+338
-3
zh-cn/application-dev/database/data-persistence-by-rdb-store.md
...application-dev/database/data-persistence-by-rdb-store.md
+6
-0
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
...cation-dev/reference/apis/js-apis-data-relationalStore.md
+274
-1
zh-cn/application-dev/reference/errorcodes/errorcode-data-rdb.md
...pplication-dev/reference/errorcodes/errorcode-data-rdb.md
+58
-2
未找到文件。
zh-cn/application-dev/database/data-persistence-by-rdb-store.md
浏览文件 @
43db95b6
...
...
@@ -252,6 +252,10 @@
调用deleteRdbStore()方法,删除数据库及数据库相关文件。示例代码如下:
> **说明:**
>
> 删除成功后,建议将数据库对象置为null。
Stage模型示例:
...
...
@@ -265,6 +269,7 @@
console
.
error
(
`Failed to delete RdbStore. Code:
${
err
.
code
}
, message:
${
err
.
message
}
`
);
return
;
}
store
=
null
;
console
.
info
(
'
Succeeded in deleting RdbStore.
'
);
});
}
...
...
@@ -285,6 +290,7 @@
console
.
error
(
`Failed to delete RdbStore. Code:
${
err
.
code
}
, message:
${
err
.
message
}
`
);
return
;
}
store
=
null
;
console
.
info
(
'
Succeeded in deleting RdbStore.
'
);
});
```
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
浏览文件 @
43db95b6
...
...
@@ -43,6 +43,8 @@ getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback<Rd
| 14800010 | Failed to open or delete database by invalid database path. |
| 14800011 | Failed to open database by database corrupted. |
| 14800000 | Inner error. |
| 14801001 | Only supported in stage mode. |
| 14801002 | The data group id is not valid. |
**示例:**
...
...
@@ -127,6 +129,8 @@ getRdbStore(context: Context, config: StoreConfig): Promise<RdbStore>
| 14800010 | Failed to open or delete database by invalid database path. |
| 14800011 | Failed to open database by database corrupted. |
| 14800000 | Inner error. |
| 14801001 | Only supported in stage mode. |
| 14801002 | The data group id is not valid. |
**示例:**
...
...
@@ -182,7 +186,9 @@ class EntryAbility extends UIAbility {
deleteRdbStore(context: Context, name: string, callback: AsyncCallback
<
void
>
): void
删除数据库,使用callback异步回调。
删除数据库文件,使用callback异步回调。
删除成功后,建议将数据库对象置为null。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
...
...
@@ -218,6 +224,7 @@ relationalStore.deleteRdbStore(context, "RdbTest.db", function (err) {
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
return
;
}
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
})
```
...
...
@@ -234,6 +241,7 @@ class EntryAbility extends UIAbility {
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
return
;
}
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
})
}
...
...
@@ -246,6 +254,8 @@ deleteRdbStore(context: Context, name: string): Promise<void>
使用指定的数据库文件配置删除数据库,使用Promise异步回调。
删除成功后,建议将数据库对象置为null。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数**
...
...
@@ -282,6 +292,7 @@ let context = featureAbility.getContext();
let
promise
=
relationalStore
.
deleteRdbStore
(
context
,
"
RdbTest.db
"
);
promise
.
then
(()
=>
{
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
...
...
@@ -297,6 +308,162 @@ class EntryAbility extends UIAbility {
onWindowStageCreate
(
windowStage
){
let
promise
=
relationalStore
.
deleteRdbStore
(
this
.
context
,
"
RdbTest.db
"
);
promise
.
then
(()
=>
{
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
})
}
}
```
## relationalStore.deleteRdbStore<sup>10+</sup>
deleteRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback
\<
void>): void
使用指定的数据库文件配置删除数据库,使用callback异步回调。
删除成功后,建议将数据库对象置为null。若数据库文件处于公共沙箱目录下,则删除数据库时必须使用该接口,当存在多个进程操作同一个数据库的情况,建议向其他进程发送数据库删除通知使其感知并处理。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| config |
[
StoreConfig
](
#storeconfig
)
| 是 | 与此RDB存储相关的数据库配置。 |
| callback | AsyncCallback
<
void
>
| 是 | 指定callback回调函数。 |
**错误码:**
以下错误码的详细介绍请参见
[
关系型数据库错误码
](
../errorcodes/errorcode-data-rdb.md
)
。
|
**错误码ID**
|
**错误信息**
|
| ------------ | ----------------------------------------------------------- |
| 14800010 | Failed to open or delete database by invalid database path. |
| 14800000 | Inner error. |
| 14801001 | Only supported in stage mode. |
| 14801002 | The data group id is not valid. |
**示例:**
FA模型示例:
```
js
import
featureAbility
from
'
@ohos.ability.featureAbility
'
// 获取context
let
context
=
featureAbility
.
getContext
()
const
STORE_CONFIG
=
{
name
:
"
RdbTest.db
"
,
securityLevel
:
relationalStore
.
SecurityLevel
.
S1
};
relationalStore
.
deleteRdbStore
(
context
,
STORE_CONFIG
,
function
(
err
)
{
if
(
err
)
{
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
return
;
}
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
})
```
Stage模型示例:
```
ts
import
UIAbility
from
'
@ohos.app.ability.UIAbility
'
class
EntryAbility
extends
UIAbility
{
onWindowStageCreate
(
windowStage
){
const
STORE_CONFIG
=
{
name
:
"
RdbTest.db
"
,
securityLevel
:
relationalStore
.
SecurityLevel
.
S1
};
relationalStore
.
deleteRdbStore
(
this
.
context
,
STORE_CONFIG
,
function
(
err
)
{
if
(
err
)
{
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
return
;
}
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
})
}
}
```
## relationalStore.deleteRdbStore<sup>10+</sup>
deleteRdbStore(context: Context, config: StoreConfig): Promise
\<
void>
使用指定的数据库文件配置删除数据库,使用Promise异步回调。
删除成功后,建议将数据库对象置为null。若数据库文件处于公共沙箱目录下,则删除数据库时必须使用该接口,当存在多个进程操作同一个数据库的情况,建议向其他进程发送数据库删除通知使其感知并处理。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------------------------- | ---- | ------------------------------------------------------------ |
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| config |
[
StoreConfig
](
#storeconfig
)
| 是 | 与此RDB存储相关的数据库配置。 |
**返回值**
:
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise
<
void
>
| 无返回结果的Promise对象。 |
**错误码:**
以下错误码的详细介绍请参见
[
关系型数据库错误码
](
../errorcodes/errorcode-data-rdb.md
)
。
|
**错误码ID**
|
**错误信息**
|
| ------------ | ----------------------------------------------------------- |
| 14800010 | Failed to open or delete database by invalid database path. |
| 14800000 | Inner error. |
| 14801001 | Only supported in stage mode. |
| 14801002 | The data group id is not valid. |
**示例:**
FA模型示例:
```
js
import
featureAbility
from
'
@ohos.ability.featureAbility
'
// 获取context
let
context
=
featureAbility
.
getContext
();
const
STORE_CONFIG
=
{
name
:
"
RdbTest.db
"
,
securityLevel
:
relationalStore
.
SecurityLevel
.
S1
};
let
promise
=
relationalStore
.
deleteRdbStore
(
context
,
STORE_CONFIG
);
promise
.
then
(()
=>
{
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
})
```
Stage模型示例:
```
ts
import
UIAbility
from
'
@ohos.app.ability.UIAbility
'
class
EntryAbility
extends
UIAbility
{
onWindowStageCreate
(
windowStage
){
const
STORE_CONFIG
=
{
name
:
"
RdbTest.db
"
,
securityLevel
:
relationalStore
.
SecurityLevel
.
S1
};
let
promise
=
relationalStore
.
deleteRdbStore
(
this
.
context
,
STORE_CONFIG
);
promise
.
then
(()
=>
{
store
=
null
;
console
.
info
(
`Delete RdbStore successfully.`
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Delete RdbStore failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
...
...
@@ -316,6 +483,7 @@ class EntryAbility extends UIAbility {
| name | string | 是 | 数据库文件名。 |
| securityLevel |
[
SecurityLevel
](
#securitylevel
)
| 是 | 设置数据库安全级别 |
| encrypt | boolean | 否 | 指定数据库是否加密,默认不加密。
<br/>
true:加密。
<br/>
false:非加密。 |
| dataGroupId
<sup>
10+
</sup>
| string | 否 | 应用组ID,需要向应用市场获取。
<br/>
**模型约束:**
此属性仅在Stage模型下可用。
<br/>
从API version 10开始,支持此可选参数。指定在此dataGroupId对应的沙箱路径下创建relationalStore实例,当此参数不填时,默认在本应用沙箱目录下创建relationalStore实例。 |
## SecurityLevel
...
...
@@ -3775,6 +3943,44 @@ try {
}
```
### on<sup>10+</sup>
on(event: string, interProcess: boolean, observer: Callback
\<
void>): void
注册数据库的进程内或者进程间事件监听。当调用
[
emit
](
#emit10
)
接口时,将调用回调。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------- | ---- | ------------------------------------------------------------ |
| event | string | 是 | 订阅事件名称。 |
| interProcess | boolean | 是 | 指定是进程间还是本进程订阅。
<br/>
true:进程间。
<br/>
false:本进程。 |
| observer | Callback
\<
void> | 是 | 回调函数。 |
**错误码:**
以下错误码的详细介绍请参见
[
关系型数据库错误码
](
../errorcodes/errorcode-data-rdb.md
)
。
|
**错误码ID**
|
**错误信息**
|
| ------------ | -------------------------------------- |
| 14800000 | Inner error. |
| 14800050 | Failed to obtain subscription service. |
**示例:**
```
js
function
storeObserver
()
{
console
.
info
(
`storeObserver`
);
}
try
{
store
.
on
(
'
storeObserver
'
,
false
,
storeObserver
);
}
catch
(
err
)
{
console
.
error
(
`Register observer failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
}
```
### off('dataChange')
off(event:'dataChange', type: SubscribeType, observer: Callback
<
Array
<
string
>>
): void
...
...
@@ -3837,6 +4043,73 @@ try {
}
```
### off<sup>10+</sup>
off(event: string, interProcess: boolean, observer?: Callback
\<
void>): void
取消数据变更的事件监听。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------- | ---- | ------------------------------------------------------------ |
| event | string | 是 | 取消订阅事件名称。 |
| interProcess | boolean | 是 | 指定是进程间还是本进程取消订阅。
<br/>
true:进程间。
<br/>
false:本进程。 |
| observer | Callback
\<
void> | 否 | 该参数存在,则取消指定Callback监听回调,否则取消该event事件的所有监听回调。 |
**错误码:**
以下错误码的详细介绍请参见
[
关系型数据库错误码
](
../errorcodes/errorcode-data-rdb.md
)
。
|
**错误码ID**
|
**错误信息**
|
| ------------ | -------------------------------------- |
| 14800000 | Inner error. |
| 14800050 | Failed to obtain subscription service. |
**示例:**
```
js
function
storeObserver
()
{
console
.
info
(
`storeObserver`
);
}
try
{
store
.
off
(
'
storeObserver
'
,
false
,
storeObserver
);
}
catch
(
err
)
{
console
.
error
(
`Register observer failed, code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
}
```
### emit<sup>10+</sup>
emit(event: string): void
通知通过
[
on
](
#on10
)
注册的进程间或者进程内监听事件。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------- |
| event | string | 是 | 通知订阅事件的名称。 |
**错误码:**
以下错误码的详细介绍请参见
[
关系型数据库错误码
](
../errorcodes/errorcode-data-rdb.md
)
。
|
**错误码ID**
|
**错误信息**
|
| ------------ | -------------------------------------- |
| 14800000 | Inner error. |
| 14800050 | Failed to obtain subscription service. |
**示例:**
```
js
store
.
emit
(
'
storeObserver
'
);
```
## ResultSet
提供通过查询数据库生成的数据库结果集的访问方法。结果集是指用户调用关系型数据库查询接口之后返回的结果集合,提供了多种灵活的数据访问方式,以便用户获取各项数据。
...
...
zh-cn/application-dev/reference/errorcodes/errorcode-data-rdb.md
浏览文件 @
43db95b6
...
...
@@ -116,5 +116,61 @@ WAL文件大小超过默认上限(200M)。
**处理步骤**
1.
检查结果集或者事务是否未关闭。
2.
关闭所有的结果集或者事务。
检查结果集或者事务是否未关闭。
关闭所有的结果集或者事务。
## 14800050 获取订阅服务失败
**错误信息**
Failed to obtain subscription service.
**错误描述**
获取订阅服务失败。
**可能原因**
当前平台不支持订阅服务。
**处理步骤**
需要在当前平台部署订阅服务。
## 14801001 上下文环境非Stage模型
**错误信息**
Only supported in stage mode.
**错误描述**
该操作仅支持Stage模型。
**可能原因**
当前上下文环境非Stage模型。
**处理步骤**
切换当前上下文环境,使用Stage模型。
## 14801002 storeConfig中传入的dataGroupId参数非法
**错误信息**
The data group id is not valid.
**错误描述**
使用非法dataGroupId参数。
**可能原因**
使用的dataGroupId不是从应用市场正常申请的。
**处理步骤**
从应用市场申请dataGroupId,并正确传入该参数。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录