1# ArkData子系统Changelog
2
3## cl.arkdata.1 关系型数据管理@ohos.data.relationalStore.d.ts中getRdbStore接口新增错误码14800020,用于业务侧进行恢复重建数据库。
4**访问级别**
5
6公开接口
7
8**变更原因**
9
10根密钥和密文不匹配时返回的错误码不正确,新增14800020错误码,此错误码用于业务侧进行恢复重建数据库。
11
12**变更影响**
13
14该变更为不兼容变更。
15
16变更之前,在根密钥和密文不匹配场景下,不会抛出错误码。业务侧无法恢复数据库。
17
18变更之后,在根密钥和密文不匹配场景下,会抛出14800020错误码,此错误码可用于业务侧进行恢复重建数据库。
19
20**起始API Level**
21
22API 9
23
24**变更发生版本**
25
26从OpenHarmony 5.0.1.1 版本开始。
27
28**变更的接口/组件**
29
30[@ohos.data.relationalStore.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.data.relationalStore.d.ts)中如下接口:
31
321. function getRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback\<RdbStore\>): void;
33
342. function getRdbStore(context: Context, config: StoreConfig): Promise\<RdbStore\>;
35
36**适配指导**
37
38异常处理:在调用getRdbStore方法后,检查返回的错误码。如果错误码为14800020,表示数据库根密钥与工作密钥不匹配,需要进行重新建库。
39```ts
40import { relationalStore } from '@kit.ArkData';
41import { BusinessError } from '@kit.BasicServicesKit';
42import { UIAbility } from '@kit.AbilityKit';
43import { window } from '@kit.ArkUI';
44
45const STORE_CONFIG: relationalStore.StoreConfig = {
46  name: "RdbTest.db",
47  securityLevel: relationalStore.SecurityLevel.S3
48};
49const CREATE_TABLE_TEST =
50  "CREATE TABLE IF NOT EXISTS EMPLOYEE (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL, age INTEGER, salary REAL, blobType BLOB)";
51
52let store: relationalStore.RdbStore | undefined = undefined;
53relationalStore.getRdbStore(this.context, STORE_CONFIG, (err: BusinessError, rdbStore: relationalStore.RdbStore) => {
54  store = rdbStore;
55  store.executeSql(CREATE_TABLE_TEST);
56  if (err == 14800020) {
57    console.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`);
58    //业务侧需要进行数据库恢复。
59    return;
60  }
61  console.info('Get RdbStore successfully.');
62})
63```