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```