1e41f4b71Sopenharmony_ci# @ohos.data.relationalStore (关系型数据库) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。支持通过[ResultSet.getSendableRow](#getsendablerow12)方法获取Sendable数据,进行跨线程传递。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci为保证插入并读取数据成功,建议一条数据不要超过2M。超出该大小,插入成功,读取失败。 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci大数据量场景下查询数据可能会导致耗时长甚至应用卡死,建议如下: 8e41f4b71Sopenharmony_ci- 单次查询数据量不超过5000条。 9e41f4b71Sopenharmony_ci- 在[TaskPool](../apis-arkts/js-apis-taskpool.md)中查询。 10e41f4b71Sopenharmony_ci- 拼接SQL语句尽量简洁。 11e41f4b71Sopenharmony_ci- 合理地分批次查询。 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci该模块提供以下关系型数据库相关的常用功能: 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci- [RdbPredicates](#rdbpredicates): 数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。 16e41f4b71Sopenharmony_ci- [RdbStore](#rdbstore):提供管理关系数据库(RDB)方法的接口。 17e41f4b71Sopenharmony_ci- [ResultSet](#resultset):提供用户调用关系型数据库查询接口之后返回的结果集合。 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci> **说明:** 20e41f4b71Sopenharmony_ci> 21e41f4b71Sopenharmony_ci> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci## 导入模块 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci```ts 26e41f4b71Sopenharmony_ciimport { relationalStore } from '@kit.ArkData'; 27e41f4b71Sopenharmony_ci``` 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci## relationalStore.getRdbStore 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_cigetRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback<RdbStore>): void 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用callback异步回调。 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci当用非加密方式打开一个已有的加密数据库时,会返回错误码14800011,表示数据库损坏。此时用加密方式可以正常打开该数据库。 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_cigetRdbStore目前不支持多线程并发操作。 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci**参数:** 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 44e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ | 45e41f4b71Sopenharmony_ci| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 46e41f4b71Sopenharmony_ci| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 | 47e41f4b71Sopenharmony_ci| callback | AsyncCallback<[RdbStore](#rdbstore)> | 是 | 指定callback回调函数,返回RdbStore对象。 | 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci**错误码:** 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 54e41f4b71Sopenharmony_ci|-----------|---------| 55e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 56e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 57e41f4b71Sopenharmony_ci| 14800010 | Invalid database path. | 58e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 59e41f4b71Sopenharmony_ci| 14801001 | Only supported in stage mode. | 60e41f4b71Sopenharmony_ci| 14801002 | The data group id is not valid. | 61e41f4b71Sopenharmony_ci| 14800017 | Config changed. | 62e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 63e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 64e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 65e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 66e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 67e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 68e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci**示例:** 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ciFA模型示例: 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 75e41f4b71Sopenharmony_ci```js 76e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 77e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 80e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ciconst STORE_CONFIG: relationalStore.StoreConfig = { 83e41f4b71Sopenharmony_ci name: "RdbTest.db", 84e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 85e41f4b71Sopenharmony_ci}; 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_cirelationalStore.getRdbStore(context, STORE_CONFIG, (err: BusinessError, rdbStore: relationalStore.RdbStore) => { 88e41f4b71Sopenharmony_ci store = rdbStore; 89e41f4b71Sopenharmony_ci if (err) { 90e41f4b71Sopenharmony_ci console.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`); 91e41f4b71Sopenharmony_ci return; 92e41f4b71Sopenharmony_ci } 93e41f4b71Sopenharmony_ci console.info('Get RdbStore successfully.'); 94e41f4b71Sopenharmony_ci}) 95e41f4b71Sopenharmony_ci``` 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ciStage模型示例: 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci```ts 100e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 101e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 102e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ciclass EntryAbility extends UIAbility { 107e41f4b71Sopenharmony_ci onWindowStageCreate(windowStage: window.WindowStage) { 108e41f4b71Sopenharmony_ci const STORE_CONFIG: relationalStore.StoreConfig = { 109e41f4b71Sopenharmony_ci name: "RdbTest.db", 110e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 111e41f4b71Sopenharmony_ci }; 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ci relationalStore.getRdbStore(this.context, STORE_CONFIG, (err: BusinessError, rdbStore: relationalStore.RdbStore) => { 114e41f4b71Sopenharmony_ci store = rdbStore; 115e41f4b71Sopenharmony_ci if (err) { 116e41f4b71Sopenharmony_ci console.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`); 117e41f4b71Sopenharmony_ci return; 118e41f4b71Sopenharmony_ci } 119e41f4b71Sopenharmony_ci console.info('Get RdbStore successfully.'); 120e41f4b71Sopenharmony_ci }) 121e41f4b71Sopenharmony_ci } 122e41f4b71Sopenharmony_ci} 123e41f4b71Sopenharmony_ci``` 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ci## relationalStore.getRdbStore 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_cigetRdbStore(context: Context, config: StoreConfig): Promise<RdbStore> 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_ci获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用Promise异步回调。 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci当用非加密方式打开一个已有的加密数据库时,会返回错误码14800011,表示数据库损坏。此时用加密方式可以正常打开该数据库。 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_cigetRdbStore目前不支持多线程并发操作。 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ci**参数:** 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 140e41f4b71Sopenharmony_ci| ------- | -------------------------------- | ---- | ------------------------------------------------------------ | 141e41f4b71Sopenharmony_ci| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 142e41f4b71Sopenharmony_ci| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 | 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci**返回值**: 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci| 类型 | 说明 | 147e41f4b71Sopenharmony_ci| ----------------------------------------- | --------------------------------- | 148e41f4b71Sopenharmony_ci| Promise<[RdbStore](#rdbstore)> | Promise对象。返回RdbStore对象。 | 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci**错误码:** 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 155e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 156e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 157e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 158e41f4b71Sopenharmony_ci| 14800010 | Invalid database path. | 159e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 160e41f4b71Sopenharmony_ci| 14801001 | Only supported in stage mode. | 161e41f4b71Sopenharmony_ci| 14801002 | The data group id is not valid. | 162e41f4b71Sopenharmony_ci| 14800017 | Config changed. | 163e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 164e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 165e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 166e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 167e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci**示例:** 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ciFA模型示例: 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 174e41f4b71Sopenharmony_ci```js 175e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 176e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 179e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ciconst STORE_CONFIG: relationalStore.StoreConfig = { 182e41f4b71Sopenharmony_ci name: "RdbTest.db", 183e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 184e41f4b71Sopenharmony_ci}; 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_cirelationalStore.getRdbStore(context, STORE_CONFIG).then(async (rdbStore: relationalStore.RdbStore) => { 187e41f4b71Sopenharmony_ci store = rdbStore; 188e41f4b71Sopenharmony_ci console.info('Get RdbStore successfully.') 189e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 190e41f4b71Sopenharmony_ci console.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`); 191e41f4b71Sopenharmony_ci}) 192e41f4b71Sopenharmony_ci``` 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ciStage模型示例: 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci```ts 197e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 198e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 199e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ciclass EntryAbility extends UIAbility { 204e41f4b71Sopenharmony_ci onWindowStageCreate(windowStage: window.WindowStage) { 205e41f4b71Sopenharmony_ci const STORE_CONFIG: relationalStore.StoreConfig = { 206e41f4b71Sopenharmony_ci name: "RdbTest.db", 207e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 208e41f4b71Sopenharmony_ci }; 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci relationalStore.getRdbStore(this.context, STORE_CONFIG).then(async (rdbStore: relationalStore.RdbStore) => { 211e41f4b71Sopenharmony_ci store = rdbStore; 212e41f4b71Sopenharmony_ci console.info('Get RdbStore successfully.') 213e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 214e41f4b71Sopenharmony_ci console.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`); 215e41f4b71Sopenharmony_ci }) 216e41f4b71Sopenharmony_ci } 217e41f4b71Sopenharmony_ci} 218e41f4b71Sopenharmony_ci``` 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci## relationalStore.deleteRdbStore 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_cideleteRdbStore(context: Context, name: string, callback: AsyncCallback<void>): void 223e41f4b71Sopenharmony_ci 224e41f4b71Sopenharmony_ci删除数据库文件,使用callback异步回调。 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci删除成功后,建议将数据库对象置为null。建立数据库时,若在[StoreConfig](#storeconfig)中配置了自定义路径,则调用此接口进行删库无效,必须使用 [deleteRdbStore<sup>10+</sup>](#relationalstoredeleterdbstore10) 接口进行删库。 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci**参数:** 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 233e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------------------------ | 234e41f4b71Sopenharmony_ci| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 235e41f4b71Sopenharmony_ci| name | string | 是 | 数据库名称。 | 236e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ci**错误码:** 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 243e41f4b71Sopenharmony_ci|-----------|---------------------------------------| 244e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 245e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 246e41f4b71Sopenharmony_ci| 14800010 | Failed to open or delete database by invalid database path. | 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci**示例:** 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ciFA模型示例: 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 253e41f4b71Sopenharmony_ci```js 254e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 255e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 258e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 259e41f4b71Sopenharmony_ci 260e41f4b71Sopenharmony_cirelationalStore.deleteRdbStore(context, "RdbTest.db", (err: BusinessError) => { 261e41f4b71Sopenharmony_ci if (err) { 262e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 263e41f4b71Sopenharmony_ci return; 264e41f4b71Sopenharmony_ci } 265e41f4b71Sopenharmony_ci store = undefined; 266e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 267e41f4b71Sopenharmony_ci}) 268e41f4b71Sopenharmony_ci``` 269e41f4b71Sopenharmony_ci 270e41f4b71Sopenharmony_ciStage模型示例: 271e41f4b71Sopenharmony_ci 272e41f4b71Sopenharmony_ci```ts 273e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 274e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 275e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ciclass EntryAbility extends UIAbility { 280e41f4b71Sopenharmony_ci onWindowStageCreate(windowStage: window.WindowStage){ 281e41f4b71Sopenharmony_ci relationalStore.deleteRdbStore(this.context, "RdbTest.db", (err: BusinessError) => { 282e41f4b71Sopenharmony_ci if (err) { 283e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 284e41f4b71Sopenharmony_ci return; 285e41f4b71Sopenharmony_ci } 286e41f4b71Sopenharmony_ci store = undefined; 287e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 288e41f4b71Sopenharmony_ci }) 289e41f4b71Sopenharmony_ci } 290e41f4b71Sopenharmony_ci} 291e41f4b71Sopenharmony_ci``` 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ci## relationalStore.deleteRdbStore 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_cideleteRdbStore(context: Context, name: string): Promise<void> 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci使用指定的数据库文件配置删除数据库,使用Promise异步回调。 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci删除成功后,建议将数据库对象置为null。建立数据库时,若在[StoreConfig](#storeconfig)中配置了自定义路径,则调用此接口进行删库无效,必须使用 [deleteRdbStore<sup>10+</sup>](#relationalstoredeleterdbstore10-1) 接口进行删库。 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci**参数** 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 306e41f4b71Sopenharmony_ci| ------- | ------- | ---- | ------------------------------------------------------------ | 307e41f4b71Sopenharmony_ci| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 308e41f4b71Sopenharmony_ci| name | string | 是 | 数据库名称。 | 309e41f4b71Sopenharmony_ci 310e41f4b71Sopenharmony_ci**返回值**: 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci| 类型 | 说明 | 313e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 314e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 315e41f4b71Sopenharmony_ci 316e41f4b71Sopenharmony_ci**错误码:** 317e41f4b71Sopenharmony_ci 318e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 319e41f4b71Sopenharmony_ci 320e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 321e41f4b71Sopenharmony_ci|-----------|----------------------------------------------------------------------------------| 322e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 323e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 324e41f4b71Sopenharmony_ci| 14800010 | Invalid database path. | 325e41f4b71Sopenharmony_ci 326e41f4b71Sopenharmony_ci**示例:** 327e41f4b71Sopenharmony_ci 328e41f4b71Sopenharmony_ciFA模型示例: 329e41f4b71Sopenharmony_ci 330e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 331e41f4b71Sopenharmony_ci```js 332e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 333e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 336e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 337e41f4b71Sopenharmony_ci 338e41f4b71Sopenharmony_cirelationalStore.deleteRdbStore(context, "RdbTest.db").then(()=>{ 339e41f4b71Sopenharmony_ci store = undefined; 340e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 341e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 342e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 343e41f4b71Sopenharmony_ci}) 344e41f4b71Sopenharmony_ci``` 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ciStage模型示例: 347e41f4b71Sopenharmony_ci 348e41f4b71Sopenharmony_ci```ts 349e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 350e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 351e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ciclass EntryAbility extends UIAbility { 356e41f4b71Sopenharmony_ci onWindowStageCreate(windowStage: window.WindowStage){ 357e41f4b71Sopenharmony_ci relationalStore.deleteRdbStore(this.context, "RdbTest.db").then(()=>{ 358e41f4b71Sopenharmony_ci store = undefined; 359e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 360e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 361e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 362e41f4b71Sopenharmony_ci }) 363e41f4b71Sopenharmony_ci } 364e41f4b71Sopenharmony_ci} 365e41f4b71Sopenharmony_ci``` 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_ci## relationalStore.deleteRdbStore<sup>10+</sup> 368e41f4b71Sopenharmony_ci 369e41f4b71Sopenharmony_cideleteRdbStore(context: Context, config: StoreConfig, callback: AsyncCallback\<void>): void 370e41f4b71Sopenharmony_ci 371e41f4b71Sopenharmony_ci使用指定的数据库文件配置删除数据库,使用callback异步回调。 372e41f4b71Sopenharmony_ci 373e41f4b71Sopenharmony_ci删除成功后,建议将数据库对象置为null。若数据库文件处于公共沙箱目录下,则删除数据库时必须使用该接口,当存在多个进程操作同一个数据库的情况,建议向其他进程发送数据库删除通知使其感知并处理。建立数据库时,若在[StoreConfig](#storeconfig)中配置了自定义路径,则必须调用此接口进行删库。 374e41f4b71Sopenharmony_ci 375e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 376e41f4b71Sopenharmony_ci 377e41f4b71Sopenharmony_ci**参数:** 378e41f4b71Sopenharmony_ci 379e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 380e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ------------------------------------------------------------ | 381e41f4b71Sopenharmony_ci| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 382e41f4b71Sopenharmony_ci| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 | 383e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_ci**错误码:** 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 388e41f4b71Sopenharmony_ci 389e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 390e41f4b71Sopenharmony_ci|-----------|----------| 391e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 392e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 393e41f4b71Sopenharmony_ci| 14800010 | Failed to open or delete database by invalid database path. | 394e41f4b71Sopenharmony_ci| 14801001 | Only supported in stage mode. | 395e41f4b71Sopenharmony_ci| 14801002 | The data group id is not valid. | 396e41f4b71Sopenharmony_ci 397e41f4b71Sopenharmony_ci**示例:** 398e41f4b71Sopenharmony_ci 399e41f4b71Sopenharmony_ciFA模型示例: 400e41f4b71Sopenharmony_ci 401e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 402e41f4b71Sopenharmony_ci```js 403e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit'; 404e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 407e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 408e41f4b71Sopenharmony_ci 409e41f4b71Sopenharmony_ciconst STORE_CONFIG: relationalStore.StoreConfig = { 410e41f4b71Sopenharmony_ci name: "RdbTest.db", 411e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 412e41f4b71Sopenharmony_ci}; 413e41f4b71Sopenharmony_ci 414e41f4b71Sopenharmony_cirelationalStore.deleteRdbStore(context, STORE_CONFIG, (err: BusinessError) => { 415e41f4b71Sopenharmony_ci if (err) { 416e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 417e41f4b71Sopenharmony_ci return; 418e41f4b71Sopenharmony_ci } 419e41f4b71Sopenharmony_ci store = undefined; 420e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 421e41f4b71Sopenharmony_ci}) 422e41f4b71Sopenharmony_ci``` 423e41f4b71Sopenharmony_ci 424e41f4b71Sopenharmony_ciStage模型示例: 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_ci```ts 427e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 428e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 429e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ciclass EntryAbility extends UIAbility { 434e41f4b71Sopenharmony_ci onWindowStageCreate(windowStage: window.WindowStage){ 435e41f4b71Sopenharmony_ci const STORE_CONFIG: relationalStore.StoreConfig = { 436e41f4b71Sopenharmony_ci name: "RdbTest.db", 437e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 438e41f4b71Sopenharmony_ci }; 439e41f4b71Sopenharmony_ci relationalStore.deleteRdbStore(this.context, STORE_CONFIG, (err: BusinessError) => { 440e41f4b71Sopenharmony_ci if (err) { 441e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 442e41f4b71Sopenharmony_ci return; 443e41f4b71Sopenharmony_ci } 444e41f4b71Sopenharmony_ci store = undefined; 445e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 446e41f4b71Sopenharmony_ci }) 447e41f4b71Sopenharmony_ci } 448e41f4b71Sopenharmony_ci} 449e41f4b71Sopenharmony_ci``` 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_ci## relationalStore.deleteRdbStore<sup>10+</sup> 452e41f4b71Sopenharmony_ci 453e41f4b71Sopenharmony_cideleteRdbStore(context: Context, config: StoreConfig): Promise\<void> 454e41f4b71Sopenharmony_ci 455e41f4b71Sopenharmony_ci使用指定的数据库文件配置删除数据库,使用Promise异步回调。 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci删除成功后,建议将数据库对象置为null。若数据库文件处于公共沙箱目录下,则删除数据库时必须使用该接口,当存在多个进程操作同一个数据库的情况,建议向其他进程发送数据库删除通知使其感知并处理。建立数据库时,若在[StoreConfig](#storeconfig)中配置了自定义路径,则必须调用此接口进行删库。 458e41f4b71Sopenharmony_ci 459e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 460e41f4b71Sopenharmony_ci 461e41f4b71Sopenharmony_ci**参数** 462e41f4b71Sopenharmony_ci 463e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 464e41f4b71Sopenharmony_ci| ------- | --------------------------- | ---- | ------------------------------------------------------------ | 465e41f4b71Sopenharmony_ci| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 466e41f4b71Sopenharmony_ci| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 | 467e41f4b71Sopenharmony_ci 468e41f4b71Sopenharmony_ci**返回值**: 469e41f4b71Sopenharmony_ci 470e41f4b71Sopenharmony_ci| 类型 | 说明 | 471e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 472e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 473e41f4b71Sopenharmony_ci 474e41f4b71Sopenharmony_ci**错误码:** 475e41f4b71Sopenharmony_ci 476e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 479e41f4b71Sopenharmony_ci|-----------|---------------------| 480e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 481e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 482e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 483e41f4b71Sopenharmony_ci| 14800010 | Invalid database path. | 484e41f4b71Sopenharmony_ci| 14801001 | Only supported in stage mode. | 485e41f4b71Sopenharmony_ci| 14801002 | The data group id is not valid. | 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_ci**示例:** 489e41f4b71Sopenharmony_ci 490e41f4b71Sopenharmony_ciFA模型示例: 491e41f4b71Sopenharmony_ci 492e41f4b71Sopenharmony_ci<!--code_no_check_fa--> 493e41f4b71Sopenharmony_ci```js 494e41f4b71Sopenharmony_ciimport { featureAbility } from "@kit.AbilityKit"; 495e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 496e41f4b71Sopenharmony_ci 497e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 498e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 499e41f4b71Sopenharmony_ci 500e41f4b71Sopenharmony_ciconst STORE_CONFIG: relationalStore.StoreConfig = { 501e41f4b71Sopenharmony_ci name: "RdbTest.db", 502e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 503e41f4b71Sopenharmony_ci}; 504e41f4b71Sopenharmony_ci 505e41f4b71Sopenharmony_cirelationalStore.deleteRdbStore(context, STORE_CONFIG).then(()=>{ 506e41f4b71Sopenharmony_ci store = undefined; 507e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 508e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 509e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 510e41f4b71Sopenharmony_ci}) 511e41f4b71Sopenharmony_ci``` 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ciStage模型示例: 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_ci```ts 516e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 517e41f4b71Sopenharmony_ciimport { window } from '@kit.ArkUI'; 518e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 519e41f4b71Sopenharmony_ci 520e41f4b71Sopenharmony_cilet store: relationalStore.RdbStore | undefined = undefined; 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_ciclass EntryAbility extends UIAbility { 523e41f4b71Sopenharmony_ci onWindowStageCreate(windowStage: window.WindowStage){ 524e41f4b71Sopenharmony_ci const STORE_CONFIG: relationalStore.StoreConfig = { 525e41f4b71Sopenharmony_ci name: "RdbTest.db", 526e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 527e41f4b71Sopenharmony_ci }; 528e41f4b71Sopenharmony_ci relationalStore.deleteRdbStore(this.context, STORE_CONFIG).then(()=>{ 529e41f4b71Sopenharmony_ci store = undefined; 530e41f4b71Sopenharmony_ci console.info('Delete RdbStore successfully.'); 531e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 532e41f4b71Sopenharmony_ci console.error(`Delete RdbStore failed, code is ${err.code},message is ${err.message}`); 533e41f4b71Sopenharmony_ci }) 534e41f4b71Sopenharmony_ci } 535e41f4b71Sopenharmony_ci} 536e41f4b71Sopenharmony_ci``` 537e41f4b71Sopenharmony_ci 538e41f4b71Sopenharmony_ci## StoreConfig 539e41f4b71Sopenharmony_ci 540e41f4b71Sopenharmony_ci管理关系数据库配置。 541e41f4b71Sopenharmony_ci 542e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 543e41f4b71Sopenharmony_ci| ------------- | ------------- | ---- | --------------------------------------------------------- | 544e41f4b71Sopenharmony_ci| name | string | 是 | 数据库文件名,也是数据库唯一标识符。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 545e41f4b71Sopenharmony_ci| securityLevel | [SecurityLevel](#securitylevel) | 是 | 设置数据库安全级别。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core| 546e41f4b71Sopenharmony_ci| encrypt | boolean | 否 | 指定数据库是否加密,默认不加密。<br/> true:加密。<br/> false:非加密。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 547e41f4b71Sopenharmony_ci| dataGroupId<sup>10+</sup> | string | 否 | 应用组ID,需要向应用市场获取,暂不支持。<br/>**模型约束:** 此属性仅在Stage模型下可用。<br/>从API version 10开始,支持此可选参数。指定在此dataGroupId对应的沙箱路径下创建RdbStore实例,当此参数不填时,默认在本应用沙箱目录下创建RdbStore实例。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 548e41f4b71Sopenharmony_ci| customDir<sup>11+</sup> | string | 否 | 数据库自定义路径。<br/>**使用约束:** 数据库路径大小限制为128字节,如果超过该大小会开库失败,返回错误。<br/>从API version 11开始,支持此可选参数。数据库将在如下的目录结构中被创建:context.databaseDir + "/rdb/" + customDir,其中context.databaseDir是应用沙箱对应的路径,"/rdb/"表示创建的是关系型数据库,customDir表示自定义的路径。当此参数不填时,默认在本应用沙箱目录下创建RdbStore实例。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 549e41f4b71Sopenharmony_ci| autoCleanDirtyData<sup>11+</sup> | boolean | 否 | 指定是否自动清理云端删除后同步到本地的数据,true表示自动清理,false表示手动清理,默认自动清理。<br/>对于端云协同的数据库,当云端删除的数据同步到设备端时,可通过该参数设置设备端是否自动清理。手动清理可以通过[cleanDirtyData<sup>11+</sup>](#cleandirtydata11)接口清理。<br/>从API version 11开始,支持此可选参数。<br/>**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client | 550e41f4b71Sopenharmony_ci| allowRebuild<sup>12+</sup> | boolean | 否 | 指定数据库是否支持损坏时自动重建,默认不重建。<br/>true:自动重建。<br/>false:不自动重建。<br/>从API version 12开始,支持此可选参数。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 551e41f4b71Sopenharmony_ci| isReadOnly<sup>12+</sup> | boolean | 否 | 指定数据库是否只读,默认为数据库可读写。<br/>true:只允许从数据库读取数据,不允许对数据库进行写操作,否则会返回错误码801。<br/>false:允许对数据库进行读写操作。<br/>从API version 12开始,支持此可选参数。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 552e41f4b71Sopenharmony_ci| pluginLibs<sup>12+</sup> | Array\<string> | 否 | 表示包含有fts(Full-Text Search,即全文搜索引擎)等能力的动态库名的数组。<br/>**使用约束:** 动态库名的数量限制最多为16个,如果超过该数量会开库失败,返回错误;动态库名需为本应用沙箱路径下或系统路径下的动态库,如果动态库无法加载会开库失败,返回错误。<br/>动态库名需为完整路径,用于被sqlite加载,样例:[context.bundleCodeDir+ "/libs/arm64/" + libtokenizer.so],其中context.bundleCodeDir是应用沙箱对应的路径,"/libs/arm64/"表示子目录,libtokenizer.so表示动态库的文件名。当此参数不填时,默认不加载动态库。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 553e41f4b71Sopenharmony_ci| cryptoParam<sup>14+</sup> | [CryptoParam](#cryptoparam14) | 否 | 指定用户自定义的加密参数。<br/>当此参数不填时,使用默认的加密参数,见[CryptoParam](#cryptoparam14)各参数默认值。<br/>此配置只有在encrypt选项设置为真时才有效。<br/>从API version 14开始,支持此可选参数。<br/>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 554e41f4b71Sopenharmony_ci 555e41f4b71Sopenharmony_ci## SecurityLevel 556e41f4b71Sopenharmony_ci 557e41f4b71Sopenharmony_ci数据库的安全级别枚举。请使用枚举名称而非枚举值。 558e41f4b71Sopenharmony_ci 559e41f4b71Sopenharmony_ci> **说明:** 560e41f4b71Sopenharmony_ci> 561e41f4b71Sopenharmony_ci> 若需要进行同步操作,数据库安全等级应不高于对端设备安全等级,具体可见[跨设备同步访问控制机制](../../database/sync-app-data-across-devices-overview.md#跨设备同步访问控制机制)。 562e41f4b71Sopenharmony_ci 563e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 564e41f4b71Sopenharmony_ci 565e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 566e41f4b71Sopenharmony_ci| ---- | ---- | ------------------------------------------------------------ | 567e41f4b71Sopenharmony_ci| S1 | 1 | 表示数据库的安全级别为低级别,当数据泄露时会产生较低影响。例如,包含壁纸等系统数据的数据库。 | 568e41f4b71Sopenharmony_ci| S2 | 2 | 表示数据库的安全级别为中级别,当数据泄露时会产生较大影响。例如,包含录音、视频等用户生成数据或通话记录等信息的数据库。 | 569e41f4b71Sopenharmony_ci| S3 | 3 | 表示数据库的安全级别为高级别,当数据泄露时会产生重大影响。例如,包含用户运动、健康、位置等信息的数据库。 | 570e41f4b71Sopenharmony_ci| S4 | 4 | 表示数据库的安全级别为关键级别,当数据泄露时会产生严重影响。例如,包含认证凭据、财务数据等信息的数据库。 | 571e41f4b71Sopenharmony_ci 572e41f4b71Sopenharmony_ci## CryptoParam<sup>14+</sup> 573e41f4b71Sopenharmony_ci 574e41f4b71Sopenharmony_ci数据库加密参数配置。此配置只有在StoreConfig的encrypt选项设置为真时才有效。 575e41f4b71Sopenharmony_ci 576e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 577e41f4b71Sopenharmony_ci 578e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 579e41f4b71Sopenharmony_ci| ------------- | ------ | ---- | ------------------------------------------------------------ | 580e41f4b71Sopenharmony_ci| encryptionKey | Uint8Array | 是 | 指定数据库加/解密使用的密钥。<br/>如传入密钥为空,则由数据库负责生成并保存密钥,并使用生成的密钥打开数据库文件。<br/>使用完后用户需要将密钥内容全部置为零。 | 581e41f4b71Sopenharmony_ci| iterationCount | number | 否 | 整数类型,指定数据库PBKDF2算法的迭代次数,默认值为10000。<br/>迭代次数应当为大于零的整数,若非整数则向下取整。<br/>不指定此参数或指定为零时,使用默认值10000,并使用默认加密算法AES_256_GCM。 | 582e41f4b71Sopenharmony_ci| encryptionAlgo | [EncryptionAlgo](#encryptionalgo14) | 否 | 指定数据库加解密使用的加密算法。如不指定,默认值为 AES_256_GCM。 | 583e41f4b71Sopenharmony_ci| hmacAlgo | [HmacAlgo](#hmacalgo14) | 否 | 指定数据库加解密使用的HMAC算法。如不指定,默认值为SHA256。 | 584e41f4b71Sopenharmony_ci| kdfAlgo | [KdfAlgo](#kdfalgo14) | 否 | 指定数据库加解密使用的PBKDF2算法。如不指定,默认使用和HMAC算法相等的算法。 | 585e41f4b71Sopenharmony_ci| cryptoPageSize | number | 否 | 整数类型,指定数据库加解密使用的页大小。如不指定,默认值为1024字节。<br/>用户指定的页大小应为1024到65536范围内的整数,并且为2<sup>n</sup>。若指定值非整数,则向下取整。 | 586e41f4b71Sopenharmony_ci 587e41f4b71Sopenharmony_ci## EncryptionAlgo<sup>14+</sup> 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ci数据库的加密算法枚举。请使用枚举名称而非枚举值。 590e41f4b71Sopenharmony_ci 591e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 592e41f4b71Sopenharmony_ci 593e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 594e41f4b71Sopenharmony_ci| ---- | ---- | ---- | 595e41f4b71Sopenharmony_ci| AES_256_GCM | 0 | AES_256_GCM加密算法。 | 596e41f4b71Sopenharmony_ci| AES_256_CBC | 1 | AES_256_CBC加密算法。 | 597e41f4b71Sopenharmony_ci 598e41f4b71Sopenharmony_ci## HmacAlgo<sup>14+</sup> 599e41f4b71Sopenharmony_ci 600e41f4b71Sopenharmony_ci数据库的HMAC算法枚举。请使用枚举名称而非枚举值。 601e41f4b71Sopenharmony_ci 602e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 603e41f4b71Sopenharmony_ci 604e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 605e41f4b71Sopenharmony_ci| ---- | ---- | ---- | 606e41f4b71Sopenharmony_ci| SHA1 | 0 | HMAC_SHA1算法。 | 607e41f4b71Sopenharmony_ci| SHA256 | 1 | HMAC_SHA256算法。 | 608e41f4b71Sopenharmony_ci| SHA512 | 2 | HMAC_SHA512算法。 | 609e41f4b71Sopenharmony_ci 610e41f4b71Sopenharmony_ci## KdfAlgo<sup>14+</sup> 611e41f4b71Sopenharmony_ci 612e41f4b71Sopenharmony_ci数据库的PBKDF2算法枚举。请使用枚举名称而非枚举值。 613e41f4b71Sopenharmony_ci 614e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 615e41f4b71Sopenharmony_ci 616e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 617e41f4b71Sopenharmony_ci| ---- | ---- | ---- | 618e41f4b71Sopenharmony_ci| KDF_SHA1 | 0 | PBKDF2_HMAC_SHA1算法。 | 619e41f4b71Sopenharmony_ci| KDF_SHA256 | 1 | PBKDF2_HMAC_SHA256算法。 | 620e41f4b71Sopenharmony_ci| KDF_SHA512 | 2 | PBKDF2_HMAC_SHA512算法。 | 621e41f4b71Sopenharmony_ci 622e41f4b71Sopenharmony_ci## AssetStatus<sup>10+</sup> 623e41f4b71Sopenharmony_ci 624e41f4b71Sopenharmony_ci描述资产附件的状态枚举。请使用枚举名称而非枚举值。 625e41f4b71Sopenharmony_ci 626e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 627e41f4b71Sopenharmony_ci 628e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 629e41f4b71Sopenharmony_ci| ------------------------------- | --- | -------------- | 630e41f4b71Sopenharmony_ci| ASSET_NORMAL | 1 | 表示资产状态正常。 | 631e41f4b71Sopenharmony_ci| ASSET_INSERT | 2 | 表示资产需要插入到云端。 | 632e41f4b71Sopenharmony_ci| ASSET_UPDATE | 3 | 表示资产需要更新到云端。 | 633e41f4b71Sopenharmony_ci| ASSET_DELETE | 4 | 表示资产需要在云端删除。 | 634e41f4b71Sopenharmony_ci| ASSET_ABNORMAL | 5 | 表示资产状态异常。 | 635e41f4b71Sopenharmony_ci| ASSET_DOWNLOADING | 6 | 表示资产正在下载到本地设备。 | 636e41f4b71Sopenharmony_ci 637e41f4b71Sopenharmony_ci## Asset<sup>10+</sup> 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci记录资产附件(文件、图片、视频等类型文件)的相关信息。 640e41f4b71Sopenharmony_ci 641e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 642e41f4b71Sopenharmony_ci 643e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 644e41f4b71Sopenharmony_ci| ----------- | --------------------------- | --- | ------------ | 645e41f4b71Sopenharmony_ci| name | string | 是 | 资产的名称。 | 646e41f4b71Sopenharmony_ci| uri | string | 是 | 资产的uri,在系统里的绝对路径。 | 647e41f4b71Sopenharmony_ci| path | string | 是 | 资产在应用沙箱里的路径。 | 648e41f4b71Sopenharmony_ci| createTime | string | 是 | 资产被创建出来的时间。 | 649e41f4b71Sopenharmony_ci| modifyTime | string | 是 | 资产最后一次被修改的时间。 | 650e41f4b71Sopenharmony_ci| size | string | 是 | 资产占用空间的大小。 | 651e41f4b71Sopenharmony_ci| status | [AssetStatus](#assetstatus10) | 否 | 资产的状态,默认值为ASSET_NORMAL。 | 652e41f4b71Sopenharmony_ci 653e41f4b71Sopenharmony_ci## Assets<sup>10+</sup> 654e41f4b71Sopenharmony_ci 655e41f4b71Sopenharmony_citype Assets = Asset[] 656e41f4b71Sopenharmony_ci 657e41f4b71Sopenharmony_ci表示[Asset](#asset10)类型的数组。 658e41f4b71Sopenharmony_ci 659e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 660e41f4b71Sopenharmony_ci 661e41f4b71Sopenharmony_ci| 类型 | 说明 | 662e41f4b71Sopenharmony_ci| ------- | -------------------- | 663e41f4b71Sopenharmony_ci| [Asset](#asset10)[] | 表示Asset类型的数组。 | 664e41f4b71Sopenharmony_ci 665e41f4b71Sopenharmony_ci## ValueType 666e41f4b71Sopenharmony_ci 667e41f4b71Sopenharmony_citype ValueType = null | number | string | boolean | Uint8Array | Asset | Assets | Float32Array | bigint 668e41f4b71Sopenharmony_ci 669e41f4b71Sopenharmony_ci用于表示允许的数据字段类型,接口参数具体类型根据其功能而定。 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 672e41f4b71Sopenharmony_ci 673e41f4b71Sopenharmony_ci| 类型 | 说明 | 674e41f4b71Sopenharmony_ci| ------- | -------------------- | 675e41f4b71Sopenharmony_ci| null<sup>10+</sup> | 表示值类型为空。 | 676e41f4b71Sopenharmony_ci| number | 表示值类型为数字。 | 677e41f4b71Sopenharmony_ci| string | 表示值类型为字符串。 | 678e41f4b71Sopenharmony_ci| boolean | 表示值类型为布尔值。 | 679e41f4b71Sopenharmony_ci| Uint8Array<sup>10+</sup> | 表示值类型为Uint8类型的数组。 | 680e41f4b71Sopenharmony_ci| Asset<sup>10+</sup> | 表示值类型为附件[Asset](#asset10)。<br/>当字段类型是Asset时,在创建表的sql语句中,类型应当为:ASSET。 | 681e41f4b71Sopenharmony_ci| Assets<sup>10+</sup> | 表示值类型为附件数组[Assets](#assets10)。<br/>当字段类型是Assets时,在创建表的sql语句中,类型应当为:ASSETS。 | 682e41f4b71Sopenharmony_ci| Float32Array<sup>12+</sup> | 表示值类型为浮点数组。<br/>当字段类型是Float32Array时,在创建表的sql语句中,类型应当为:floatvector(128)。 | 683e41f4b71Sopenharmony_ci| bigint<sup>12+</sup> | 表示值类型为任意长度的整数。<br/>当字段类型是bigint时,在创建表的sql语句中,类型应当为:UNLIMITED INT, 详见[通过关系型数据库实现数据持久化](../../database/data-persistence-by-rdb-store.md)。<br/>**说明:** bigint类型当前不支持比较大小,不支持如下谓词:between、notBetween、greaterThanlessThan、greaterThanOrEqualTo、lessThanOrEqualTo、orderByAsc、orderByDesc。<br/>bigint类型字段的数据写入时,需通过BigInt()方法或在数据尾部添加'n'的方式明确为bigint类型,如'let data = BigInt(1234)'或'let data = 1234n'。<br/>bigint字段如果写入number类型的数据,则查询该数据的返回类型为number,而非bigint。 | 684e41f4b71Sopenharmony_ci 685e41f4b71Sopenharmony_ci## ValuesBucket 686e41f4b71Sopenharmony_ci 687e41f4b71Sopenharmony_citype ValuesBucket = Record<string, ValueType> 688e41f4b71Sopenharmony_ci 689e41f4b71Sopenharmony_ci用于存储键值对的类型。不支持Sendable跨线程传递。 690e41f4b71Sopenharmony_ci 691e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 692e41f4b71Sopenharmony_ci 693e41f4b71Sopenharmony_ci| 类型 | 说明 | 694e41f4b71Sopenharmony_ci| ---------------- | ---------------------------- | 695e41f4b71Sopenharmony_ci| Record<string, [ValueType](#valuetype)> | 表示键值对类型。键的类型为string,值的类型为[ValueType](#valuetype)。 | 696e41f4b71Sopenharmony_ci 697e41f4b71Sopenharmony_ci## PRIKeyType<sup>10+</sup> 698e41f4b71Sopenharmony_ci 699e41f4b71Sopenharmony_citype PRIKeyType = number | string 700e41f4b71Sopenharmony_ci 701e41f4b71Sopenharmony_ci用于表示数据库表某一行主键的数据类型。 702e41f4b71Sopenharmony_ci 703e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 704e41f4b71Sopenharmony_ci 705e41f4b71Sopenharmony_ci| 类型 | 说明 | 706e41f4b71Sopenharmony_ci| ---------------- | ---------------------------------- | 707e41f4b71Sopenharmony_ci| number | 主键的类型可以是number。 | 708e41f4b71Sopenharmony_ci| string | 主键的类型可以是string。 | 709e41f4b71Sopenharmony_ci 710e41f4b71Sopenharmony_ci## UTCTime<sup>10+</sup> 711e41f4b71Sopenharmony_ci 712e41f4b71Sopenharmony_citype UTCTime = Date 713e41f4b71Sopenharmony_ci 714e41f4b71Sopenharmony_ci用于表示UTC类型时间的数据类型。 715e41f4b71Sopenharmony_ci 716e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 717e41f4b71Sopenharmony_ci 718e41f4b71Sopenharmony_ci| 类型 | 说明 | 719e41f4b71Sopenharmony_ci| ---- | --------------- | 720e41f4b71Sopenharmony_ci| Date | UTC类型的时间。 | 721e41f4b71Sopenharmony_ci 722e41f4b71Sopenharmony_ci## ModifyTime<sup>10+</sup> 723e41f4b71Sopenharmony_ci 724e41f4b71Sopenharmony_citype ModifyTime = Map<PRIKeyType, UTCTime> 725e41f4b71Sopenharmony_ci 726e41f4b71Sopenharmony_ci用于存储数据库表的主键和修改时间的数据类型。 727e41f4b71Sopenharmony_ci 728e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 729e41f4b71Sopenharmony_ci 730e41f4b71Sopenharmony_ci| 类型 | 说明 | 731e41f4b71Sopenharmony_ci| ------------------------------------------------------- | ------------------------------------------------------------ | 732e41f4b71Sopenharmony_ci| Map<[PRIKeyType](#prikeytype10), [UTCTime](#utctime10)> | 键表示是数据库表某一行的主键,值表示该行的最后修改时间,用UTC格式表示。 | 733e41f4b71Sopenharmony_ci 734e41f4b71Sopenharmony_ci## SyncMode 735e41f4b71Sopenharmony_ci 736e41f4b71Sopenharmony_ci指数据库同步模式。请使用枚举名称而非枚举值。 737e41f4b71Sopenharmony_ci 738e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 739e41f4b71Sopenharmony_ci| -------------- | ---- | ---------------------------------- | 740e41f4b71Sopenharmony_ci| SYNC_MODE_PUSH | 0 | 表示数据从本地设备推送到远程设备。<br>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 741e41f4b71Sopenharmony_ci| SYNC_MODE_PULL | 1 | 表示数据从远程设备拉至本地设备。<br>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 742e41f4b71Sopenharmony_ci| SYNC_MODE_TIME_FIRST<sup>10+</sup> | 4 | 表示数据从修改时间较近的一端同步到修改时间较远的一端。<br>**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client | 743e41f4b71Sopenharmony_ci| SYNC_MODE_NATIVE_FIRST<sup>10+</sup> | 5 | 表示数据从本地设备同步到云端。<br>**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client | 744e41f4b71Sopenharmony_ci| SYNC_MODE_CLOUD_FIRST<sup>10+</sup> | 6 | 表示数据从云端同步到本地设备。<br>**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client | 745e41f4b71Sopenharmony_ci 746e41f4b71Sopenharmony_ci## Origin<sup>11+</sup> 747e41f4b71Sopenharmony_ci 748e41f4b71Sopenharmony_ci表示数据来源。请使用枚举名称而非枚举值。 749e41f4b71Sopenharmony_ci 750e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 751e41f4b71Sopenharmony_ci 752e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 753e41f4b71Sopenharmony_ci| -------------- | ---- | ---------------------------------- | 754e41f4b71Sopenharmony_ci| LOCAL | 0 | 表示本地数据。 | 755e41f4b71Sopenharmony_ci| CLOUD | 1 | 表示云端同步的数据。 | 756e41f4b71Sopenharmony_ci| REMOTE | 2 | 表示端端同步的数据。 | 757e41f4b71Sopenharmony_ci 758e41f4b71Sopenharmony_ci## Field<sup>11+</sup> 759e41f4b71Sopenharmony_ci 760e41f4b71Sopenharmony_ci用于谓词查询条件的特殊字段。请使用枚举名称而非枚举值。 761e41f4b71Sopenharmony_ci 762e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 763e41f4b71Sopenharmony_ci 764e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 765e41f4b71Sopenharmony_ci| -------------- | ---- | ---------------------------------- | 766e41f4b71Sopenharmony_ci| CURSOR_FIELD | '#_cursor' | 用于cursor查找的字段名。| 767e41f4b71Sopenharmony_ci| ORIGIN_FIELD | '#_origin' | 用于cursor查找时指定数据来源的字段名。 | 768e41f4b71Sopenharmony_ci| DELETED_FLAG_FIELD | '#_deleted_flag' | 用于cursor查找的结果集返回时填充的字段,表示云端删除的数据同步到本地后数据是否清理。<br>返回的结果集中,该字段对应的value为false表示数据未清理,true表示数据已清理。| 769e41f4b71Sopenharmony_ci| DATA_STATUS_FIELD<sup>12+</sup> | '#_data_status' | 用于cursor查找的结果集返回时填充的字段,返回的结果集中,该字段对应的0表示正常数据,1表示退出账号保留数据,2表示云侧同步删除,3表示退出账户删除数据。| 770e41f4b71Sopenharmony_ci| OWNER_FIELD | '#_cloud_owner' | 用于共享表中查找owner时,返回的结果集中填充的字段,表示当前共享记录的共享发起者。| 771e41f4b71Sopenharmony_ci| PRIVILEGE_FIELD | '#_cloud_privilege' | 用于共享表中查找共享数据权限时,返回的结果集中填充的字段,表示当前共享记录的允许的操作权限。| 772e41f4b71Sopenharmony_ci| SHARING_RESOURCE_FIELD | '#_sharing_resource_field' | 用于数据共享查找共享数据的共享资源时,返回的结果集中填充的字段,表示共享数据的共享资源标识。| 773e41f4b71Sopenharmony_ci 774e41f4b71Sopenharmony_ci## SubscribeType 775e41f4b71Sopenharmony_ci 776e41f4b71Sopenharmony_ci描述订阅类型。请使用枚举名称而非枚举值。 777e41f4b71Sopenharmony_ci 778e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 779e41f4b71Sopenharmony_ci| --------------------- | ---- | ------------------ | 780e41f4b71Sopenharmony_ci| SUBSCRIBE_TYPE_REMOTE | 0 | 订阅远程数据更改。<br>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 781e41f4b71Sopenharmony_ci| SUBSCRIBE_TYPE_CLOUD<sup>10+</sup> | 1 | 订阅云端数据更改。<br>**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client | 782e41f4b71Sopenharmony_ci| SUBSCRIBE_TYPE_CLOUD_DETAILS<sup>10+</sup> | 2 | 订阅云端数据更改详情。<br>**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client | 783e41f4b71Sopenharmony_ci| SUBSCRIBE_TYPE_LOCAL_DETAILS<sup>12+</sup> | 3 | 订阅本地数据更改详情。<br>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 784e41f4b71Sopenharmony_ci 785e41f4b71Sopenharmony_ci## RebuildType<sup>12+</sup> 786e41f4b71Sopenharmony_ci 787e41f4b71Sopenharmony_ci描述数据库重建类型的枚举。请使用枚举名称而非枚举值。 788e41f4b71Sopenharmony_ci 789e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 790e41f4b71Sopenharmony_ci 791e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 792e41f4b71Sopenharmony_ci| ------- | ---- |----------------------------------------------------------------------------------------------------------------| 793e41f4b71Sopenharmony_ci| NONE | 0 | 表示数据库未进行重建。 | 794e41f4b71Sopenharmony_ci| REBUILT | 1 | 表示数据库进行了重建并且生成了空数据库,需要应用重新建表和恢复数据。 | 795e41f4b71Sopenharmony_ci| REPAIRED | 2 | 表示数据库进行了修复,恢复了未损坏的数据,<!--RP2-->当前只有[向量数据库](js-apis-data-relationalStore-sys.md#storeconfig)具备该能力。<!--RP2End--> | 796e41f4b71Sopenharmony_ci 797e41f4b71Sopenharmony_ci## ChangeType<sup>10+</sup> 798e41f4b71Sopenharmony_ci 799e41f4b71Sopenharmony_ci描述数据变更类型的枚举。请使用枚举名称而非枚举值。 800e41f4b71Sopenharmony_ci 801e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 802e41f4b71Sopenharmony_ci 803e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 804e41f4b71Sopenharmony_ci| -------------------------- | --- | -------------------------- | 805e41f4b71Sopenharmony_ci| DATA_CHANGE | 0 | 表示是数据发生变更。 | 806e41f4b71Sopenharmony_ci| ASSET_CHANGE | 1 | 表示是资产附件发生了变更。 | 807e41f4b71Sopenharmony_ci 808e41f4b71Sopenharmony_ci## ChangeInfo<sup>10+</sup> 809e41f4b71Sopenharmony_ci 810e41f4b71Sopenharmony_ci记录端云同步过程详情。 811e41f4b71Sopenharmony_ci 812e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 813e41f4b71Sopenharmony_ci 814e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 815e41f4b71Sopenharmony_ci| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ | 816e41f4b71Sopenharmony_ci| table | string | 是 | 表示发生变化的表的名称。 | 817e41f4b71Sopenharmony_ci| type | [ChangeType](#changetype10) | 是 | 表示发生变化的数据的类型,数据或者资产附件发生变化。 | 818e41f4b71Sopenharmony_ci| inserted | Array\<string\> \| Array\<number\> | 是 | 记录插入数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示插入数据的行号。 | 819e41f4b71Sopenharmony_ci| updated | Array\<string\> \| Array\<number\> | 是 | 记录更新数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示更新数据的行号。 | 820e41f4b71Sopenharmony_ci| deleted | Array\<string\> \| Array\<number\> | 是 | 记录删除数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示删除数据的行号。 | 821e41f4b71Sopenharmony_ci 822e41f4b71Sopenharmony_ci## DistributedType<sup>10+</sup> 823e41f4b71Sopenharmony_ci 824e41f4b71Sopenharmony_ci描述表的分布式类型的枚举。请使用枚举名称而非枚举值。 825e41f4b71Sopenharmony_ci 826e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 827e41f4b71Sopenharmony_ci| ------------------ | --- | -------------------------------------------------------------------------------------------------- | 828e41f4b71Sopenharmony_ci| DISTRIBUTED_DEVICE | 0 | 表示在不同设备之间分布式的数据库表。<br>**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core | 829e41f4b71Sopenharmony_ci| DISTRIBUTED_CLOUD | 1 | 表示在设备和云端之间分布式的数据库表。<br>**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client | 830e41f4b71Sopenharmony_ci 831e41f4b71Sopenharmony_ci## DistributedConfig<sup>10+</sup> 832e41f4b71Sopenharmony_ci 833e41f4b71Sopenharmony_ci记录表的分布式配置信息。 834e41f4b71Sopenharmony_ci 835e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 836e41f4b71Sopenharmony_ci 837e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 838e41f4b71Sopenharmony_ci| -------- | ------- | ---- | ------------------------------------------------------------ | 839e41f4b71Sopenharmony_ci| autoSync | boolean | 是 | 该值为true时,表示该表支持自动同步和手动同步;该值为false时,表示该表只支持手动同步,不支持自动同步。 | 840e41f4b71Sopenharmony_ci 841e41f4b71Sopenharmony_ci## ConflictResolution<sup>10+</sup> 842e41f4b71Sopenharmony_ci 843e41f4b71Sopenharmony_ci插入和修改接口的冲突解决模式。请使用枚举名称而非枚举值。 844e41f4b71Sopenharmony_ci 845e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 846e41f4b71Sopenharmony_ci 847e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 848e41f4b71Sopenharmony_ci| -------------------- | ---- | ------------------------------------------------------------ | 849e41f4b71Sopenharmony_ci| ON_CONFLICT_NONE | 0 | 表示当冲突发生时,不做任何处理。 | 850e41f4b71Sopenharmony_ci| ON_CONFLICT_ROLLBACK | 1 | 表示当冲突发生时,中止SQL语句并回滚当前事务。 | 851e41f4b71Sopenharmony_ci| ON_CONFLICT_ABORT | 2 | 表示当冲突发生时,中止当前SQL语句,并撤销当前 SQL 语句所做的任何更改,但是由同一事务中先前的 SQL 语句引起的更改被保留并且事务保持活动状态。 | 852e41f4b71Sopenharmony_ci| ON_CONFLICT_FAIL | 3 | 表示当冲突发生时,中止当前 SQL 语句。但它不会撤销失败的 SQL 语句的先前更改,也不会结束事务。 | 853e41f4b71Sopenharmony_ci| ON_CONFLICT_IGNORE | 4 | 表示当冲突发生时,跳过包含违反约束的行并继续处理 SQL 语句的后续行。 | 854e41f4b71Sopenharmony_ci| ON_CONFLICT_REPLACE | 5 | 表示当冲突发生时,在插入或更新当前行之前删除导致约束违例的预先存在的行,并且命令会继续正常执行。 | 855e41f4b71Sopenharmony_ci 856e41f4b71Sopenharmony_ci## Progress<sup>10+</sup> 857e41f4b71Sopenharmony_ci 858e41f4b71Sopenharmony_ci描述端云同步过程的枚举。请使用枚举名称而非枚举值。 859e41f4b71Sopenharmony_ci 860e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 861e41f4b71Sopenharmony_ci 862e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 863e41f4b71Sopenharmony_ci| ---------------- | ---- | ------------------------ | 864e41f4b71Sopenharmony_ci| SYNC_BEGIN | 0 | 表示端云同步过程开始。 | 865e41f4b71Sopenharmony_ci| SYNC_IN_PROGRESS | 1 | 表示正在端云同步过程中。 | 866e41f4b71Sopenharmony_ci| SYNC_FINISH | 2 | 表示端云同步过程已完成。 | 867e41f4b71Sopenharmony_ci 868e41f4b71Sopenharmony_ci## Statistic<sup>10+</sup> 869e41f4b71Sopenharmony_ci 870e41f4b71Sopenharmony_ci描述数据库表的端云同步过程的统计信息。 871e41f4b71Sopenharmony_ci 872e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 873e41f4b71Sopenharmony_ci 874e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 875e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | ---------------------------------------- | 876e41f4b71Sopenharmony_ci| total | number | 是 | 表示数据库表中需要端云同步的总行数。 | 877e41f4b71Sopenharmony_ci| successful | number | 是 | 表示数据库表中端云同步成功的行数。 | 878e41f4b71Sopenharmony_ci| failed | number | 是 | 表示数据库表中端云同步失败的行数。 | 879e41f4b71Sopenharmony_ci| remained | number | 是 | 表示数据库表中端云同步剩余未执行的行数。 | 880e41f4b71Sopenharmony_ci 881e41f4b71Sopenharmony_ci## TableDetails<sup>10+</sup> 882e41f4b71Sopenharmony_ci 883e41f4b71Sopenharmony_ci描述数据库表执行端云同步任务上传和下载的统计信息。 884e41f4b71Sopenharmony_ci 885e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 886e41f4b71Sopenharmony_ci 887e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 888e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------ | 889e41f4b71Sopenharmony_ci| upload | [Statistic](#statistic10) | 是 | 表示数据库表中端云同步上传过程的统计信息。 | 890e41f4b71Sopenharmony_ci| download | [Statistic](#statistic10) | 是 | 表示数据库表中端云同步下载过程的统计信息。 | 891e41f4b71Sopenharmony_ci 892e41f4b71Sopenharmony_ci## ProgressCode<sup>10+</sup> 893e41f4b71Sopenharmony_ci 894e41f4b71Sopenharmony_ci表示端云同步过程的状态。请使用枚举名称而非枚举值。 895e41f4b71Sopenharmony_ci 896e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 897e41f4b71Sopenharmony_ci 898e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 899e41f4b71Sopenharmony_ci| --------------------- | ---- | ------------------------------------------------------------ | 900e41f4b71Sopenharmony_ci| SUCCESS | 0 | 表示端云同步过程成功。 | 901e41f4b71Sopenharmony_ci| UNKNOWN_ERROR | 1 | 表示端云同步过程遇到未知错误。 | 902e41f4b71Sopenharmony_ci| NETWORK_ERROR | 2 | 表示端云同步过程遇到网络错误。 | 903e41f4b71Sopenharmony_ci| CLOUD_DISABLED | 3 | 表示云端不可用。 | 904e41f4b71Sopenharmony_ci| LOCKED_BY_OTHERS | 4 | 表示有其他设备正在端云同步,本设备无法进行端云同步。<br>请确保无其他设备占用云端资源后,再使用本设备进行端云同步任务。 | 905e41f4b71Sopenharmony_ci| RECORD_LIMIT_EXCEEDED | 5 | 表示本次端云同步需要同步的条目或大小超出最大值。由云端配置最大值。 | 906e41f4b71Sopenharmony_ci| NO_SPACE_FOR_ASSET | 6 | 表示云空间剩余空间小于待同步的资产大小。 | 907e41f4b71Sopenharmony_ci| BLOCKED_BY_NETWORK_STRATEGY<sup>12+</sup> | 7 | 表示端云同步被网络策略限制。 | 908e41f4b71Sopenharmony_ci 909e41f4b71Sopenharmony_ci## ProgressDetails<sup>10+</sup> 910e41f4b71Sopenharmony_ci 911e41f4b71Sopenharmony_ci描述数据库整体执行端云同步任务上传和下载的统计信息。 912e41f4b71Sopenharmony_ci 913e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 914e41f4b71Sopenharmony_ci 915e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 916e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ | 917e41f4b71Sopenharmony_ci| schedule | [Progress](#progress10) | 是 | 表示端云同步过程。 | 918e41f4b71Sopenharmony_ci| code | [ProgressCode](#progresscode10) | 是 | 表示端云同步过程的状态。 | 919e41f4b71Sopenharmony_ci| details | Record<string, [TableDetails](#tabledetails10)> | 是 | 表示端云同步各表的统计信息。<br>键表示表名,值表示该表的端云同步过程统计信息。 | 920e41f4b71Sopenharmony_ci 921e41f4b71Sopenharmony_ci## SqlExecutionInfo<sup>12+</sup> 922e41f4b71Sopenharmony_ci 923e41f4b71Sopenharmony_ci描述数据库执行的SQL语句的统计信息。 924e41f4b71Sopenharmony_ci 925e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 926e41f4b71Sopenharmony_ci 927e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 |说明 | 928e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | ---- | -------------------------------------------------------- | 929e41f4b71Sopenharmony_ci| sql<sup>12+</sup> | Array<string> | 是 | 否 | 表示执行的SQL语句的数组。当[batchInsert](#batchinsert)的参数太大时,可能有多个SQL。 | 930e41f4b71Sopenharmony_ci| totalTime<sup>12+</sup> | number | 是 | 否 | 表示执行SQL语句的总时间,单位为μs。 | 931e41f4b71Sopenharmony_ci| waitTime<sup>12+</sup> | number | 是 | 否 | 表示获取句柄的时间,单位为μs。 | 932e41f4b71Sopenharmony_ci| prepareTime<sup>12+</sup> | number | 是 | 否 | 表示准备SQL和绑定参数的时间,单位为μs。 | 933e41f4b71Sopenharmony_ci| executeTime<sup>12+</sup> | number | 是 | 否 | 表示执行SQL语句的时间,单位为μs。 | 934e41f4b71Sopenharmony_ci 935e41f4b71Sopenharmony_ci## RdbPredicates 936e41f4b71Sopenharmony_ci 937e41f4b71Sopenharmony_ci表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。谓词间支持多语句拼接,拼接时默认使用and()连接。不支持Sendable跨线程传递。 938e41f4b71Sopenharmony_ci 939e41f4b71Sopenharmony_ci### constructor 940e41f4b71Sopenharmony_ci 941e41f4b71Sopenharmony_ciconstructor(name: string) 942e41f4b71Sopenharmony_ci 943e41f4b71Sopenharmony_ci构造函数。 944e41f4b71Sopenharmony_ci 945e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 946e41f4b71Sopenharmony_ci 947e41f4b71Sopenharmony_ci**参数:** 948e41f4b71Sopenharmony_ci 949e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 950e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------ | 951e41f4b71Sopenharmony_ci| name | string | 是 | 数据库表名。 | 952e41f4b71Sopenharmony_ci 953e41f4b71Sopenharmony_ci**错误码:** 954e41f4b71Sopenharmony_ci 955e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 956e41f4b71Sopenharmony_ci 957e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 958e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 959e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 960e41f4b71Sopenharmony_ci 961e41f4b71Sopenharmony_ci**示例:** 962e41f4b71Sopenharmony_ci 963e41f4b71Sopenharmony_ci```ts 964e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 965e41f4b71Sopenharmony_ci``` 966e41f4b71Sopenharmony_ci 967e41f4b71Sopenharmony_ci### inDevices 968e41f4b71Sopenharmony_ci 969e41f4b71Sopenharmony_ciinDevices(devices: Array<string>): RdbPredicates 970e41f4b71Sopenharmony_ci 971e41f4b71Sopenharmony_ci同步分布式数据库时连接到组网内指定的远程设备。 972e41f4b71Sopenharmony_ci 973e41f4b71Sopenharmony_ci> **说明:** 974e41f4b71Sopenharmony_ci> 975e41f4b71Sopenharmony_ci> 其中devices通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。 976e41f4b71Sopenharmony_ci数据库同步时调用Sync接口,需要在入参谓词中调用inDevices接口选择设备。如果不调用inDevices接口即默认连接组网内所有的设备。 977e41f4b71Sopenharmony_ci 978e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 979e41f4b71Sopenharmony_ci 980e41f4b71Sopenharmony_ci**参数:** 981e41f4b71Sopenharmony_ci 982e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 983e41f4b71Sopenharmony_ci| ------- | ------------------- | ---- | -------------------------- | 984e41f4b71Sopenharmony_ci| devices | Array<string> | 是 | 指定的组网内的远程设备ID。 | 985e41f4b71Sopenharmony_ci 986e41f4b71Sopenharmony_ci**返回值**: 987e41f4b71Sopenharmony_ci 988e41f4b71Sopenharmony_ci| 类型 | 说明 | 989e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 990e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 991e41f4b71Sopenharmony_ci 992e41f4b71Sopenharmony_ci**错误码:** 993e41f4b71Sopenharmony_ci 994e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 995e41f4b71Sopenharmony_ci 996e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 997e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 998e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 999e41f4b71Sopenharmony_ci 1000e41f4b71Sopenharmony_ci**示例:** 1001e41f4b71Sopenharmony_ci 1002e41f4b71Sopenharmony_ci```ts 1003e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 1004e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1005e41f4b71Sopenharmony_ci 1006e41f4b71Sopenharmony_cilet dmInstance: distributedDeviceManager.DeviceManager; 1007e41f4b71Sopenharmony_cilet deviceIds: Array<string> = []; 1008e41f4b71Sopenharmony_ci 1009e41f4b71Sopenharmony_citry { 1010e41f4b71Sopenharmony_ci dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify"); 1011e41f4b71Sopenharmony_ci let devices: Array<distributedDeviceManager.DeviceBasicInfo> = dmInstance.getAvailableDeviceListSync(); 1012e41f4b71Sopenharmony_ci for (let i = 0; i < devices.length; i++) { 1013e41f4b71Sopenharmony_ci deviceIds[i] = devices[i].networkId!; 1014e41f4b71Sopenharmony_ci } 1015e41f4b71Sopenharmony_ci} catch (err) { 1016e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1017e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 1018e41f4b71Sopenharmony_ci console.error("createDeviceManager errCode:" + code + ",errMessage:" + message); 1019e41f4b71Sopenharmony_ci} 1020e41f4b71Sopenharmony_ci 1021e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1022e41f4b71Sopenharmony_cipredicates.inDevices(deviceIds); 1023e41f4b71Sopenharmony_ci``` 1024e41f4b71Sopenharmony_ci 1025e41f4b71Sopenharmony_ci### inAllDevices 1026e41f4b71Sopenharmony_ci 1027e41f4b71Sopenharmony_ciinAllDevices(): RdbPredicates 1028e41f4b71Sopenharmony_ci 1029e41f4b71Sopenharmony_ci同步分布式数据库时连接到组网内所有的远程设备。 1030e41f4b71Sopenharmony_ci 1031e41f4b71Sopenharmony_ci 1032e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1033e41f4b71Sopenharmony_ci 1034e41f4b71Sopenharmony_ci**返回值**: 1035e41f4b71Sopenharmony_ci 1036e41f4b71Sopenharmony_ci| 类型 | 说明 | 1037e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1038e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1039e41f4b71Sopenharmony_ci 1040e41f4b71Sopenharmony_ci**示例:** 1041e41f4b71Sopenharmony_ci 1042e41f4b71Sopenharmony_ci```ts 1043e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1044e41f4b71Sopenharmony_cipredicates.inAllDevices(); 1045e41f4b71Sopenharmony_ci``` 1046e41f4b71Sopenharmony_ci 1047e41f4b71Sopenharmony_ci### equalTo 1048e41f4b71Sopenharmony_ci 1049e41f4b71Sopenharmony_ciequalTo(field: string, value: ValueType): RdbPredicates 1050e41f4b71Sopenharmony_ci 1051e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值为value的字段。 1052e41f4b71Sopenharmony_ci 1053e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1054e41f4b71Sopenharmony_ci 1055e41f4b71Sopenharmony_ci**参数:** 1056e41f4b71Sopenharmony_ci 1057e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1058e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ---------------------- | 1059e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1060e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 | 1061e41f4b71Sopenharmony_ci 1062e41f4b71Sopenharmony_ci**返回值**: 1063e41f4b71Sopenharmony_ci 1064e41f4b71Sopenharmony_ci| 类型 | 说明 | 1065e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1066e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1067e41f4b71Sopenharmony_ci 1068e41f4b71Sopenharmony_ci**错误码:** 1069e41f4b71Sopenharmony_ci 1070e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1071e41f4b71Sopenharmony_ci 1072e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1073e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1074e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1075e41f4b71Sopenharmony_ci 1076e41f4b71Sopenharmony_ci**示例:** 1077e41f4b71Sopenharmony_ci 1078e41f4b71Sopenharmony_ci```ts 1079e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中值为"Lisa"的字段 1080e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1081e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 1082e41f4b71Sopenharmony_ci``` 1083e41f4b71Sopenharmony_ci 1084e41f4b71Sopenharmony_ci 1085e41f4b71Sopenharmony_ci### notEqualTo 1086e41f4b71Sopenharmony_ci 1087e41f4b71Sopenharmony_cinotEqualTo(field: string, value: ValueType): RdbPredicates 1088e41f4b71Sopenharmony_ci 1089e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值不为value的字段。 1090e41f4b71Sopenharmony_ci 1091e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1092e41f4b71Sopenharmony_ci 1093e41f4b71Sopenharmony_ci**参数:** 1094e41f4b71Sopenharmony_ci 1095e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1096e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ---------------------- | 1097e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1098e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 | 1099e41f4b71Sopenharmony_ci 1100e41f4b71Sopenharmony_ci**返回值**: 1101e41f4b71Sopenharmony_ci 1102e41f4b71Sopenharmony_ci| 类型 | 说明 | 1103e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1104e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1105e41f4b71Sopenharmony_ci 1106e41f4b71Sopenharmony_ci**错误码:** 1107e41f4b71Sopenharmony_ci 1108e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1109e41f4b71Sopenharmony_ci 1110e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1111e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1112e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1113e41f4b71Sopenharmony_ci 1114e41f4b71Sopenharmony_ci**示例:** 1115e41f4b71Sopenharmony_ci 1116e41f4b71Sopenharmony_ci```ts 1117e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中值不为"Lisa"的字段 1118e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1119e41f4b71Sopenharmony_cipredicates.notEqualTo("NAME", "Lisa"); 1120e41f4b71Sopenharmony_ci``` 1121e41f4b71Sopenharmony_ci 1122e41f4b71Sopenharmony_ci 1123e41f4b71Sopenharmony_ci### beginWrap 1124e41f4b71Sopenharmony_ci 1125e41f4b71Sopenharmony_cibeginWrap(): RdbPredicates 1126e41f4b71Sopenharmony_ci 1127e41f4b71Sopenharmony_ci向谓词添加左括号。 1128e41f4b71Sopenharmony_ci 1129e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1130e41f4b71Sopenharmony_ci 1131e41f4b71Sopenharmony_ci**返回值**: 1132e41f4b71Sopenharmony_ci 1133e41f4b71Sopenharmony_ci| 类型 | 说明 | 1134e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------- | 1135e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回带有左括号的Rdb谓词。 | 1136e41f4b71Sopenharmony_ci 1137e41f4b71Sopenharmony_ci**示例:** 1138e41f4b71Sopenharmony_ci 1139e41f4b71Sopenharmony_ci```ts 1140e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1141e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa") 1142e41f4b71Sopenharmony_ci .beginWrap() 1143e41f4b71Sopenharmony_ci .equalTo("AGE", 18) 1144e41f4b71Sopenharmony_ci .or() 1145e41f4b71Sopenharmony_ci .equalTo("SALARY", 200.5) 1146e41f4b71Sopenharmony_ci .endWrap() 1147e41f4b71Sopenharmony_ci``` 1148e41f4b71Sopenharmony_ci 1149e41f4b71Sopenharmony_ci### endWrap 1150e41f4b71Sopenharmony_ci 1151e41f4b71Sopenharmony_ciendWrap(): RdbPredicates 1152e41f4b71Sopenharmony_ci 1153e41f4b71Sopenharmony_ci向谓词添加右括号。 1154e41f4b71Sopenharmony_ci 1155e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1156e41f4b71Sopenharmony_ci 1157e41f4b71Sopenharmony_ci**返回值**: 1158e41f4b71Sopenharmony_ci 1159e41f4b71Sopenharmony_ci| 类型 | 说明 | 1160e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------- | 1161e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回带有右括号的Rdb谓词。 | 1162e41f4b71Sopenharmony_ci 1163e41f4b71Sopenharmony_ci**示例:** 1164e41f4b71Sopenharmony_ci 1165e41f4b71Sopenharmony_ci```ts 1166e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1167e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa") 1168e41f4b71Sopenharmony_ci .beginWrap() 1169e41f4b71Sopenharmony_ci .equalTo("AGE", 18) 1170e41f4b71Sopenharmony_ci .or() 1171e41f4b71Sopenharmony_ci .equalTo("SALARY", 200.5) 1172e41f4b71Sopenharmony_ci .endWrap() 1173e41f4b71Sopenharmony_ci``` 1174e41f4b71Sopenharmony_ci 1175e41f4b71Sopenharmony_ci### or 1176e41f4b71Sopenharmony_ci 1177e41f4b71Sopenharmony_cior(): RdbPredicates 1178e41f4b71Sopenharmony_ci 1179e41f4b71Sopenharmony_ci将或条件添加到谓词中。 1180e41f4b71Sopenharmony_ci 1181e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1182e41f4b71Sopenharmony_ci 1183e41f4b71Sopenharmony_ci**返回值**: 1184e41f4b71Sopenharmony_ci 1185e41f4b71Sopenharmony_ci| 类型 | 说明 | 1186e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------- | 1187e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回带有或条件的Rdb谓词。 | 1188e41f4b71Sopenharmony_ci 1189e41f4b71Sopenharmony_ci**示例:** 1190e41f4b71Sopenharmony_ci 1191e41f4b71Sopenharmony_ci```ts 1192e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中值为"Lisa"或"Rose"的字段 1193e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1194e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa") 1195e41f4b71Sopenharmony_ci .or() 1196e41f4b71Sopenharmony_ci .equalTo("NAME", "Rose") 1197e41f4b71Sopenharmony_ci``` 1198e41f4b71Sopenharmony_ci 1199e41f4b71Sopenharmony_ci### and 1200e41f4b71Sopenharmony_ci 1201e41f4b71Sopenharmony_ciand(): RdbPredicates 1202e41f4b71Sopenharmony_ci 1203e41f4b71Sopenharmony_ci向谓词添加和条件。 1204e41f4b71Sopenharmony_ci 1205e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1206e41f4b71Sopenharmony_ci 1207e41f4b71Sopenharmony_ci**返回值**: 1208e41f4b71Sopenharmony_ci 1209e41f4b71Sopenharmony_ci| 类型 | 说明 | 1210e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------- | 1211e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回带有和条件的Rdb谓词。 | 1212e41f4b71Sopenharmony_ci 1213e41f4b71Sopenharmony_ci**示例:** 1214e41f4b71Sopenharmony_ci 1215e41f4b71Sopenharmony_ci```ts 1216e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中值为"Lisa"且"SALARY"列中值为"200.5"的字段 1217e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1218e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa") 1219e41f4b71Sopenharmony_ci .and() 1220e41f4b71Sopenharmony_ci .equalTo("SALARY", 200.5) 1221e41f4b71Sopenharmony_ci``` 1222e41f4b71Sopenharmony_ci 1223e41f4b71Sopenharmony_ci### contains 1224e41f4b71Sopenharmony_ci 1225e41f4b71Sopenharmony_cicontains(field: string, value: string): RdbPredicates 1226e41f4b71Sopenharmony_ci 1227e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中包含value的字段。 1228e41f4b71Sopenharmony_ci 1229e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1230e41f4b71Sopenharmony_ci 1231e41f4b71Sopenharmony_ci**参数:** 1232e41f4b71Sopenharmony_ci 1233e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1234e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 1235e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1236e41f4b71Sopenharmony_ci| value | string | 是 | 指示要与谓词匹配的值。 | 1237e41f4b71Sopenharmony_ci 1238e41f4b71Sopenharmony_ci**返回值**: 1239e41f4b71Sopenharmony_ci 1240e41f4b71Sopenharmony_ci| 类型 | 说明 | 1241e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1242e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1243e41f4b71Sopenharmony_ci 1244e41f4b71Sopenharmony_ci**错误码:** 1245e41f4b71Sopenharmony_ci 1246e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1247e41f4b71Sopenharmony_ci 1248e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1249e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1250e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1251e41f4b71Sopenharmony_ci 1252e41f4b71Sopenharmony_ci**示例:** 1253e41f4b71Sopenharmony_ci 1254e41f4b71Sopenharmony_ci```ts 1255e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中包含"os"的字段,如"Rose" 1256e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1257e41f4b71Sopenharmony_cipredicates.contains("NAME", "os"); 1258e41f4b71Sopenharmony_ci``` 1259e41f4b71Sopenharmony_ci 1260e41f4b71Sopenharmony_ci### beginsWith 1261e41f4b71Sopenharmony_ci 1262e41f4b71Sopenharmony_cibeginsWith(field: string, value: string): RdbPredicates 1263e41f4b71Sopenharmony_ci 1264e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中以value开头的字段。 1265e41f4b71Sopenharmony_ci 1266e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1267e41f4b71Sopenharmony_ci 1268e41f4b71Sopenharmony_ci**参数:** 1269e41f4b71Sopenharmony_ci 1270e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1271e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 1272e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1273e41f4b71Sopenharmony_ci| value | string | 是 | 指示要与谓词匹配的值。 | 1274e41f4b71Sopenharmony_ci 1275e41f4b71Sopenharmony_ci**返回值**: 1276e41f4b71Sopenharmony_ci 1277e41f4b71Sopenharmony_ci| 类型 | 说明 | 1278e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1279e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1280e41f4b71Sopenharmony_ci 1281e41f4b71Sopenharmony_ci**错误码:** 1282e41f4b71Sopenharmony_ci 1283e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1284e41f4b71Sopenharmony_ci 1285e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1286e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1287e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1288e41f4b71Sopenharmony_ci 1289e41f4b71Sopenharmony_ci**示例:** 1290e41f4b71Sopenharmony_ci 1291e41f4b71Sopenharmony_ci```ts 1292e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中以"Li"开头的字段,如"Lisa" 1293e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1294e41f4b71Sopenharmony_cipredicates.beginsWith("NAME", "Li"); 1295e41f4b71Sopenharmony_ci``` 1296e41f4b71Sopenharmony_ci 1297e41f4b71Sopenharmony_ci### endsWith 1298e41f4b71Sopenharmony_ci 1299e41f4b71Sopenharmony_ciendsWith(field: string, value: string): RdbPredicates 1300e41f4b71Sopenharmony_ci 1301e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中以value结尾的字段。 1302e41f4b71Sopenharmony_ci 1303e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1304e41f4b71Sopenharmony_ci 1305e41f4b71Sopenharmony_ci**参数:** 1306e41f4b71Sopenharmony_ci 1307e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1308e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 1309e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1310e41f4b71Sopenharmony_ci| value | string | 是 | 指示要与谓词匹配的值。 | 1311e41f4b71Sopenharmony_ci 1312e41f4b71Sopenharmony_ci**返回值**: 1313e41f4b71Sopenharmony_ci 1314e41f4b71Sopenharmony_ci| 类型 | 说明 | 1315e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1316e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1317e41f4b71Sopenharmony_ci 1318e41f4b71Sopenharmony_ci**错误码:** 1319e41f4b71Sopenharmony_ci 1320e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1321e41f4b71Sopenharmony_ci 1322e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1323e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1324e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1325e41f4b71Sopenharmony_ci 1326e41f4b71Sopenharmony_ci**示例:** 1327e41f4b71Sopenharmony_ci 1328e41f4b71Sopenharmony_ci```ts 1329e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中以"se"结尾的字段,如"Rose" 1330e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1331e41f4b71Sopenharmony_cipredicates.endsWith("NAME", "se"); 1332e41f4b71Sopenharmony_ci``` 1333e41f4b71Sopenharmony_ci 1334e41f4b71Sopenharmony_ci### isNull 1335e41f4b71Sopenharmony_ci 1336e41f4b71Sopenharmony_ciisNull(field: string): RdbPredicates 1337e41f4b71Sopenharmony_ci 1338e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值为null的字段。 1339e41f4b71Sopenharmony_ci 1340e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1341e41f4b71Sopenharmony_ci 1342e41f4b71Sopenharmony_ci**参数:** 1343e41f4b71Sopenharmony_ci 1344e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1345e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 1346e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1347e41f4b71Sopenharmony_ci 1348e41f4b71Sopenharmony_ci**返回值**: 1349e41f4b71Sopenharmony_ci 1350e41f4b71Sopenharmony_ci| 类型 | 说明 | 1351e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1352e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1353e41f4b71Sopenharmony_ci 1354e41f4b71Sopenharmony_ci**错误码:** 1355e41f4b71Sopenharmony_ci 1356e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1357e41f4b71Sopenharmony_ci 1358e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1359e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1360e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1361e41f4b71Sopenharmony_ci 1362e41f4b71Sopenharmony_ci**示例**: 1363e41f4b71Sopenharmony_ci 1364e41f4b71Sopenharmony_ci```ts 1365e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1366e41f4b71Sopenharmony_cipredicates.isNull("NAME"); 1367e41f4b71Sopenharmony_ci``` 1368e41f4b71Sopenharmony_ci 1369e41f4b71Sopenharmony_ci### isNotNull 1370e41f4b71Sopenharmony_ci 1371e41f4b71Sopenharmony_ciisNotNull(field: string): RdbPredicates 1372e41f4b71Sopenharmony_ci 1373e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值不为null的字段。 1374e41f4b71Sopenharmony_ci 1375e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1376e41f4b71Sopenharmony_ci 1377e41f4b71Sopenharmony_ci**参数:** 1378e41f4b71Sopenharmony_ci 1379e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1380e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 1381e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1382e41f4b71Sopenharmony_ci 1383e41f4b71Sopenharmony_ci**返回值**: 1384e41f4b71Sopenharmony_ci 1385e41f4b71Sopenharmony_ci| 类型 | 说明 | 1386e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1387e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1388e41f4b71Sopenharmony_ci 1389e41f4b71Sopenharmony_ci**错误码:** 1390e41f4b71Sopenharmony_ci 1391e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1392e41f4b71Sopenharmony_ci 1393e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1394e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1395e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1396e41f4b71Sopenharmony_ci 1397e41f4b71Sopenharmony_ci**示例:** 1398e41f4b71Sopenharmony_ci 1399e41f4b71Sopenharmony_ci```ts 1400e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1401e41f4b71Sopenharmony_cipredicates.isNotNull("NAME"); 1402e41f4b71Sopenharmony_ci``` 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ci### like 1405e41f4b71Sopenharmony_ci 1406e41f4b71Sopenharmony_cilike(field: string, value: string): RdbPredicates 1407e41f4b71Sopenharmony_ci 1408e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值类似于value的字段。 1409e41f4b71Sopenharmony_ci 1410e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1411e41f4b71Sopenharmony_ci 1412e41f4b71Sopenharmony_ci**参数:** 1413e41f4b71Sopenharmony_ci 1414e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1415e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 1416e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1417e41f4b71Sopenharmony_ci| value | string | 是 | 指示要与谓词匹配的值。 | 1418e41f4b71Sopenharmony_ci 1419e41f4b71Sopenharmony_ci**返回值**: 1420e41f4b71Sopenharmony_ci 1421e41f4b71Sopenharmony_ci| 类型 | 说明 | 1422e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1423e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1424e41f4b71Sopenharmony_ci 1425e41f4b71Sopenharmony_ci**错误码:** 1426e41f4b71Sopenharmony_ci 1427e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1428e41f4b71Sopenharmony_ci 1429e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1430e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1431e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1432e41f4b71Sopenharmony_ci 1433e41f4b71Sopenharmony_ci**示例:** 1434e41f4b71Sopenharmony_ci 1435e41f4b71Sopenharmony_ci```ts 1436e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中值类似于"os"的字段,如"Rose" 1437e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1438e41f4b71Sopenharmony_cipredicates.like("NAME", "%os%"); 1439e41f4b71Sopenharmony_ci``` 1440e41f4b71Sopenharmony_ci 1441e41f4b71Sopenharmony_ci### glob 1442e41f4b71Sopenharmony_ci 1443e41f4b71Sopenharmony_ciglob(field: string, value: string): RdbPredicates 1444e41f4b71Sopenharmony_ci 1445e41f4b71Sopenharmony_ci配置谓词匹配数据字段为string的指定字段。 1446e41f4b71Sopenharmony_ci 1447e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1448e41f4b71Sopenharmony_ci 1449e41f4b71Sopenharmony_ci**参数:** 1450e41f4b71Sopenharmony_ci 1451e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1452e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------------------------------------ | 1453e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1454e41f4b71Sopenharmony_ci| value | string | 是 | 指示要与谓词匹配的值。<br>支持通配符,*表示0个、1个或多个数字或字符,?表示1个数字或字符。 | 1455e41f4b71Sopenharmony_ci 1456e41f4b71Sopenharmony_ci**返回值**: 1457e41f4b71Sopenharmony_ci 1458e41f4b71Sopenharmony_ci| 类型 | 说明 | 1459e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1460e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1461e41f4b71Sopenharmony_ci 1462e41f4b71Sopenharmony_ci**错误码:** 1463e41f4b71Sopenharmony_ci 1464e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1465e41f4b71Sopenharmony_ci 1466e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1467e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1468e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1469e41f4b71Sopenharmony_ci 1470e41f4b71Sopenharmony_ci**示例:** 1471e41f4b71Sopenharmony_ci 1472e41f4b71Sopenharmony_ci```ts 1473e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中类型为string且值为"?h*g"的字段 1474e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1475e41f4b71Sopenharmony_cipredicates.glob("NAME", "?h*g"); 1476e41f4b71Sopenharmony_ci``` 1477e41f4b71Sopenharmony_ci 1478e41f4b71Sopenharmony_ci### between 1479e41f4b71Sopenharmony_ci 1480e41f4b71Sopenharmony_cibetween(field: string, low: ValueType, high: ValueType): RdbPredicates 1481e41f4b71Sopenharmony_ci 1482e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值在给定范围内的字段(包含范围边界)。 1483e41f4b71Sopenharmony_ci 1484e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1485e41f4b71Sopenharmony_ci 1486e41f4b71Sopenharmony_ci**参数:** 1487e41f4b71Sopenharmony_ci 1488e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1489e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | -------------------------- | 1490e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1491e41f4b71Sopenharmony_ci| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 | 1492e41f4b71Sopenharmony_ci| high | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最大值。 | 1493e41f4b71Sopenharmony_ci 1494e41f4b71Sopenharmony_ci**返回值**: 1495e41f4b71Sopenharmony_ci 1496e41f4b71Sopenharmony_ci| 类型 | 说明 | 1497e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1498e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1499e41f4b71Sopenharmony_ci 1500e41f4b71Sopenharmony_ci**错误码:** 1501e41f4b71Sopenharmony_ci 1502e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1503e41f4b71Sopenharmony_ci 1504e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1505e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1506e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1507e41f4b71Sopenharmony_ci 1508e41f4b71Sopenharmony_ci**示例:** 1509e41f4b71Sopenharmony_ci 1510e41f4b71Sopenharmony_ci```ts 1511e41f4b71Sopenharmony_ci// 匹配数据表的"AGE"列中大于等于10且小于等于50的值 1512e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1513e41f4b71Sopenharmony_cipredicates.between("AGE", 10, 50); 1514e41f4b71Sopenharmony_ci``` 1515e41f4b71Sopenharmony_ci 1516e41f4b71Sopenharmony_ci### notBetween 1517e41f4b71Sopenharmony_ci 1518e41f4b71Sopenharmony_cinotBetween(field: string, low: ValueType, high: ValueType): RdbPredicates 1519e41f4b71Sopenharmony_ci 1520e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值超出给定范围的字段(不包含范围边界)。 1521e41f4b71Sopenharmony_ci 1522e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1523e41f4b71Sopenharmony_ci 1524e41f4b71Sopenharmony_ci**参数:** 1525e41f4b71Sopenharmony_ci 1526e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1527e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | -------------------------- | 1528e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1529e41f4b71Sopenharmony_ci| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 | 1530e41f4b71Sopenharmony_ci| high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 | 1531e41f4b71Sopenharmony_ci 1532e41f4b71Sopenharmony_ci**返回值**: 1533e41f4b71Sopenharmony_ci 1534e41f4b71Sopenharmony_ci| 类型 | 说明 | 1535e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1536e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1537e41f4b71Sopenharmony_ci 1538e41f4b71Sopenharmony_ci**错误码:** 1539e41f4b71Sopenharmony_ci 1540e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1541e41f4b71Sopenharmony_ci 1542e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1543e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1544e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1545e41f4b71Sopenharmony_ci 1546e41f4b71Sopenharmony_ci**示例:** 1547e41f4b71Sopenharmony_ci 1548e41f4b71Sopenharmony_ci```ts 1549e41f4b71Sopenharmony_ci// 匹配数据表的"AGE"列中小于10或大于50的值 1550e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1551e41f4b71Sopenharmony_cipredicates.notBetween("AGE", 10, 50); 1552e41f4b71Sopenharmony_ci``` 1553e41f4b71Sopenharmony_ci 1554e41f4b71Sopenharmony_ci### greaterThan 1555e41f4b71Sopenharmony_ci 1556e41f4b71Sopenharmony_cigreaterThan(field: string, value: ValueType): RdbPredicates 1557e41f4b71Sopenharmony_ci 1558e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值大于value的字段。 1559e41f4b71Sopenharmony_ci 1560e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1561e41f4b71Sopenharmony_ci 1562e41f4b71Sopenharmony_ci**参数:** 1563e41f4b71Sopenharmony_ci 1564e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1565e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ---------------------- | 1566e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1567e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 | 1568e41f4b71Sopenharmony_ci 1569e41f4b71Sopenharmony_ci**返回值**: 1570e41f4b71Sopenharmony_ci 1571e41f4b71Sopenharmony_ci| 类型 | 说明 | 1572e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1573e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1574e41f4b71Sopenharmony_ci 1575e41f4b71Sopenharmony_ci**错误码:** 1576e41f4b71Sopenharmony_ci 1577e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1578e41f4b71Sopenharmony_ci 1579e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1580e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1581e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1582e41f4b71Sopenharmony_ci 1583e41f4b71Sopenharmony_ci**示例:** 1584e41f4b71Sopenharmony_ci 1585e41f4b71Sopenharmony_ci```ts 1586e41f4b71Sopenharmony_ci// 匹配数据表的"AGE"列中大于18的值 1587e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1588e41f4b71Sopenharmony_cipredicates.greaterThan("AGE", 18); 1589e41f4b71Sopenharmony_ci``` 1590e41f4b71Sopenharmony_ci 1591e41f4b71Sopenharmony_ci### lessThan 1592e41f4b71Sopenharmony_ci 1593e41f4b71Sopenharmony_cilessThan(field: string, value: ValueType): RdbPredicates 1594e41f4b71Sopenharmony_ci 1595e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值小于value的字段。 1596e41f4b71Sopenharmony_ci 1597e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1598e41f4b71Sopenharmony_ci 1599e41f4b71Sopenharmony_ci**参数:** 1600e41f4b71Sopenharmony_ci 1601e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1602e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ---------------------- | 1603e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1604e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 | 1605e41f4b71Sopenharmony_ci 1606e41f4b71Sopenharmony_ci**返回值**: 1607e41f4b71Sopenharmony_ci 1608e41f4b71Sopenharmony_ci| 类型 | 说明 | 1609e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1610e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1611e41f4b71Sopenharmony_ci 1612e41f4b71Sopenharmony_ci**错误码:** 1613e41f4b71Sopenharmony_ci 1614e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1615e41f4b71Sopenharmony_ci 1616e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1617e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1618e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1619e41f4b71Sopenharmony_ci 1620e41f4b71Sopenharmony_ci**示例:** 1621e41f4b71Sopenharmony_ci 1622e41f4b71Sopenharmony_ci```ts 1623e41f4b71Sopenharmony_ci// 匹配数据表的"AGE"列中小于20的值 1624e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1625e41f4b71Sopenharmony_cipredicates.lessThan("AGE", 20); 1626e41f4b71Sopenharmony_ci``` 1627e41f4b71Sopenharmony_ci 1628e41f4b71Sopenharmony_ci### greaterThanOrEqualTo 1629e41f4b71Sopenharmony_ci 1630e41f4b71Sopenharmony_cigreaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates 1631e41f4b71Sopenharmony_ci 1632e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值大于或者等于value的字段。 1633e41f4b71Sopenharmony_ci 1634e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1635e41f4b71Sopenharmony_ci 1636e41f4b71Sopenharmony_ci**参数:** 1637e41f4b71Sopenharmony_ci 1638e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1639e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ---------------------- | 1640e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1641e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 | 1642e41f4b71Sopenharmony_ci 1643e41f4b71Sopenharmony_ci**返回值**: 1644e41f4b71Sopenharmony_ci 1645e41f4b71Sopenharmony_ci| 类型 | 说明 | 1646e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1647e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1648e41f4b71Sopenharmony_ci 1649e41f4b71Sopenharmony_ci**错误码:** 1650e41f4b71Sopenharmony_ci 1651e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1652e41f4b71Sopenharmony_ci 1653e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1654e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1655e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1656e41f4b71Sopenharmony_ci 1657e41f4b71Sopenharmony_ci**示例:** 1658e41f4b71Sopenharmony_ci 1659e41f4b71Sopenharmony_ci```ts 1660e41f4b71Sopenharmony_ci// 匹配数据表的"AGE"列中大于等于18的值 1661e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1662e41f4b71Sopenharmony_cipredicates.greaterThanOrEqualTo("AGE", 18); 1663e41f4b71Sopenharmony_ci``` 1664e41f4b71Sopenharmony_ci 1665e41f4b71Sopenharmony_ci### lessThanOrEqualTo 1666e41f4b71Sopenharmony_ci 1667e41f4b71Sopenharmony_cilessThanOrEqualTo(field: string, value: ValueType): RdbPredicates 1668e41f4b71Sopenharmony_ci 1669e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值小于或者等于value的字段。 1670e41f4b71Sopenharmony_ci 1671e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1672e41f4b71Sopenharmony_ci 1673e41f4b71Sopenharmony_ci**参数:** 1674e41f4b71Sopenharmony_ci 1675e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1676e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ---------------------- | 1677e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1678e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 | 1679e41f4b71Sopenharmony_ci 1680e41f4b71Sopenharmony_ci**返回值**: 1681e41f4b71Sopenharmony_ci 1682e41f4b71Sopenharmony_ci| 类型 | 说明 | 1683e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1684e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1685e41f4b71Sopenharmony_ci 1686e41f4b71Sopenharmony_ci**错误码:** 1687e41f4b71Sopenharmony_ci 1688e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1689e41f4b71Sopenharmony_ci 1690e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1691e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1692e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1693e41f4b71Sopenharmony_ci 1694e41f4b71Sopenharmony_ci**示例:** 1695e41f4b71Sopenharmony_ci 1696e41f4b71Sopenharmony_ci```ts 1697e41f4b71Sopenharmony_ci// 匹配数据表的"AGE"列中小于等于20的值 1698e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1699e41f4b71Sopenharmony_cipredicates.lessThanOrEqualTo("AGE", 20); 1700e41f4b71Sopenharmony_ci``` 1701e41f4b71Sopenharmony_ci 1702e41f4b71Sopenharmony_ci### orderByAsc 1703e41f4b71Sopenharmony_ci 1704e41f4b71Sopenharmony_ciorderByAsc(field: string): RdbPredicates 1705e41f4b71Sopenharmony_ci 1706e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值按升序排序的列。 1707e41f4b71Sopenharmony_ci 1708e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1709e41f4b71Sopenharmony_ci 1710e41f4b71Sopenharmony_ci**参数:** 1711e41f4b71Sopenharmony_ci 1712e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1713e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 1714e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1715e41f4b71Sopenharmony_ci 1716e41f4b71Sopenharmony_ci**返回值**: 1717e41f4b71Sopenharmony_ci 1718e41f4b71Sopenharmony_ci| 类型 | 说明 | 1719e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1720e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1721e41f4b71Sopenharmony_ci 1722e41f4b71Sopenharmony_ci**错误码:** 1723e41f4b71Sopenharmony_ci 1724e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1725e41f4b71Sopenharmony_ci 1726e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1727e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1728e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1729e41f4b71Sopenharmony_ci 1730e41f4b71Sopenharmony_ci**示例:** 1731e41f4b71Sopenharmony_ci 1732e41f4b71Sopenharmony_ci```ts 1733e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1734e41f4b71Sopenharmony_cipredicates.orderByAsc("NAME"); 1735e41f4b71Sopenharmony_ci``` 1736e41f4b71Sopenharmony_ci 1737e41f4b71Sopenharmony_ci### orderByDesc 1738e41f4b71Sopenharmony_ci 1739e41f4b71Sopenharmony_ciorderByDesc(field: string): RdbPredicates 1740e41f4b71Sopenharmony_ci 1741e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值按降序排序的列。 1742e41f4b71Sopenharmony_ci 1743e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1744e41f4b71Sopenharmony_ci 1745e41f4b71Sopenharmony_ci**参数:** 1746e41f4b71Sopenharmony_ci 1747e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1748e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ | 1749e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1750e41f4b71Sopenharmony_ci 1751e41f4b71Sopenharmony_ci**返回值**: 1752e41f4b71Sopenharmony_ci 1753e41f4b71Sopenharmony_ci| 类型 | 说明 | 1754e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1755e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1756e41f4b71Sopenharmony_ci 1757e41f4b71Sopenharmony_ci**错误码:** 1758e41f4b71Sopenharmony_ci 1759e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1760e41f4b71Sopenharmony_ci 1761e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1762e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1763e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1764e41f4b71Sopenharmony_ci 1765e41f4b71Sopenharmony_ci**示例:** 1766e41f4b71Sopenharmony_ci 1767e41f4b71Sopenharmony_ci```ts 1768e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1769e41f4b71Sopenharmony_cipredicates.orderByDesc("AGE"); 1770e41f4b71Sopenharmony_ci``` 1771e41f4b71Sopenharmony_ci 1772e41f4b71Sopenharmony_ci### distinct 1773e41f4b71Sopenharmony_ci 1774e41f4b71Sopenharmony_cidistinct(): RdbPredicates 1775e41f4b71Sopenharmony_ci 1776e41f4b71Sopenharmony_ci配置谓词以过滤重复记录并仅保留其中一个。 1777e41f4b71Sopenharmony_ci 1778e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1779e41f4b71Sopenharmony_ci 1780e41f4b71Sopenharmony_ci**返回值**: 1781e41f4b71Sopenharmony_ci 1782e41f4b71Sopenharmony_ci| 类型 | 说明 | 1783e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------------ | 1784e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回可用于过滤重复记录的谓词。 | 1785e41f4b71Sopenharmony_ci 1786e41f4b71Sopenharmony_ci**示例:** 1787e41f4b71Sopenharmony_ci 1788e41f4b71Sopenharmony_ci```ts 1789e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1790e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose").distinct(); 1791e41f4b71Sopenharmony_ci``` 1792e41f4b71Sopenharmony_ci 1793e41f4b71Sopenharmony_ci### limitAs 1794e41f4b71Sopenharmony_ci 1795e41f4b71Sopenharmony_cilimitAs(value: number): RdbPredicates 1796e41f4b71Sopenharmony_ci 1797e41f4b71Sopenharmony_ci设置最大数据记录数的谓词。 1798e41f4b71Sopenharmony_ci 1799e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1800e41f4b71Sopenharmony_ci 1801e41f4b71Sopenharmony_ci**参数:** 1802e41f4b71Sopenharmony_ci 1803e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1804e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------- | 1805e41f4b71Sopenharmony_ci| value | number | 是 | 最大数据记录数。 | 1806e41f4b71Sopenharmony_ci 1807e41f4b71Sopenharmony_ci**返回值**: 1808e41f4b71Sopenharmony_ci 1809e41f4b71Sopenharmony_ci| 类型 | 说明 | 1810e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------------------ | 1811e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回可用于设置最大数据记录数的谓词。 | 1812e41f4b71Sopenharmony_ci 1813e41f4b71Sopenharmony_ci**错误码:** 1814e41f4b71Sopenharmony_ci 1815e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1816e41f4b71Sopenharmony_ci 1817e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1818e41f4b71Sopenharmony_ci| --------- |--------------------------| 1819e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1820e41f4b71Sopenharmony_ci 1821e41f4b71Sopenharmony_ci**示例:** 1822e41f4b71Sopenharmony_ci 1823e41f4b71Sopenharmony_ci```ts 1824e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1825e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose").limitAs(3); 1826e41f4b71Sopenharmony_ci``` 1827e41f4b71Sopenharmony_ci 1828e41f4b71Sopenharmony_ci### offsetAs 1829e41f4b71Sopenharmony_ci 1830e41f4b71Sopenharmony_cioffsetAs(rowOffset: number): RdbPredicates 1831e41f4b71Sopenharmony_ci 1832e41f4b71Sopenharmony_ci配置谓词以指定返回结果的起始位置。 1833e41f4b71Sopenharmony_ci 1834e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1835e41f4b71Sopenharmony_ci 1836e41f4b71Sopenharmony_ci**参数:** 1837e41f4b71Sopenharmony_ci 1838e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1839e41f4b71Sopenharmony_ci| --------- | ------ | ---- | ---------------------------------- | 1840e41f4b71Sopenharmony_ci| rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。 | 1841e41f4b71Sopenharmony_ci 1842e41f4b71Sopenharmony_ci**返回值**: 1843e41f4b71Sopenharmony_ci 1844e41f4b71Sopenharmony_ci| 类型 | 说明 | 1845e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------------------ | 1846e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回具有指定返回结果起始位置的谓词。 | 1847e41f4b71Sopenharmony_ci 1848e41f4b71Sopenharmony_ci**错误码:** 1849e41f4b71Sopenharmony_ci 1850e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1851e41f4b71Sopenharmony_ci 1852e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1853e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1854e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1855e41f4b71Sopenharmony_ci 1856e41f4b71Sopenharmony_ci**示例:** 1857e41f4b71Sopenharmony_ci 1858e41f4b71Sopenharmony_ci```ts 1859e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1860e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose").offsetAs(3); 1861e41f4b71Sopenharmony_ci``` 1862e41f4b71Sopenharmony_ci 1863e41f4b71Sopenharmony_ci### groupBy 1864e41f4b71Sopenharmony_ci 1865e41f4b71Sopenharmony_cigroupBy(fields: Array<string>): RdbPredicates 1866e41f4b71Sopenharmony_ci 1867e41f4b71Sopenharmony_ci配置谓词按指定列分组查询结果。 1868e41f4b71Sopenharmony_ci 1869e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1870e41f4b71Sopenharmony_ci 1871e41f4b71Sopenharmony_ci**参数:** 1872e41f4b71Sopenharmony_ci 1873e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1874e41f4b71Sopenharmony_ci| ------ | ------------------- | ---- | -------------------- | 1875e41f4b71Sopenharmony_ci| fields | Array<string> | 是 | 指定分组依赖的列名。 | 1876e41f4b71Sopenharmony_ci 1877e41f4b71Sopenharmony_ci**返回值**: 1878e41f4b71Sopenharmony_ci 1879e41f4b71Sopenharmony_ci| 类型 | 说明 | 1880e41f4b71Sopenharmony_ci| ------------------------------------ | ---------------------- | 1881e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回分组查询列的谓词。 | 1882e41f4b71Sopenharmony_ci 1883e41f4b71Sopenharmony_ci**错误码:** 1884e41f4b71Sopenharmony_ci 1885e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1886e41f4b71Sopenharmony_ci 1887e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1888e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1889e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1890e41f4b71Sopenharmony_ci 1891e41f4b71Sopenharmony_ci**示例:** 1892e41f4b71Sopenharmony_ci 1893e41f4b71Sopenharmony_ci```ts 1894e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1895e41f4b71Sopenharmony_cipredicates.groupBy(["AGE", "NAME"]); 1896e41f4b71Sopenharmony_ci``` 1897e41f4b71Sopenharmony_ci 1898e41f4b71Sopenharmony_ci### indexedBy 1899e41f4b71Sopenharmony_ci 1900e41f4b71Sopenharmony_ciindexedBy(field: string): RdbPredicates 1901e41f4b71Sopenharmony_ci 1902e41f4b71Sopenharmony_ci配置谓词以指定索引列。 1903e41f4b71Sopenharmony_ci 1904e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1905e41f4b71Sopenharmony_ci 1906e41f4b71Sopenharmony_ci**参数:** 1907e41f4b71Sopenharmony_ci 1908e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1909e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------- | 1910e41f4b71Sopenharmony_ci| field | string | 是 | 索引列的名称。 | 1911e41f4b71Sopenharmony_ci 1912e41f4b71Sopenharmony_ci**返回值**: 1913e41f4b71Sopenharmony_ci 1914e41f4b71Sopenharmony_ci 1915e41f4b71Sopenharmony_ci| 类型 | 说明 | 1916e41f4b71Sopenharmony_ci| ------------------------------------ | ------------------------------------- | 1917e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回具有指定索引列的RdbPredicates。 | 1918e41f4b71Sopenharmony_ci 1919e41f4b71Sopenharmony_ci**错误码:** 1920e41f4b71Sopenharmony_ci 1921e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1922e41f4b71Sopenharmony_ci 1923e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1924e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1925e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1926e41f4b71Sopenharmony_ci 1927e41f4b71Sopenharmony_ci**示例:** 1928e41f4b71Sopenharmony_ci 1929e41f4b71Sopenharmony_ci```ts 1930e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1931e41f4b71Sopenharmony_cipredicates.indexedBy("SALARY"); 1932e41f4b71Sopenharmony_ci``` 1933e41f4b71Sopenharmony_ci 1934e41f4b71Sopenharmony_ci### in 1935e41f4b71Sopenharmony_ci 1936e41f4b71Sopenharmony_ciin(field: string, value: Array<ValueType>): RdbPredicates 1937e41f4b71Sopenharmony_ci 1938e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值在给定范围内的字段。 1939e41f4b71Sopenharmony_ci 1940e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1941e41f4b71Sopenharmony_ci 1942e41f4b71Sopenharmony_ci**参数:** 1943e41f4b71Sopenharmony_ci 1944e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1945e41f4b71Sopenharmony_ci| ------ | ------------------------------------ | ---- | --------------------------------------- | 1946e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1947e41f4b71Sopenharmony_ci| value | Array<[ValueType](#valuetype)> | 是 | 以ValueType型数组形式指定的要匹配的值。 | 1948e41f4b71Sopenharmony_ci 1949e41f4b71Sopenharmony_ci**返回值**: 1950e41f4b71Sopenharmony_ci 1951e41f4b71Sopenharmony_ci| 类型 | 说明 | 1952e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1953e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1954e41f4b71Sopenharmony_ci 1955e41f4b71Sopenharmony_ci**错误码:** 1956e41f4b71Sopenharmony_ci 1957e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1958e41f4b71Sopenharmony_ci 1959e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1960e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1961e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1962e41f4b71Sopenharmony_ci 1963e41f4b71Sopenharmony_ci**示例:** 1964e41f4b71Sopenharmony_ci 1965e41f4b71Sopenharmony_ci```ts 1966e41f4b71Sopenharmony_ci// 匹配数据表的"AGE"列中在[18,20]中的值 1967e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 1968e41f4b71Sopenharmony_cipredicates.in("AGE", [18, 20]); 1969e41f4b71Sopenharmony_ci``` 1970e41f4b71Sopenharmony_ci 1971e41f4b71Sopenharmony_ci### notIn 1972e41f4b71Sopenharmony_ci 1973e41f4b71Sopenharmony_cinotIn(field: string, value: Array<ValueType>): RdbPredicates 1974e41f4b71Sopenharmony_ci 1975e41f4b71Sopenharmony_ci将谓词配置为匹配数据字段为ValueType且值超出给定范围的指定字段。 1976e41f4b71Sopenharmony_ci 1977e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1978e41f4b71Sopenharmony_ci 1979e41f4b71Sopenharmony_ci**参数:** 1980e41f4b71Sopenharmony_ci 1981e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1982e41f4b71Sopenharmony_ci| ------ | ------------------------------------ | ---- | ------------------------------------- | 1983e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 1984e41f4b71Sopenharmony_ci| value | Array<[ValueType](#valuetype)> | 是 | 以ValueType数组形式指定的要匹配的值。 | 1985e41f4b71Sopenharmony_ci 1986e41f4b71Sopenharmony_ci**返回值**: 1987e41f4b71Sopenharmony_ci 1988e41f4b71Sopenharmony_ci| 类型 | 说明 | 1989e41f4b71Sopenharmony_ci| ------------------------------------ | -------------------------- | 1990e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 1991e41f4b71Sopenharmony_ci 1992e41f4b71Sopenharmony_ci**错误码:** 1993e41f4b71Sopenharmony_ci 1994e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 1995e41f4b71Sopenharmony_ci 1996e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 1997e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 1998e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1999e41f4b71Sopenharmony_ci 2000e41f4b71Sopenharmony_ci**示例:** 2001e41f4b71Sopenharmony_ci 2002e41f4b71Sopenharmony_ci```ts 2003e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中不在["Lisa", "Rose"]中的值 2004e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 2005e41f4b71Sopenharmony_cipredicates.notIn("NAME", ["Lisa", "Rose"]); 2006e41f4b71Sopenharmony_ci``` 2007e41f4b71Sopenharmony_ci 2008e41f4b71Sopenharmony_ci### notContains<sup>12+</sup> 2009e41f4b71Sopenharmony_ci 2010e41f4b71Sopenharmony_cinotContains(field: string, value: string): RdbPredicates 2011e41f4b71Sopenharmony_ci 2012e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中不包含value的字段。 2013e41f4b71Sopenharmony_ci 2014e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2015e41f4b71Sopenharmony_ci 2016e41f4b71Sopenharmony_ci**参数:** 2017e41f4b71Sopenharmony_ci 2018e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2019e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 2020e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 2021e41f4b71Sopenharmony_ci| value | string | 是 | 指示要与谓词匹配的值。 | 2022e41f4b71Sopenharmony_ci 2023e41f4b71Sopenharmony_ci**返回值**: 2024e41f4b71Sopenharmony_ci 2025e41f4b71Sopenharmony_ci| 类型 | 说明 | 2026e41f4b71Sopenharmony_ci| ------------------------------- | -------------------------- | 2027e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 2028e41f4b71Sopenharmony_ci 2029e41f4b71Sopenharmony_ci**错误码:** 2030e41f4b71Sopenharmony_ci 2031e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2032e41f4b71Sopenharmony_ci 2033e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2034e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 2035e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2036e41f4b71Sopenharmony_ci 2037e41f4b71Sopenharmony_ci**示例:** 2038e41f4b71Sopenharmony_ci 2039e41f4b71Sopenharmony_ci```ts 2040e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中不包含"os"的字段,如列表中的"Lisa" 2041e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 2042e41f4b71Sopenharmony_cipredicates.notContains("NAME", "os"); 2043e41f4b71Sopenharmony_ci``` 2044e41f4b71Sopenharmony_ci 2045e41f4b71Sopenharmony_ci### notLike<sup>12+</sup> 2046e41f4b71Sopenharmony_ci 2047e41f4b71Sopenharmony_cinotLike(field: string, value: string): RdbPredicates 2048e41f4b71Sopenharmony_ci 2049e41f4b71Sopenharmony_ci配置谓词以匹配数据表的field列中值不存在类似于value的字段。 2050e41f4b71Sopenharmony_ci 2051e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2052e41f4b71Sopenharmony_ci 2053e41f4b71Sopenharmony_ci**参数:** 2054e41f4b71Sopenharmony_ci 2055e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2056e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 2057e41f4b71Sopenharmony_ci| field | string | 是 | 数据库表中的列名。 | 2058e41f4b71Sopenharmony_ci| value | string | 是 | 指示要与谓词匹配的值。 | 2059e41f4b71Sopenharmony_ci 2060e41f4b71Sopenharmony_ci**返回值**: 2061e41f4b71Sopenharmony_ci 2062e41f4b71Sopenharmony_ci| 类型 | 说明 | 2063e41f4b71Sopenharmony_ci| ------------------------------- | -------------------------- | 2064e41f4b71Sopenharmony_ci| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 | 2065e41f4b71Sopenharmony_ci 2066e41f4b71Sopenharmony_ci**错误码:** 2067e41f4b71Sopenharmony_ci 2068e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 2069e41f4b71Sopenharmony_ci 2070e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2071e41f4b71Sopenharmony_ci| --------- |----------------------------------------------------------------------------------------------------------------| 2072e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2073e41f4b71Sopenharmony_ci 2074e41f4b71Sopenharmony_ci**示例:** 2075e41f4b71Sopenharmony_ci 2076e41f4b71Sopenharmony_ci```ts 2077e41f4b71Sopenharmony_ci// 匹配数据表的"NAME"列中不等于"os"的字段,如列表中的"Rose" 2078e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 2079e41f4b71Sopenharmony_cipredicates.notLike("NAME", "os"); 2080e41f4b71Sopenharmony_ci``` 2081e41f4b71Sopenharmony_ci 2082e41f4b71Sopenharmony_ci 2083e41f4b71Sopenharmony_ci 2084e41f4b71Sopenharmony_ci## RdbStore 2085e41f4b71Sopenharmony_ci 2086e41f4b71Sopenharmony_ci提供管理关系数据库(RDB)方法的接口。 2087e41f4b71Sopenharmony_ci 2088e41f4b71Sopenharmony_ci在使用以下相关接口前,请使用[executeSql](#executesql)接口初始化数据库表结构和相关数据。 2089e41f4b71Sopenharmony_ci 2090e41f4b71Sopenharmony_ci### 属性 2091e41f4b71Sopenharmony_ci 2092e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2093e41f4b71Sopenharmony_ci 2094e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 2095e41f4b71Sopenharmony_ci| ------------ | ----------- | ---- | -------------------------------- | -------------------------------- | 2096e41f4b71Sopenharmony_ci| version<sup>10+</sup> | number | 否 | 否 | 设置和获取数据库版本,值为大于0的正整数。 | 2097e41f4b71Sopenharmony_ci| rebuilt<sup>12+</sup> | [RebuildType](#rebuildtype12) | 是 | 否 | 用于获取数据库是否进行过重建或修复。 | 2098e41f4b71Sopenharmony_ci 2099e41f4b71Sopenharmony_ci**错误码:** 2100e41f4b71Sopenharmony_ci 2101e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 2102e41f4b71Sopenharmony_ci 2103e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2104e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 2105e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2106e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 2107e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2108e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2109e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2110e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2111e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2112e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2113e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2114e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2115e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2116e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2117e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2118e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2119e41f4b71Sopenharmony_ci 2120e41f4b71Sopenharmony_ci**示例:** 2121e41f4b71Sopenharmony_ci 2122e41f4b71Sopenharmony_ci```ts 2123e41f4b71Sopenharmony_ci// 设置数据库版本 2124e41f4b71Sopenharmony_ciif(store != undefined) { 2125e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).version = 3; 2126e41f4b71Sopenharmony_ci // 获取数据库版本 2127e41f4b71Sopenharmony_ci console.info(`RdbStore version is ${store.version}`); 2128e41f4b71Sopenharmony_ci // 获取数据库是否重建 2129e41f4b71Sopenharmony_ci console.info(`RdbStore rebuilt is ${store.rebuilt}`); 2130e41f4b71Sopenharmony_ci} 2131e41f4b71Sopenharmony_ci``` 2132e41f4b71Sopenharmony_ci 2133e41f4b71Sopenharmony_ci### insert 2134e41f4b71Sopenharmony_ci 2135e41f4b71Sopenharmony_ciinsert(table: string, values: ValuesBucket, callback: AsyncCallback<number>):void 2136e41f4b71Sopenharmony_ci 2137e41f4b71Sopenharmony_ci向目标表中插入一行数据,使用callback异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 2138e41f4b71Sopenharmony_ci 2139e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2140e41f4b71Sopenharmony_ci 2141e41f4b71Sopenharmony_ci**参数:** 2142e41f4b71Sopenharmony_ci 2143e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2144e41f4b71Sopenharmony_ci| -------- | ----------------------------- | ---- | ---------------------------------------------------------- | 2145e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2146e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 | 2147e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 | 2148e41f4b71Sopenharmony_ci 2149e41f4b71Sopenharmony_ci**错误码:** 2150e41f4b71Sopenharmony_ci 2151e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2152e41f4b71Sopenharmony_ci 2153e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2154e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 2155e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2156e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2157e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2158e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2159e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2160e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2161e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2162e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2163e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2164e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2165e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2166e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2167e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2168e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2169e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2170e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2171e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2172e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2173e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2174e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2175e41f4b71Sopenharmony_ci 2176e41f4b71Sopenharmony_ci**示例:** 2177e41f4b71Sopenharmony_ci 2178e41f4b71Sopenharmony_ci```ts 2179e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2180e41f4b71Sopenharmony_cilet value2 = 18; 2181e41f4b71Sopenharmony_cilet value3 = 100.5; 2182e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2183e41f4b71Sopenharmony_ci 2184e41f4b71Sopenharmony_ci// 以下三种方式可用 2185e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2186e41f4b71Sopenharmony_ci 'NAME': value1, 2187e41f4b71Sopenharmony_ci 'AGE': value2, 2188e41f4b71Sopenharmony_ci 'SALARY': value3, 2189e41f4b71Sopenharmony_ci 'CODES': value4, 2190e41f4b71Sopenharmony_ci}; 2191e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2192e41f4b71Sopenharmony_ci NAME: value1, 2193e41f4b71Sopenharmony_ci AGE: value2, 2194e41f4b71Sopenharmony_ci SALARY: value3, 2195e41f4b71Sopenharmony_ci CODES: value4, 2196e41f4b71Sopenharmony_ci}; 2197e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2198e41f4b71Sopenharmony_ci "NAME": value1, 2199e41f4b71Sopenharmony_ci "AGE": value2, 2200e41f4b71Sopenharmony_ci "SALARY": value3, 2201e41f4b71Sopenharmony_ci "CODES": value4, 2202e41f4b71Sopenharmony_ci}; 2203e41f4b71Sopenharmony_ci 2204e41f4b71Sopenharmony_ciif(store != undefined) { 2205e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert("EMPLOYEE", valueBucket1, (err: BusinessError, rowId: number) => { 2206e41f4b71Sopenharmony_ci if (err) { 2207e41f4b71Sopenharmony_ci console.error(`Insert is failed, code is ${err.code},message is ${err.message}`); 2208e41f4b71Sopenharmony_ci return; 2209e41f4b71Sopenharmony_ci } 2210e41f4b71Sopenharmony_ci console.info(`Insert is successful, rowId = ${rowId}`); 2211e41f4b71Sopenharmony_ci }) 2212e41f4b71Sopenharmony_ci} 2213e41f4b71Sopenharmony_ci``` 2214e41f4b71Sopenharmony_ci 2215e41f4b71Sopenharmony_ci### insert<sup>10+</sup> 2216e41f4b71Sopenharmony_ci 2217e41f4b71Sopenharmony_ciinsert(table: string, values: ValuesBucket, conflict: ConflictResolution, callback: AsyncCallback<number>):void 2218e41f4b71Sopenharmony_ci 2219e41f4b71Sopenharmony_ci向目标表中插入一行数据,使用callback异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 2220e41f4b71Sopenharmony_ci 2221e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2222e41f4b71Sopenharmony_ci 2223e41f4b71Sopenharmony_ci**参数:** 2224e41f4b71Sopenharmony_ci 2225e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2226e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | ---------------------------------------------------------- | 2227e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2228e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 | 2229e41f4b71Sopenharmony_ci| conflict | [ConflictResolution](#conflictresolution10) | 是 | 指定冲突解决模式。 | 2230e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 | 2231e41f4b71Sopenharmony_ci 2232e41f4b71Sopenharmony_ci**错误码:** 2233e41f4b71Sopenharmony_ci 2234e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2235e41f4b71Sopenharmony_ci 2236e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2237e41f4b71Sopenharmony_ci|-----------| ---------------------------------------------------- | 2238e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2239e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2240e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2241e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2242e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2243e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2244e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2245e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2246e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2247e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2248e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2249e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2250e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2251e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2252e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2253e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2254e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2255e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2256e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2257e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2258e41f4b71Sopenharmony_ci 2259e41f4b71Sopenharmony_ci**示例:** 2260e41f4b71Sopenharmony_ci 2261e41f4b71Sopenharmony_ci```ts 2262e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2263e41f4b71Sopenharmony_cilet value2 = 18; 2264e41f4b71Sopenharmony_cilet value3 = 100.5; 2265e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2266e41f4b71Sopenharmony_ci 2267e41f4b71Sopenharmony_ci// 以下三种方式可用 2268e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2269e41f4b71Sopenharmony_ci 'NAME': value1, 2270e41f4b71Sopenharmony_ci 'AGE': value2, 2271e41f4b71Sopenharmony_ci 'SALARY': value3, 2272e41f4b71Sopenharmony_ci 'CODES': value4, 2273e41f4b71Sopenharmony_ci}; 2274e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2275e41f4b71Sopenharmony_ci NAME: value1, 2276e41f4b71Sopenharmony_ci AGE: value2, 2277e41f4b71Sopenharmony_ci SALARY: value3, 2278e41f4b71Sopenharmony_ci CODES: value4, 2279e41f4b71Sopenharmony_ci}; 2280e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2281e41f4b71Sopenharmony_ci "NAME": value1, 2282e41f4b71Sopenharmony_ci "AGE": value2, 2283e41f4b71Sopenharmony_ci "SALARY": value3, 2284e41f4b71Sopenharmony_ci "CODES": value4, 2285e41f4b71Sopenharmony_ci}; 2286e41f4b71Sopenharmony_ci 2287e41f4b71Sopenharmony_ciif(store != undefined) { 2288e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert("EMPLOYEE", valueBucket1, relationalStore.ConflictResolution.ON_CONFLICT_REPLACE, 2289e41f4b71Sopenharmony_ci (err: BusinessError, rowId: number) => { 2290e41f4b71Sopenharmony_ci if (err) { 2291e41f4b71Sopenharmony_ci console.error(`Insert is failed, code is ${err.code},message is ${err.message}`); 2292e41f4b71Sopenharmony_ci return; 2293e41f4b71Sopenharmony_ci } 2294e41f4b71Sopenharmony_ci console.info(`Insert is successful, rowId = ${rowId}`); 2295e41f4b71Sopenharmony_ci }) 2296e41f4b71Sopenharmony_ci} 2297e41f4b71Sopenharmony_ci``` 2298e41f4b71Sopenharmony_ci 2299e41f4b71Sopenharmony_ci### insert 2300e41f4b71Sopenharmony_ci 2301e41f4b71Sopenharmony_ciinsert(table: string, values: ValuesBucket):Promise<number> 2302e41f4b71Sopenharmony_ci 2303e41f4b71Sopenharmony_ci向目标表中插入一行数据,使用Promise异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 2304e41f4b71Sopenharmony_ci 2305e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2306e41f4b71Sopenharmony_ci 2307e41f4b71Sopenharmony_ci**参数:** 2308e41f4b71Sopenharmony_ci 2309e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2310e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | -------------------------- | 2311e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2312e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 | 2313e41f4b71Sopenharmony_ci 2314e41f4b71Sopenharmony_ci**返回值**: 2315e41f4b71Sopenharmony_ci 2316e41f4b71Sopenharmony_ci| 类型 | 说明 | 2317e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------------- | 2318e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。如果操作成功,返回行ID;否则返回-1。 | 2319e41f4b71Sopenharmony_ci 2320e41f4b71Sopenharmony_ci**错误码:** 2321e41f4b71Sopenharmony_ci 2322e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2323e41f4b71Sopenharmony_ci 2324e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2325e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 2326e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2327e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2328e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2329e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2330e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2331e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2332e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2333e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2334e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2335e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2336e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2337e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2338e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2339e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2340e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2341e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2342e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2343e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2344e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2345e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2346e41f4b71Sopenharmony_ci 2347e41f4b71Sopenharmony_ci**示例:** 2348e41f4b71Sopenharmony_ci 2349e41f4b71Sopenharmony_ci```ts 2350e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2351e41f4b71Sopenharmony_ci 2352e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2353e41f4b71Sopenharmony_cilet value2 = 18; 2354e41f4b71Sopenharmony_cilet value3 = 100.5; 2355e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2356e41f4b71Sopenharmony_ci 2357e41f4b71Sopenharmony_ci// 以下三种方式可用 2358e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2359e41f4b71Sopenharmony_ci 'NAME': value1, 2360e41f4b71Sopenharmony_ci 'AGE': value2, 2361e41f4b71Sopenharmony_ci 'SALARY': value3, 2362e41f4b71Sopenharmony_ci 'CODES': value4, 2363e41f4b71Sopenharmony_ci}; 2364e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2365e41f4b71Sopenharmony_ci NAME: value1, 2366e41f4b71Sopenharmony_ci AGE: value2, 2367e41f4b71Sopenharmony_ci SALARY: value3, 2368e41f4b71Sopenharmony_ci CODES: value4, 2369e41f4b71Sopenharmony_ci}; 2370e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2371e41f4b71Sopenharmony_ci "NAME": value1, 2372e41f4b71Sopenharmony_ci "AGE": value2, 2373e41f4b71Sopenharmony_ci "SALARY": value3, 2374e41f4b71Sopenharmony_ci "CODES": value4, 2375e41f4b71Sopenharmony_ci}; 2376e41f4b71Sopenharmony_ci 2377e41f4b71Sopenharmony_ciif(store != undefined) { 2378e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert("EMPLOYEE", valueBucket1).then((rowId: number) => { 2379e41f4b71Sopenharmony_ci console.info(`Insert is successful, rowId = ${rowId}`); 2380e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2381e41f4b71Sopenharmony_ci console.error(`Insert is failed, code is ${err.code},message is ${err.message}`); 2382e41f4b71Sopenharmony_ci }) 2383e41f4b71Sopenharmony_ci} 2384e41f4b71Sopenharmony_ci``` 2385e41f4b71Sopenharmony_ci 2386e41f4b71Sopenharmony_ci### insert<sup>10+</sup> 2387e41f4b71Sopenharmony_ci 2388e41f4b71Sopenharmony_ciinsert(table: string, values: ValuesBucket, conflict: ConflictResolution):Promise<number> 2389e41f4b71Sopenharmony_ci 2390e41f4b71Sopenharmony_ci向目标表中插入一行数据,使用Promise异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 2391e41f4b71Sopenharmony_ci 2392e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2393e41f4b71Sopenharmony_ci 2394e41f4b71Sopenharmony_ci**参数:** 2395e41f4b71Sopenharmony_ci 2396e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2397e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | -------------------------- | 2398e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2399e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 | 2400e41f4b71Sopenharmony_ci| conflict | [ConflictResolution](#conflictresolution10) | 是 | 指定冲突解决模式。 | 2401e41f4b71Sopenharmony_ci 2402e41f4b71Sopenharmony_ci**返回值**: 2403e41f4b71Sopenharmony_ci 2404e41f4b71Sopenharmony_ci| 类型 | 说明 | 2405e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------------- | 2406e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。如果操作成功,返回行ID;否则返回-1。 | 2407e41f4b71Sopenharmony_ci 2408e41f4b71Sopenharmony_ci**错误码:** 2409e41f4b71Sopenharmony_ci 2410e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2411e41f4b71Sopenharmony_ci 2412e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2413e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 2414e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2415e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2416e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2417e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2418e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2419e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2420e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2421e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2422e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2423e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2424e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2425e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2426e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2427e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2428e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2429e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2430e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2431e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2432e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2433e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2434e41f4b71Sopenharmony_ci 2435e41f4b71Sopenharmony_ci**示例:** 2436e41f4b71Sopenharmony_ci 2437e41f4b71Sopenharmony_ci```ts 2438e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2439e41f4b71Sopenharmony_ci 2440e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2441e41f4b71Sopenharmony_cilet value2 = 18; 2442e41f4b71Sopenharmony_cilet value3 = 100.5; 2443e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2444e41f4b71Sopenharmony_ci 2445e41f4b71Sopenharmony_ci// 以下三种方式可用 2446e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2447e41f4b71Sopenharmony_ci 'NAME': value1, 2448e41f4b71Sopenharmony_ci 'AGE': value2, 2449e41f4b71Sopenharmony_ci 'SALARY': value3, 2450e41f4b71Sopenharmony_ci 'CODES': value4, 2451e41f4b71Sopenharmony_ci}; 2452e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2453e41f4b71Sopenharmony_ci NAME: value1, 2454e41f4b71Sopenharmony_ci AGE: value2, 2455e41f4b71Sopenharmony_ci SALARY: value3, 2456e41f4b71Sopenharmony_ci CODES: value4, 2457e41f4b71Sopenharmony_ci}; 2458e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2459e41f4b71Sopenharmony_ci "NAME": value1, 2460e41f4b71Sopenharmony_ci "AGE": value2, 2461e41f4b71Sopenharmony_ci "SALARY": value3, 2462e41f4b71Sopenharmony_ci "CODES": value4, 2463e41f4b71Sopenharmony_ci}; 2464e41f4b71Sopenharmony_ci 2465e41f4b71Sopenharmony_ciif(store != undefined) { 2466e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert("EMPLOYEE", valueBucket1, relationalStore.ConflictResolution.ON_CONFLICT_REPLACE).then((rowId: number) => { 2467e41f4b71Sopenharmony_ci console.info(`Insert is successful, rowId = ${rowId}`); 2468e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2469e41f4b71Sopenharmony_ci console.error(`Insert is failed, code is ${err.code},message is ${err.message}`); 2470e41f4b71Sopenharmony_ci }) 2471e41f4b71Sopenharmony_ci} 2472e41f4b71Sopenharmony_ci``` 2473e41f4b71Sopenharmony_ci 2474e41f4b71Sopenharmony_ci### insertSync<sup>12+</sup> 2475e41f4b71Sopenharmony_ci 2476e41f4b71Sopenharmony_ciinsertSync(table: string, values: ValuesBucket, conflict?: ConflictResolution):number 2477e41f4b71Sopenharmony_ci 2478e41f4b71Sopenharmony_ci向目标表中插入一行数据。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 2479e41f4b71Sopenharmony_ci 2480e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2481e41f4b71Sopenharmony_ci 2482e41f4b71Sopenharmony_ci**参数:** 2483e41f4b71Sopenharmony_ci 2484e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2485e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 2486e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2487e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 | 2488e41f4b71Sopenharmony_ci| conflict | [ConflictResolution](#conflictresolution10) | 否 | 指定冲突解决模式。默认值是relationalStore.ConflictResolution.ON_CONFLICT_NONE。 | 2489e41f4b71Sopenharmony_ci 2490e41f4b71Sopenharmony_ci**返回值**: 2491e41f4b71Sopenharmony_ci 2492e41f4b71Sopenharmony_ci| 类型 | 说明 | 2493e41f4b71Sopenharmony_ci| ------ | ------------------------------------ | 2494e41f4b71Sopenharmony_ci| number | 如果操作成功,返回行ID;否则返回-1。 | 2495e41f4b71Sopenharmony_ci 2496e41f4b71Sopenharmony_ci**错误码:** 2497e41f4b71Sopenharmony_ci 2498e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2499e41f4b71Sopenharmony_ci 2500e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2501e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 2502e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2503e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2504e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2505e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2506e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2507e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2508e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2509e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2510e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2511e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2512e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2513e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2514e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2515e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2516e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2517e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2518e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2519e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2520e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2521e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2522e41f4b71Sopenharmony_ci 2523e41f4b71Sopenharmony_ci**示例:** 2524e41f4b71Sopenharmony_ci 2525e41f4b71Sopenharmony_ci```ts 2526e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2527e41f4b71Sopenharmony_ci 2528e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2529e41f4b71Sopenharmony_cilet value2 = 18; 2530e41f4b71Sopenharmony_cilet value3 = 100.5; 2531e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2532e41f4b71Sopenharmony_ci 2533e41f4b71Sopenharmony_ci// 以下三种方式可用 2534e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2535e41f4b71Sopenharmony_ci 'NAME': value1, 2536e41f4b71Sopenharmony_ci 'AGE': value2, 2537e41f4b71Sopenharmony_ci 'SALARY': value3, 2538e41f4b71Sopenharmony_ci 'CODES': value4, 2539e41f4b71Sopenharmony_ci}; 2540e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2541e41f4b71Sopenharmony_ci NAME: value1, 2542e41f4b71Sopenharmony_ci AGE: value2, 2543e41f4b71Sopenharmony_ci SALARY: value3, 2544e41f4b71Sopenharmony_ci CODES: value4, 2545e41f4b71Sopenharmony_ci}; 2546e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2547e41f4b71Sopenharmony_ci "NAME": value1, 2548e41f4b71Sopenharmony_ci "AGE": value2, 2549e41f4b71Sopenharmony_ci "SALARY": value3, 2550e41f4b71Sopenharmony_ci "CODES": value4, 2551e41f4b71Sopenharmony_ci}; 2552e41f4b71Sopenharmony_ci 2553e41f4b71Sopenharmony_ciif(store != undefined) { 2554e41f4b71Sopenharmony_ci try { 2555e41f4b71Sopenharmony_ci let rowId : number = (store as relationalStore.RdbStore).insertSync("EMPLOYEE", valueBucket1, relationalStore.ConflictResolution.ON_CONFLICT_REPLACE); 2556e41f4b71Sopenharmony_ci console.info(`Insert is successful, rowId = ${rowId}`); 2557e41f4b71Sopenharmony_ci } catch (error) { 2558e41f4b71Sopenharmony_ci console.error(`Insert is failed, code is ${error.code},message is ${error.message}`); 2559e41f4b71Sopenharmony_ci } 2560e41f4b71Sopenharmony_ci} 2561e41f4b71Sopenharmony_ci``` 2562e41f4b71Sopenharmony_ci 2563e41f4b71Sopenharmony_ci### insertSync<sup>12+</sup> 2564e41f4b71Sopenharmony_ci 2565e41f4b71Sopenharmony_ciinsertSync(table: string, values: sendableRelationalStore.ValuesBucket, conflict?: ConflictResolution):number 2566e41f4b71Sopenharmony_ci 2567e41f4b71Sopenharmony_ci传入Sendable数据,向目标表中插入一行数据。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 2568e41f4b71Sopenharmony_ci 2569e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2570e41f4b71Sopenharmony_ci 2571e41f4b71Sopenharmony_ci**参数:** 2572e41f4b71Sopenharmony_ci 2573e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2574e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------------- | 2575e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2576e41f4b71Sopenharmony_ci| values | [sendableRelationalStore.ValuesBucket](./js-apis-data-sendableRelationalStore.md#valuesbucket) | 是 | 表示要插入到表中的可跨线程传递数据。 | 2577e41f4b71Sopenharmony_ci| conflict | [ConflictResolution](#conflictresolution10) | 否 | 指定冲突解决模式。默认值是relationalStore.ConflictResolution.ON_CONFLICT_NONE。 | 2578e41f4b71Sopenharmony_ci 2579e41f4b71Sopenharmony_ci**返回值**: 2580e41f4b71Sopenharmony_ci 2581e41f4b71Sopenharmony_ci| 类型 | 说明 | 2582e41f4b71Sopenharmony_ci| ------ | ------------------------------------ | 2583e41f4b71Sopenharmony_ci| number | 如果操作成功,返回行ID;否则返回-1。 | 2584e41f4b71Sopenharmony_ci 2585e41f4b71Sopenharmony_ci**错误码:** 2586e41f4b71Sopenharmony_ci 2587e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2588e41f4b71Sopenharmony_ci 2589e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2590e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 2591e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2592e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2593e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2594e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2595e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2596e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2597e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2598e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2599e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2600e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2601e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2602e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2603e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2604e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2605e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2606e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2607e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2608e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2609e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2610e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2611e41f4b71Sopenharmony_ci 2612e41f4b71Sopenharmony_ci**示例:** 2613e41f4b71Sopenharmony_ci 2614e41f4b71Sopenharmony_ci```ts 2615e41f4b71Sopenharmony_ciimport { sendableRelationalStore } from '@kit.ArkData'; 2616e41f4b71Sopenharmony_ci 2617e41f4b71Sopenharmony_ciconst valuesBucket: relationalStore.ValuesBucket = { 2618e41f4b71Sopenharmony_ci "NAME": 'hangman', 2619e41f4b71Sopenharmony_ci "AGE": 18, 2620e41f4b71Sopenharmony_ci "SALARY": 100.5, 2621e41f4b71Sopenharmony_ci "CODES": new Uint8Array([1,2,3]), 2622e41f4b71Sopenharmony_ci}; 2623e41f4b71Sopenharmony_ciconst sendableValuesBucket = sendableRelationalStore.toSendableValuesBucket(valuesBucket); 2624e41f4b71Sopenharmony_ci 2625e41f4b71Sopenharmony_ciif(store != undefined) { 2626e41f4b71Sopenharmony_ci try { 2627e41f4b71Sopenharmony_ci let rowId : number = (store as relationalStore.RdbStore).insertSync("EMPLOYEE", sendableValuesBucket, relationalStore.ConflictResolution.ON_CONFLICT_REPLACE); 2628e41f4b71Sopenharmony_ci console.info(`Insert is successful, rowId = ${rowId}`); 2629e41f4b71Sopenharmony_ci } catch (error) { 2630e41f4b71Sopenharmony_ci console.error(`Insert is failed, code is ${error.code},message is ${error.message}`); 2631e41f4b71Sopenharmony_ci } 2632e41f4b71Sopenharmony_ci} 2633e41f4b71Sopenharmony_ci``` 2634e41f4b71Sopenharmony_ci 2635e41f4b71Sopenharmony_ci### batchInsert 2636e41f4b71Sopenharmony_ci 2637e41f4b71Sopenharmony_cibatchInsert(table: string, values: Array<ValuesBucket>, callback: AsyncCallback<number>):void 2638e41f4b71Sopenharmony_ci 2639e41f4b71Sopenharmony_ci向目标表中插入一组数据,使用callback异步回调。 2640e41f4b71Sopenharmony_ci 2641e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2642e41f4b71Sopenharmony_ci 2643e41f4b71Sopenharmony_ci**参数:** 2644e41f4b71Sopenharmony_ci 2645e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2646e41f4b71Sopenharmony_ci| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | 2647e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2648e41f4b71Sopenharmony_ci| values | Array<[ValuesBucket](#valuesbucket)> | 是 | 表示要插入到表中的一组数据。 | 2649e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 指定callback回调函数。如果操作成功,返回插入的数据个数,否则返回-1。 | 2650e41f4b71Sopenharmony_ci 2651e41f4b71Sopenharmony_ci**错误码:** 2652e41f4b71Sopenharmony_ci 2653e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2654e41f4b71Sopenharmony_ci 2655e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2656e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 2657e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2658e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2659e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2660e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2661e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2662e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2663e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2664e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2665e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2666e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2667e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2668e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2669e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2670e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2671e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2672e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2673e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2674e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2675e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2676e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2677e41f4b71Sopenharmony_ci 2678e41f4b71Sopenharmony_ci**示例:** 2679e41f4b71Sopenharmony_ci 2680e41f4b71Sopenharmony_ci```ts 2681e41f4b71Sopenharmony_ci 2682e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2683e41f4b71Sopenharmony_cilet value2 = 18; 2684e41f4b71Sopenharmony_cilet value3 = 100.5; 2685e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2686e41f4b71Sopenharmony_cilet value5 = "Jack"; 2687e41f4b71Sopenharmony_cilet value6 = 19; 2688e41f4b71Sopenharmony_cilet value7 = 101.5; 2689e41f4b71Sopenharmony_cilet value8 = new Uint8Array([6, 7, 8, 9, 10]); 2690e41f4b71Sopenharmony_cilet value9 = "Tom"; 2691e41f4b71Sopenharmony_cilet value10 = 20; 2692e41f4b71Sopenharmony_cilet value11 = 102.5; 2693e41f4b71Sopenharmony_cilet value12 = new Uint8Array([11, 12, 13, 14, 15]); 2694e41f4b71Sopenharmony_ci 2695e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2696e41f4b71Sopenharmony_ci 'NAME': value1, 2697e41f4b71Sopenharmony_ci 'AGE': value2, 2698e41f4b71Sopenharmony_ci 'SALARY': value3, 2699e41f4b71Sopenharmony_ci 'CODES': value4, 2700e41f4b71Sopenharmony_ci}; 2701e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2702e41f4b71Sopenharmony_ci 'NAME': value5, 2703e41f4b71Sopenharmony_ci 'AGE': value6, 2704e41f4b71Sopenharmony_ci 'SALARY': value7, 2705e41f4b71Sopenharmony_ci 'CODES': value8, 2706e41f4b71Sopenharmony_ci}; 2707e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2708e41f4b71Sopenharmony_ci 'NAME': value9, 2709e41f4b71Sopenharmony_ci 'AGE': value10, 2710e41f4b71Sopenharmony_ci 'SALARY': value11, 2711e41f4b71Sopenharmony_ci 'CODES': value12, 2712e41f4b71Sopenharmony_ci}; 2713e41f4b71Sopenharmony_ci 2714e41f4b71Sopenharmony_cilet valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3); 2715e41f4b71Sopenharmony_ciif(store != undefined) { 2716e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).batchInsert("EMPLOYEE", valueBuckets, (err, insertNum) => { 2717e41f4b71Sopenharmony_ci if (err) { 2718e41f4b71Sopenharmony_ci console.error(`batchInsert is failed, code is ${err.code},message is ${err.message}`); 2719e41f4b71Sopenharmony_ci return; 2720e41f4b71Sopenharmony_ci } 2721e41f4b71Sopenharmony_ci console.info(`batchInsert is successful, the number of values that were inserted = ${insertNum}`); 2722e41f4b71Sopenharmony_ci }) 2723e41f4b71Sopenharmony_ci} 2724e41f4b71Sopenharmony_ci``` 2725e41f4b71Sopenharmony_ci 2726e41f4b71Sopenharmony_ci### batchInsert 2727e41f4b71Sopenharmony_ci 2728e41f4b71Sopenharmony_cibatchInsert(table: string, values: Array<ValuesBucket>):Promise<number> 2729e41f4b71Sopenharmony_ci 2730e41f4b71Sopenharmony_ci向目标表中插入一组数据,使用Promise异步回调。 2731e41f4b71Sopenharmony_ci 2732e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2733e41f4b71Sopenharmony_ci 2734e41f4b71Sopenharmony_ci**参数:** 2735e41f4b71Sopenharmony_ci 2736e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2737e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ---------------------------- | 2738e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2739e41f4b71Sopenharmony_ci| values | Array<[ValuesBucket](#valuesbucket)> | 是 | 表示要插入到表中的一组数据。 | 2740e41f4b71Sopenharmony_ci 2741e41f4b71Sopenharmony_ci**返回值**: 2742e41f4b71Sopenharmony_ci 2743e41f4b71Sopenharmony_ci| 类型 | 说明 | 2744e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------------------------------- | 2745e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。如果操作成功,返回插入的数据个数,否则返回-1。 | 2746e41f4b71Sopenharmony_ci 2747e41f4b71Sopenharmony_ci**错误码:** 2748e41f4b71Sopenharmony_ci 2749e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2750e41f4b71Sopenharmony_ci 2751e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2752e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 2753e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2754e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2755e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2756e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2757e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2758e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2759e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2760e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2761e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2762e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2763e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2764e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2765e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2766e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2767e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2768e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2769e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2770e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2771e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2772e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2773e41f4b71Sopenharmony_ci 2774e41f4b71Sopenharmony_ci**示例:** 2775e41f4b71Sopenharmony_ci 2776e41f4b71Sopenharmony_ci```ts 2777e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2778e41f4b71Sopenharmony_ci 2779e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2780e41f4b71Sopenharmony_cilet value2 = 18; 2781e41f4b71Sopenharmony_cilet value3 = 100.5; 2782e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2783e41f4b71Sopenharmony_cilet value5 = "Jack"; 2784e41f4b71Sopenharmony_cilet value6 = 19; 2785e41f4b71Sopenharmony_cilet value7 = 101.5; 2786e41f4b71Sopenharmony_cilet value8 = new Uint8Array([6, 7, 8, 9, 10]); 2787e41f4b71Sopenharmony_cilet value9 = "Tom"; 2788e41f4b71Sopenharmony_cilet value10 = 20; 2789e41f4b71Sopenharmony_cilet value11 = 102.5; 2790e41f4b71Sopenharmony_cilet value12 = new Uint8Array([11, 12, 13, 14, 15]); 2791e41f4b71Sopenharmony_ci 2792e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2793e41f4b71Sopenharmony_ci 'NAME': value1, 2794e41f4b71Sopenharmony_ci 'AGE': value2, 2795e41f4b71Sopenharmony_ci 'SALARY': value3, 2796e41f4b71Sopenharmony_ci 'CODES': value4, 2797e41f4b71Sopenharmony_ci}; 2798e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2799e41f4b71Sopenharmony_ci 'NAME': value5, 2800e41f4b71Sopenharmony_ci 'AGE': value6, 2801e41f4b71Sopenharmony_ci 'SALARY': value7, 2802e41f4b71Sopenharmony_ci 'CODES': value8, 2803e41f4b71Sopenharmony_ci}; 2804e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2805e41f4b71Sopenharmony_ci 'NAME': value9, 2806e41f4b71Sopenharmony_ci 'AGE': value10, 2807e41f4b71Sopenharmony_ci 'SALARY': value11, 2808e41f4b71Sopenharmony_ci 'CODES': value12, 2809e41f4b71Sopenharmony_ci}; 2810e41f4b71Sopenharmony_ci 2811e41f4b71Sopenharmony_cilet valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3); 2812e41f4b71Sopenharmony_ciif(store != undefined) { 2813e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).batchInsert("EMPLOYEE", valueBuckets).then((insertNum: number) => { 2814e41f4b71Sopenharmony_ci console.info(`batchInsert is successful, the number of values that were inserted = ${insertNum}`); 2815e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2816e41f4b71Sopenharmony_ci console.error(`batchInsert is failed, code is ${err.code},message is ${err.message}`); 2817e41f4b71Sopenharmony_ci }) 2818e41f4b71Sopenharmony_ci} 2819e41f4b71Sopenharmony_ci``` 2820e41f4b71Sopenharmony_ci 2821e41f4b71Sopenharmony_ci### batchInsertSync<sup>12+</sup> 2822e41f4b71Sopenharmony_ci 2823e41f4b71Sopenharmony_cibatchInsertSync(table: string, values: Array<ValuesBucket>):number 2824e41f4b71Sopenharmony_ci 2825e41f4b71Sopenharmony_ci向目标表中插入一组数据。 2826e41f4b71Sopenharmony_ci 2827e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2828e41f4b71Sopenharmony_ci 2829e41f4b71Sopenharmony_ci**参数:** 2830e41f4b71Sopenharmony_ci 2831e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2832e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ---------------------------- | 2833e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 2834e41f4b71Sopenharmony_ci| values | Array<[ValuesBucket](#valuesbucket)> | 是 | 表示要插入到表中的一组数据。 | 2835e41f4b71Sopenharmony_ci 2836e41f4b71Sopenharmony_ci**返回值**: 2837e41f4b71Sopenharmony_ci 2838e41f4b71Sopenharmony_ci| 类型 | 说明 | 2839e41f4b71Sopenharmony_ci| ------ | ---------------------------------------------- | 2840e41f4b71Sopenharmony_ci| number | 如果操作成功,返回插入的数据个数,否则返回-1。 | 2841e41f4b71Sopenharmony_ci 2842e41f4b71Sopenharmony_ci**错误码:** 2843e41f4b71Sopenharmony_ci 2844e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2845e41f4b71Sopenharmony_ci 2846e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2847e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 2848e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2849e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2850e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2851e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2852e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2853e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2854e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2855e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2856e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2857e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2858e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2859e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2860e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2861e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2862e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2863e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2864e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2865e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2866e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2867e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2868e41f4b71Sopenharmony_ci 2869e41f4b71Sopenharmony_ci**示例:** 2870e41f4b71Sopenharmony_ci 2871e41f4b71Sopenharmony_ci```ts 2872e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2873e41f4b71Sopenharmony_ci 2874e41f4b71Sopenharmony_cilet value1 = "Lisa"; 2875e41f4b71Sopenharmony_cilet value2 = 18; 2876e41f4b71Sopenharmony_cilet value3 = 100.5; 2877e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2878e41f4b71Sopenharmony_cilet value5 = "Jack"; 2879e41f4b71Sopenharmony_cilet value6 = 19; 2880e41f4b71Sopenharmony_cilet value7 = 101.5; 2881e41f4b71Sopenharmony_cilet value8 = new Uint8Array([6, 7, 8, 9, 10]); 2882e41f4b71Sopenharmony_cilet value9 = "Tom"; 2883e41f4b71Sopenharmony_cilet value10 = 20; 2884e41f4b71Sopenharmony_cilet value11 = 102.5; 2885e41f4b71Sopenharmony_cilet value12 = new Uint8Array([11, 12, 13, 14, 15]); 2886e41f4b71Sopenharmony_ci 2887e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2888e41f4b71Sopenharmony_ci 'NAME': value1, 2889e41f4b71Sopenharmony_ci 'AGE': value2, 2890e41f4b71Sopenharmony_ci 'SALARY': value3, 2891e41f4b71Sopenharmony_ci 'CODES': value4, 2892e41f4b71Sopenharmony_ci}; 2893e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2894e41f4b71Sopenharmony_ci 'NAME': value5, 2895e41f4b71Sopenharmony_ci 'AGE': value6, 2896e41f4b71Sopenharmony_ci 'SALARY': value7, 2897e41f4b71Sopenharmony_ci 'CODES': value8, 2898e41f4b71Sopenharmony_ci}; 2899e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2900e41f4b71Sopenharmony_ci 'NAME': value9, 2901e41f4b71Sopenharmony_ci 'AGE': value10, 2902e41f4b71Sopenharmony_ci 'SALARY': value11, 2903e41f4b71Sopenharmony_ci 'CODES': value12, 2904e41f4b71Sopenharmony_ci}; 2905e41f4b71Sopenharmony_ci 2906e41f4b71Sopenharmony_cilet valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3); 2907e41f4b71Sopenharmony_ciif(store != undefined) { 2908e41f4b71Sopenharmony_ci try { 2909e41f4b71Sopenharmony_ci let insertNum: number = (store as relationalStore.RdbStore).batchInsertSync("EMPLOYEE", valueBuckets); 2910e41f4b71Sopenharmony_ci console.info(`batchInsert is successful, the number of values that were inserted = ${insertNum}`); 2911e41f4b71Sopenharmony_ci } catch (err) { 2912e41f4b71Sopenharmony_ci console.error(`batchInsert is failed, code is ${err.code},message is ${err.message}`); 2913e41f4b71Sopenharmony_ci } 2914e41f4b71Sopenharmony_ci} 2915e41f4b71Sopenharmony_ci``` 2916e41f4b71Sopenharmony_ci 2917e41f4b71Sopenharmony_ci### update 2918e41f4b71Sopenharmony_ci 2919e41f4b71Sopenharmony_ciupdate(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback<number>):void 2920e41f4b71Sopenharmony_ci 2921e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象更新数据库中的数据,使用callback异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 2922e41f4b71Sopenharmony_ci 2923e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 2924e41f4b71Sopenharmony_ci 2925e41f4b71Sopenharmony_ci**参数:** 2926e41f4b71Sopenharmony_ci 2927e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2928e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 2929e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 | 2930e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 | 2931e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 指定的callback回调方法。返回受影响的行数。 | 2932e41f4b71Sopenharmony_ci 2933e41f4b71Sopenharmony_ci**错误码:** 2934e41f4b71Sopenharmony_ci 2935e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 2936e41f4b71Sopenharmony_ci 2937e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 2938e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 2939e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2940e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 2941e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 2942e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 2943e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 2944e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 2945e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 2946e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 2947e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 2948e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 2949e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 2950e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 2951e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 2952e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 2953e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 2954e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 2955e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 2956e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 2957e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 2958e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 2959e41f4b71Sopenharmony_ci 2960e41f4b71Sopenharmony_ci**示例:** 2961e41f4b71Sopenharmony_ci 2962e41f4b71Sopenharmony_ci```ts 2963e41f4b71Sopenharmony_ci 2964e41f4b71Sopenharmony_cilet value1 = "Rose"; 2965e41f4b71Sopenharmony_cilet value2 = 22; 2966e41f4b71Sopenharmony_cilet value3 = 200.5; 2967e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 2968e41f4b71Sopenharmony_ci 2969e41f4b71Sopenharmony_ci// 以下三种方式可用 2970e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 2971e41f4b71Sopenharmony_ci 'NAME': value1, 2972e41f4b71Sopenharmony_ci 'AGE': value2, 2973e41f4b71Sopenharmony_ci 'SALARY': value3, 2974e41f4b71Sopenharmony_ci 'CODES': value4, 2975e41f4b71Sopenharmony_ci}; 2976e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 2977e41f4b71Sopenharmony_ci NAME: value1, 2978e41f4b71Sopenharmony_ci AGE: value2, 2979e41f4b71Sopenharmony_ci SALARY: value3, 2980e41f4b71Sopenharmony_ci CODES: value4, 2981e41f4b71Sopenharmony_ci}; 2982e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 2983e41f4b71Sopenharmony_ci "NAME": value1, 2984e41f4b71Sopenharmony_ci "AGE": value2, 2985e41f4b71Sopenharmony_ci "SALARY": value3, 2986e41f4b71Sopenharmony_ci "CODES": value4, 2987e41f4b71Sopenharmony_ci}; 2988e41f4b71Sopenharmony_ci 2989e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 2990e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 2991e41f4b71Sopenharmony_ciif(store != undefined) { 2992e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).update(valueBucket1, predicates,(err, rows) => { 2993e41f4b71Sopenharmony_ci if (err) { 2994e41f4b71Sopenharmony_ci console.error(`Updated failed, code is ${err.code},message is ${err.message}`); 2995e41f4b71Sopenharmony_ci return; 2996e41f4b71Sopenharmony_ci } 2997e41f4b71Sopenharmony_ci console.info(`Updated row count: ${rows}`); 2998e41f4b71Sopenharmony_ci }) 2999e41f4b71Sopenharmony_ci} 3000e41f4b71Sopenharmony_ci``` 3001e41f4b71Sopenharmony_ci 3002e41f4b71Sopenharmony_ci### update<sup>10+</sup> 3003e41f4b71Sopenharmony_ci 3004e41f4b71Sopenharmony_ciupdate(values: ValuesBucket, predicates: RdbPredicates, conflict: ConflictResolution, callback: AsyncCallback<number>):void 3005e41f4b71Sopenharmony_ci 3006e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象更新数据库中的数据,使用callback异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 3007e41f4b71Sopenharmony_ci 3008e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3009e41f4b71Sopenharmony_ci 3010e41f4b71Sopenharmony_ci**参数:** 3011e41f4b71Sopenharmony_ci 3012e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3013e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 3014e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 | 3015e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 | 3016e41f4b71Sopenharmony_ci| conflict | [ConflictResolution](#conflictresolution10) | 是 | 指定冲突解决模式。 | 3017e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 指定的callback回调方法。返回受影响的行数。 | 3018e41f4b71Sopenharmony_ci 3019e41f4b71Sopenharmony_ci**错误码:** 3020e41f4b71Sopenharmony_ci 3021e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 3022e41f4b71Sopenharmony_ci 3023e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3024e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3025e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3026e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3027e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 3028e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3029e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3030e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 3031e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 3032e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 3033e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 3034e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 3035e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 3036e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 3037e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 3038e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 3039e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 3040e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 3041e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 3042e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 3043e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 3044e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 3045e41f4b71Sopenharmony_ci 3046e41f4b71Sopenharmony_ci**示例:** 3047e41f4b71Sopenharmony_ci 3048e41f4b71Sopenharmony_ci```ts 3049e41f4b71Sopenharmony_ci 3050e41f4b71Sopenharmony_cilet value1 = "Rose"; 3051e41f4b71Sopenharmony_cilet value2 = 22; 3052e41f4b71Sopenharmony_cilet value3 = 200.5; 3053e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 3054e41f4b71Sopenharmony_ci 3055e41f4b71Sopenharmony_ci// 以下三种方式可用 3056e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 3057e41f4b71Sopenharmony_ci 'NAME': value1, 3058e41f4b71Sopenharmony_ci 'AGE': value2, 3059e41f4b71Sopenharmony_ci 'SALARY': value3, 3060e41f4b71Sopenharmony_ci 'CODES': value4, 3061e41f4b71Sopenharmony_ci}; 3062e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 3063e41f4b71Sopenharmony_ci NAME: value1, 3064e41f4b71Sopenharmony_ci AGE: value2, 3065e41f4b71Sopenharmony_ci SALARY: value3, 3066e41f4b71Sopenharmony_ci CODES: value4, 3067e41f4b71Sopenharmony_ci}; 3068e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 3069e41f4b71Sopenharmony_ci "NAME": value1, 3070e41f4b71Sopenharmony_ci "AGE": value2, 3071e41f4b71Sopenharmony_ci "SALARY": value3, 3072e41f4b71Sopenharmony_ci "CODES": value4, 3073e41f4b71Sopenharmony_ci}; 3074e41f4b71Sopenharmony_ci 3075e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3076e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 3077e41f4b71Sopenharmony_ciif(store != undefined) { 3078e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).update(valueBucket1, predicates, relationalStore.ConflictResolution.ON_CONFLICT_REPLACE, (err, rows) => { 3079e41f4b71Sopenharmony_ci if (err) { 3080e41f4b71Sopenharmony_ci console.error(`Updated failed, code is ${err.code},message is ${err.message}`); 3081e41f4b71Sopenharmony_ci return; 3082e41f4b71Sopenharmony_ci } 3083e41f4b71Sopenharmony_ci console.info(`Updated row count: ${rows}`); 3084e41f4b71Sopenharmony_ci }) 3085e41f4b71Sopenharmony_ci} 3086e41f4b71Sopenharmony_ci``` 3087e41f4b71Sopenharmony_ci 3088e41f4b71Sopenharmony_ci### update 3089e41f4b71Sopenharmony_ci 3090e41f4b71Sopenharmony_ciupdate(values: ValuesBucket, predicates: RdbPredicates):Promise<number> 3091e41f4b71Sopenharmony_ci 3092e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 3093e41f4b71Sopenharmony_ci 3094e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3095e41f4b71Sopenharmony_ci 3096e41f4b71Sopenharmony_ci**参数:** 3097e41f4b71Sopenharmony_ci 3098e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3099e41f4b71Sopenharmony_ci| ------------ | ------------------------------------ | ---- | ------------------------------------------------------------ | 3100e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 | 3101e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 | 3102e41f4b71Sopenharmony_ci 3103e41f4b71Sopenharmony_ci**返回值**: 3104e41f4b71Sopenharmony_ci 3105e41f4b71Sopenharmony_ci| 类型 | 说明 | 3106e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------------- | 3107e41f4b71Sopenharmony_ci| Promise<number> | 指定的Promise回调方法。返回受影响的行数。 | 3108e41f4b71Sopenharmony_ci 3109e41f4b71Sopenharmony_ci**错误码:** 3110e41f4b71Sopenharmony_ci 3111e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 3112e41f4b71Sopenharmony_ci 3113e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3114e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3115e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3116e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3117e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 3118e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3119e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3120e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 3121e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 3122e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 3123e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 3124e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 3125e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 3126e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 3127e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 3128e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 3129e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 3130e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 3131e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 3132e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 3133e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 3134e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 3135e41f4b71Sopenharmony_ci 3136e41f4b71Sopenharmony_ci**示例:** 3137e41f4b71Sopenharmony_ci 3138e41f4b71Sopenharmony_ci```ts 3139e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3140e41f4b71Sopenharmony_ci 3141e41f4b71Sopenharmony_cilet value1 = "Rose"; 3142e41f4b71Sopenharmony_cilet value2 = 22; 3143e41f4b71Sopenharmony_cilet value3 = 200.5; 3144e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 3145e41f4b71Sopenharmony_ci 3146e41f4b71Sopenharmony_ci// 以下三种方式可用 3147e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 3148e41f4b71Sopenharmony_ci 'NAME': value1, 3149e41f4b71Sopenharmony_ci 'AGE': value2, 3150e41f4b71Sopenharmony_ci 'SALARY': value3, 3151e41f4b71Sopenharmony_ci 'CODES': value4, 3152e41f4b71Sopenharmony_ci}; 3153e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 3154e41f4b71Sopenharmony_ci NAME: value1, 3155e41f4b71Sopenharmony_ci AGE: value2, 3156e41f4b71Sopenharmony_ci SALARY: value3, 3157e41f4b71Sopenharmony_ci CODES: value4, 3158e41f4b71Sopenharmony_ci}; 3159e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 3160e41f4b71Sopenharmony_ci "NAME": value1, 3161e41f4b71Sopenharmony_ci "AGE": value2, 3162e41f4b71Sopenharmony_ci "SALARY": value3, 3163e41f4b71Sopenharmony_ci "CODES": value4, 3164e41f4b71Sopenharmony_ci}; 3165e41f4b71Sopenharmony_ci 3166e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3167e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 3168e41f4b71Sopenharmony_ciif(store != undefined) { 3169e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).update(valueBucket1, predicates).then(async (rows: Number) => { 3170e41f4b71Sopenharmony_ci console.info(`Updated row count: ${rows}`); 3171e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3172e41f4b71Sopenharmony_ci console.error(`Updated failed, code is ${err.code},message is ${err.message}`); 3173e41f4b71Sopenharmony_ci }) 3174e41f4b71Sopenharmony_ci} 3175e41f4b71Sopenharmony_ci``` 3176e41f4b71Sopenharmony_ci 3177e41f4b71Sopenharmony_ci### update<sup>10+</sup> 3178e41f4b71Sopenharmony_ci 3179e41f4b71Sopenharmony_ciupdate(values: ValuesBucket, predicates: RdbPredicates, conflict: ConflictResolution):Promise<number> 3180e41f4b71Sopenharmony_ci 3181e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 3182e41f4b71Sopenharmony_ci 3183e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3184e41f4b71Sopenharmony_ci 3185e41f4b71Sopenharmony_ci**参数:** 3186e41f4b71Sopenharmony_ci 3187e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3188e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 3189e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 | 3190e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 | 3191e41f4b71Sopenharmony_ci| conflict | [ConflictResolution](#conflictresolution10) | 是 | 指定冲突解决模式。 | 3192e41f4b71Sopenharmony_ci 3193e41f4b71Sopenharmony_ci**返回值**: 3194e41f4b71Sopenharmony_ci 3195e41f4b71Sopenharmony_ci| 类型 | 说明 | 3196e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------------- | 3197e41f4b71Sopenharmony_ci| Promise<number> | 指定的Promise回调方法。返回受影响的行数。 | 3198e41f4b71Sopenharmony_ci 3199e41f4b71Sopenharmony_ci**错误码:** 3200e41f4b71Sopenharmony_ci 3201e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 3202e41f4b71Sopenharmony_ci 3203e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3204e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3205e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3206e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3207e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 3208e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3209e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3210e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 3211e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 3212e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 3213e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 3214e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 3215e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 3216e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 3217e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 3218e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 3219e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 3220e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 3221e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 3222e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 3223e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 3224e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 3225e41f4b71Sopenharmony_ci 3226e41f4b71Sopenharmony_ci**示例:** 3227e41f4b71Sopenharmony_ci 3228e41f4b71Sopenharmony_ci```ts 3229e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3230e41f4b71Sopenharmony_ci 3231e41f4b71Sopenharmony_cilet value1 = "Rose"; 3232e41f4b71Sopenharmony_cilet value2 = 22; 3233e41f4b71Sopenharmony_cilet value3 = 200.5; 3234e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 3235e41f4b71Sopenharmony_ci 3236e41f4b71Sopenharmony_ci// 以下三种方式可用 3237e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 3238e41f4b71Sopenharmony_ci 'NAME': value1, 3239e41f4b71Sopenharmony_ci 'AGE': value2, 3240e41f4b71Sopenharmony_ci 'SALARY': value3, 3241e41f4b71Sopenharmony_ci 'CODES': value4, 3242e41f4b71Sopenharmony_ci}; 3243e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 3244e41f4b71Sopenharmony_ci NAME: value1, 3245e41f4b71Sopenharmony_ci AGE: value2, 3246e41f4b71Sopenharmony_ci SALARY: value3, 3247e41f4b71Sopenharmony_ci CODES: value4, 3248e41f4b71Sopenharmony_ci}; 3249e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 3250e41f4b71Sopenharmony_ci "NAME": value1, 3251e41f4b71Sopenharmony_ci "AGE": value2, 3252e41f4b71Sopenharmony_ci "SALARY": value3, 3253e41f4b71Sopenharmony_ci "CODES": value4, 3254e41f4b71Sopenharmony_ci}; 3255e41f4b71Sopenharmony_ci 3256e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3257e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 3258e41f4b71Sopenharmony_ciif(store != undefined) { 3259e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).update(valueBucket1, predicates, relationalStore.ConflictResolution.ON_CONFLICT_REPLACE).then(async (rows: Number) => { 3260e41f4b71Sopenharmony_ci console.info(`Updated row count: ${rows}`); 3261e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3262e41f4b71Sopenharmony_ci console.error(`Updated failed, code is ${err.code},message is ${err.message}`); 3263e41f4b71Sopenharmony_ci }) 3264e41f4b71Sopenharmony_ci} 3265e41f4b71Sopenharmony_ci``` 3266e41f4b71Sopenharmony_ci 3267e41f4b71Sopenharmony_ci### updateSync<sup>12+</sup> 3268e41f4b71Sopenharmony_ci 3269e41f4b71Sopenharmony_ciupdateSync(values: ValuesBucket, predicates: RdbPredicates, conflict?: ConflictResolution):number 3270e41f4b71Sopenharmony_ci 3271e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象更新数据库中的数据。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 3272e41f4b71Sopenharmony_ci 3273e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3274e41f4b71Sopenharmony_ci 3275e41f4b71Sopenharmony_ci**参数:** 3276e41f4b71Sopenharmony_ci 3277e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3278e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 3279e41f4b71Sopenharmony_ci| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 | 3280e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 | 3281e41f4b71Sopenharmony_ci| conflict | [ConflictResolution](#conflictresolution10) | 否 | 指定冲突解决模式。默认值是relationalStore.ConflictResolution.ON_CONFLICT_NONE。 | 3282e41f4b71Sopenharmony_ci 3283e41f4b71Sopenharmony_ci**返回值**: 3284e41f4b71Sopenharmony_ci 3285e41f4b71Sopenharmony_ci| 类型 | 说明 | 3286e41f4b71Sopenharmony_ci| ------ | ------------------ | 3287e41f4b71Sopenharmony_ci| number | 返回受影响的行数。 | 3288e41f4b71Sopenharmony_ci 3289e41f4b71Sopenharmony_ci**错误码:** 3290e41f4b71Sopenharmony_ci 3291e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 3292e41f4b71Sopenharmony_ci 3293e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3294e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 3295e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3296e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3297e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 3298e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3299e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3300e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 3301e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 3302e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 3303e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 3304e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 3305e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 3306e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 3307e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 3308e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 3309e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 3310e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 3311e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 3312e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 3313e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 3314e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 3315e41f4b71Sopenharmony_ci 3316e41f4b71Sopenharmony_ci**示例:** 3317e41f4b71Sopenharmony_ci 3318e41f4b71Sopenharmony_ci```ts 3319e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3320e41f4b71Sopenharmony_ci 3321e41f4b71Sopenharmony_cilet value1 = "Rose"; 3322e41f4b71Sopenharmony_cilet value2 = 22; 3323e41f4b71Sopenharmony_cilet value3 = 200.5; 3324e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3, 4, 5]); 3325e41f4b71Sopenharmony_ci 3326e41f4b71Sopenharmony_ci// 以下三种方式可用 3327e41f4b71Sopenharmony_ciconst valueBucket1: relationalStore.ValuesBucket = { 3328e41f4b71Sopenharmony_ci 'NAME': value1, 3329e41f4b71Sopenharmony_ci 'AGE': value2, 3330e41f4b71Sopenharmony_ci 'SALARY': value3, 3331e41f4b71Sopenharmony_ci 'CODES': value4, 3332e41f4b71Sopenharmony_ci}; 3333e41f4b71Sopenharmony_ciconst valueBucket2: relationalStore.ValuesBucket = { 3334e41f4b71Sopenharmony_ci NAME: value1, 3335e41f4b71Sopenharmony_ci AGE: value2, 3336e41f4b71Sopenharmony_ci SALARY: value3, 3337e41f4b71Sopenharmony_ci CODES: value4, 3338e41f4b71Sopenharmony_ci}; 3339e41f4b71Sopenharmony_ciconst valueBucket3: relationalStore.ValuesBucket = { 3340e41f4b71Sopenharmony_ci "NAME": value1, 3341e41f4b71Sopenharmony_ci "AGE": value2, 3342e41f4b71Sopenharmony_ci "SALARY": value3, 3343e41f4b71Sopenharmony_ci "CODES": value4, 3344e41f4b71Sopenharmony_ci}; 3345e41f4b71Sopenharmony_ci 3346e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3347e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 3348e41f4b71Sopenharmony_ciif(store != undefined) { 3349e41f4b71Sopenharmony_ci try { 3350e41f4b71Sopenharmony_ci let rows: Number = (store as relationalStore.RdbStore).updateSync(valueBucket1, predicates, relationalStore.ConflictResolution.ON_CONFLICT_REPLACE); 3351e41f4b71Sopenharmony_ci console.info(`Updated row count: ${rows}`); 3352e41f4b71Sopenharmony_ci } catch (error) { 3353e41f4b71Sopenharmony_ci console.error(`Updated failed, code is ${error.code},message is ${error.message}`); 3354e41f4b71Sopenharmony_ci } 3355e41f4b71Sopenharmony_ci} 3356e41f4b71Sopenharmony_ci``` 3357e41f4b71Sopenharmony_ci 3358e41f4b71Sopenharmony_ci### delete 3359e41f4b71Sopenharmony_ci 3360e41f4b71Sopenharmony_cidelete(predicates: RdbPredicates, callback: AsyncCallback<number>):void 3361e41f4b71Sopenharmony_ci 3362e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象从数据库中删除数据,使用callback异步回调。 3363e41f4b71Sopenharmony_ci 3364e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3365e41f4b71Sopenharmony_ci 3366e41f4b71Sopenharmony_ci**参数:** 3367e41f4b71Sopenharmony_ci 3368e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3369e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ----------------------------------------- | 3370e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 | 3371e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 指定callback回调函数。返回受影响的行数。 | 3372e41f4b71Sopenharmony_ci 3373e41f4b71Sopenharmony_ci**错误码:** 3374e41f4b71Sopenharmony_ci 3375e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 3376e41f4b71Sopenharmony_ci 3377e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3378e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3379e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3380e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3381e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 3382e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3383e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3384e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 3385e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 3386e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 3387e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 3388e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 3389e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 3390e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 3391e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 3392e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 3393e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 3394e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 3395e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 3396e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 3397e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 3398e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 3399e41f4b71Sopenharmony_ci 3400e41f4b71Sopenharmony_ci**示例:** 3401e41f4b71Sopenharmony_ci 3402e41f4b71Sopenharmony_ci```ts 3403e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3404e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 3405e41f4b71Sopenharmony_ciif(store != undefined) { 3406e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).delete(predicates, (err, rows) => { 3407e41f4b71Sopenharmony_ci if (err) { 3408e41f4b71Sopenharmony_ci console.error(`Delete failed, code is ${err.code},message is ${err.message}`); 3409e41f4b71Sopenharmony_ci return; 3410e41f4b71Sopenharmony_ci } 3411e41f4b71Sopenharmony_ci console.info(`Delete rows: ${rows}`); 3412e41f4b71Sopenharmony_ci }) 3413e41f4b71Sopenharmony_ci} 3414e41f4b71Sopenharmony_ci``` 3415e41f4b71Sopenharmony_ci 3416e41f4b71Sopenharmony_ci### delete 3417e41f4b71Sopenharmony_ci 3418e41f4b71Sopenharmony_cidelete(predicates: RdbPredicates):Promise<number> 3419e41f4b71Sopenharmony_ci 3420e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。 3421e41f4b71Sopenharmony_ci 3422e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3423e41f4b71Sopenharmony_ci 3424e41f4b71Sopenharmony_ci**参数:** 3425e41f4b71Sopenharmony_ci 3426e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3427e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ----------------------------------------- | 3428e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 | 3429e41f4b71Sopenharmony_ci 3430e41f4b71Sopenharmony_ci**返回值**: 3431e41f4b71Sopenharmony_ci 3432e41f4b71Sopenharmony_ci| 类型 | 说明 | 3433e41f4b71Sopenharmony_ci| --------------------- | ------------------------------- | 3434e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回受影响的行数。 | 3435e41f4b71Sopenharmony_ci 3436e41f4b71Sopenharmony_ci**错误码:** 3437e41f4b71Sopenharmony_ci 3438e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 3439e41f4b71Sopenharmony_ci 3440e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3441e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3442e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3443e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3444e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 3445e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3446e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3447e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 3448e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 3449e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 3450e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 3451e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 3452e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 3453e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 3454e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 3455e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 3456e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 3457e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 3458e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 3459e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 3460e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 3461e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 3462e41f4b71Sopenharmony_ci 3463e41f4b71Sopenharmony_ci**示例:** 3464e41f4b71Sopenharmony_ci 3465e41f4b71Sopenharmony_ci```ts 3466e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3467e41f4b71Sopenharmony_ci 3468e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3469e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 3470e41f4b71Sopenharmony_ciif(store != undefined) { 3471e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).delete(predicates).then((rows: Number) => { 3472e41f4b71Sopenharmony_ci console.info(`Delete rows: ${rows}`); 3473e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3474e41f4b71Sopenharmony_ci console.error(`Delete failed, code is ${err.code},message is ${err.message}`); 3475e41f4b71Sopenharmony_ci }) 3476e41f4b71Sopenharmony_ci} 3477e41f4b71Sopenharmony_ci``` 3478e41f4b71Sopenharmony_ci 3479e41f4b71Sopenharmony_ci### deleteSync<sup>12+</sup> 3480e41f4b71Sopenharmony_ci 3481e41f4b71Sopenharmony_cideleteSync(predicates: RdbPredicates):number 3482e41f4b71Sopenharmony_ci 3483e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象从数据库中删除数据。 3484e41f4b71Sopenharmony_ci 3485e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3486e41f4b71Sopenharmony_ci 3487e41f4b71Sopenharmony_ci**参数:** 3488e41f4b71Sopenharmony_ci 3489e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3490e41f4b71Sopenharmony_ci| ---------- | ------------------------------- | ---- | --------------------------------------- | 3491e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 | 3492e41f4b71Sopenharmony_ci 3493e41f4b71Sopenharmony_ci**返回值**: 3494e41f4b71Sopenharmony_ci 3495e41f4b71Sopenharmony_ci| 类型 | 说明 | 3496e41f4b71Sopenharmony_ci| ------ | ------------------ | 3497e41f4b71Sopenharmony_ci| number | 返回受影响的行数。 | 3498e41f4b71Sopenharmony_ci 3499e41f4b71Sopenharmony_ci**错误码:** 3500e41f4b71Sopenharmony_ci 3501e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 3502e41f4b71Sopenharmony_ci 3503e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3504e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 3505e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3506e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3507e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 3508e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3509e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3510e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 3511e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 3512e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 3513e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 3514e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 3515e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 3516e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 3517e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 3518e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 3519e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 3520e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 3521e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 3522e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 3523e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 3524e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 3525e41f4b71Sopenharmony_ci 3526e41f4b71Sopenharmony_ci**示例:** 3527e41f4b71Sopenharmony_ci 3528e41f4b71Sopenharmony_ci```ts 3529e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3530e41f4b71Sopenharmony_ci 3531e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3532e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 3533e41f4b71Sopenharmony_ciif(store != undefined) { 3534e41f4b71Sopenharmony_ci try { 3535e41f4b71Sopenharmony_ci let rows: Number = (store as relationalStore.RdbStore).deleteSync(predicates) 3536e41f4b71Sopenharmony_ci console.info(`Delete rows: ${rows}`); 3537e41f4b71Sopenharmony_ci } catch (err) { 3538e41f4b71Sopenharmony_ci console.error(`Delete failed, code is ${err.code},message is ${err.message}`); 3539e41f4b71Sopenharmony_ci } 3540e41f4b71Sopenharmony_ci} 3541e41f4b71Sopenharmony_ci``` 3542e41f4b71Sopenharmony_ci 3543e41f4b71Sopenharmony_ci### query<sup>10+</sup> 3544e41f4b71Sopenharmony_ci 3545e41f4b71Sopenharmony_ciquery(predicates: RdbPredicates, callback: AsyncCallback<ResultSet>):void 3546e41f4b71Sopenharmony_ci 3547e41f4b71Sopenharmony_ci根据指定条件查询数据库中的数据,使用callback异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 3548e41f4b71Sopenharmony_ci 3549e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3550e41f4b71Sopenharmony_ci 3551e41f4b71Sopenharmony_ci**参数:** 3552e41f4b71Sopenharmony_ci 3553e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3554e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 3555e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 | 3556e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ResultSet](#resultset)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | 3557e41f4b71Sopenharmony_ci 3558e41f4b71Sopenharmony_ci**错误码:** 3559e41f4b71Sopenharmony_ci 3560e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3561e41f4b71Sopenharmony_ci 3562e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3563e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3564e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3565e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3566e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3567e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3568e41f4b71Sopenharmony_ci 3569e41f4b71Sopenharmony_ci**示例:** 3570e41f4b71Sopenharmony_ci 3571e41f4b71Sopenharmony_ci```ts 3572e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3573e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose"); 3574e41f4b71Sopenharmony_ciif(store != undefined) { 3575e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).query(predicates, (err, resultSet) => { 3576e41f4b71Sopenharmony_ci if (err) { 3577e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 3578e41f4b71Sopenharmony_ci return; 3579e41f4b71Sopenharmony_ci } 3580e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 3581e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 3582e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 3583e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 3584e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 3585e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 3586e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 3587e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 3588e41f4b71Sopenharmony_ci } 3589e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 3590e41f4b71Sopenharmony_ci resultSet.close(); 3591e41f4b71Sopenharmony_ci }) 3592e41f4b71Sopenharmony_ci} 3593e41f4b71Sopenharmony_ci``` 3594e41f4b71Sopenharmony_ci 3595e41f4b71Sopenharmony_ci### query 3596e41f4b71Sopenharmony_ci 3597e41f4b71Sopenharmony_ciquery(predicates: RdbPredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>):void 3598e41f4b71Sopenharmony_ci 3599e41f4b71Sopenharmony_ci根据指定条件查询数据库中的数据,使用callback异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 3600e41f4b71Sopenharmony_ci 3601e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3602e41f4b71Sopenharmony_ci 3603e41f4b71Sopenharmony_ci**参数:** 3604e41f4b71Sopenharmony_ci 3605e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3606e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 3607e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 | 3608e41f4b71Sopenharmony_ci| columns | Array<string> | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 | 3609e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ResultSet](#resultset)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | 3610e41f4b71Sopenharmony_ci 3611e41f4b71Sopenharmony_ci**错误码:** 3612e41f4b71Sopenharmony_ci 3613e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3614e41f4b71Sopenharmony_ci 3615e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3616e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3617e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3618e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3619e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3620e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3621e41f4b71Sopenharmony_ci 3622e41f4b71Sopenharmony_ci**示例:** 3623e41f4b71Sopenharmony_ci 3624e41f4b71Sopenharmony_ci```ts 3625e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3626e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose"); 3627e41f4b71Sopenharmony_ciif(store != undefined) { 3628e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], (err, resultSet) => { 3629e41f4b71Sopenharmony_ci if (err) { 3630e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 3631e41f4b71Sopenharmony_ci return; 3632e41f4b71Sopenharmony_ci } 3633e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 3634e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 3635e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 3636e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 3637e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 3638e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 3639e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 3640e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 3641e41f4b71Sopenharmony_ci } 3642e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 3643e41f4b71Sopenharmony_ci resultSet.close(); 3644e41f4b71Sopenharmony_ci }) 3645e41f4b71Sopenharmony_ci} 3646e41f4b71Sopenharmony_ci``` 3647e41f4b71Sopenharmony_ci 3648e41f4b71Sopenharmony_ci### query 3649e41f4b71Sopenharmony_ci 3650e41f4b71Sopenharmony_ciquery(predicates: RdbPredicates, columns?: Array<string>):Promise<ResultSet> 3651e41f4b71Sopenharmony_ci 3652e41f4b71Sopenharmony_ci根据指定条件查询数据库中的数据,使用Promise异步回调。由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 3653e41f4b71Sopenharmony_ci 3654e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3655e41f4b71Sopenharmony_ci 3656e41f4b71Sopenharmony_ci**参数:** 3657e41f4b71Sopenharmony_ci 3658e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3659e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ------------------------------------------------ | 3660e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 | 3661e41f4b71Sopenharmony_ci| columns | Array<string> | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 | 3662e41f4b71Sopenharmony_ci 3663e41f4b71Sopenharmony_ci**错误码:** 3664e41f4b71Sopenharmony_ci 3665e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3666e41f4b71Sopenharmony_ci 3667e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3668e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3669e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3670e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3671e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3672e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3673e41f4b71Sopenharmony_ci 3674e41f4b71Sopenharmony_ci**返回值**: 3675e41f4b71Sopenharmony_ci 3676e41f4b71Sopenharmony_ci| 类型 | 说明 | 3677e41f4b71Sopenharmony_ci| ------------------------------------------------------- | -------------------------------------------------- | 3678e41f4b71Sopenharmony_ci| Promise<[ResultSet](#resultset)> | Promise对象。如果操作成功,则返回ResultSet对象。 | 3679e41f4b71Sopenharmony_ci 3680e41f4b71Sopenharmony_ci**示例:** 3681e41f4b71Sopenharmony_ci 3682e41f4b71Sopenharmony_ci```ts 3683e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3684e41f4b71Sopenharmony_ci 3685e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3686e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose"); 3687e41f4b71Sopenharmony_ciif(store != undefined) { 3688e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet: relationalStore.ResultSet) => { 3689e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 3690e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 3691e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 3692e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 3693e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 3694e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 3695e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 3696e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 3697e41f4b71Sopenharmony_ci } 3698e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 3699e41f4b71Sopenharmony_ci resultSet.close(); 3700e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3701e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 3702e41f4b71Sopenharmony_ci }) 3703e41f4b71Sopenharmony_ci} 3704e41f4b71Sopenharmony_ci``` 3705e41f4b71Sopenharmony_ci 3706e41f4b71Sopenharmony_ci### querySync<sup>12+</sup> 3707e41f4b71Sopenharmony_ci 3708e41f4b71Sopenharmony_ciquerySync(predicates: RdbPredicates, columns?: Array<string>):ResultSet 3709e41f4b71Sopenharmony_ci 3710e41f4b71Sopenharmony_ci根据指定条件查询数据库中的数据。 3711e41f4b71Sopenharmony_ci 3712e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3713e41f4b71Sopenharmony_ci 3714e41f4b71Sopenharmony_ci**参数:** 3715e41f4b71Sopenharmony_ci 3716e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3717e41f4b71Sopenharmony_ci| ---------- | ------------------------------- | ---- | ------------------------------------------------------------ | 3718e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 | 3719e41f4b71Sopenharmony_ci| columns | Array<string> | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。默认值为空。 | 3720e41f4b71Sopenharmony_ci 3721e41f4b71Sopenharmony_ci**错误码:** 3722e41f4b71Sopenharmony_ci 3723e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3724e41f4b71Sopenharmony_ci 3725e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3726e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 3727e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3728e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3729e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3730e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3731e41f4b71Sopenharmony_ci 3732e41f4b71Sopenharmony_ci**返回值**: 3733e41f4b71Sopenharmony_ci 3734e41f4b71Sopenharmony_ci| 类型 | 说明 | 3735e41f4b71Sopenharmony_ci| ----------------------- | ----------------------------------- | 3736e41f4b71Sopenharmony_ci| [ResultSet](#resultset) | 如果操作成功,则返回ResultSet对象。 | 3737e41f4b71Sopenharmony_ci 3738e41f4b71Sopenharmony_ci**示例:** 3739e41f4b71Sopenharmony_ci 3740e41f4b71Sopenharmony_ci```ts 3741e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3742e41f4b71Sopenharmony_ci 3743e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 3744e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose"); 3745e41f4b71Sopenharmony_ciif(store != undefined) { 3746e41f4b71Sopenharmony_ci try { 3747e41f4b71Sopenharmony_ci let resultSet: relationalStore.ResultSet = (store as relationalStore.RdbStore).querySync(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]); 3748e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 3749e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 3750e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 3751e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 3752e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 3753e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 3754e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 3755e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 3756e41f4b71Sopenharmony_ci } 3757e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 3758e41f4b71Sopenharmony_ci resultSet.close(); 3759e41f4b71Sopenharmony_ci } catch (err) { 3760e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 3761e41f4b71Sopenharmony_ci } 3762e41f4b71Sopenharmony_ci} 3763e41f4b71Sopenharmony_ci``` 3764e41f4b71Sopenharmony_ci 3765e41f4b71Sopenharmony_ci### remoteQuery 3766e41f4b71Sopenharmony_ci 3767e41f4b71Sopenharmony_ciremoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string> , callback: AsyncCallback<ResultSet>): void 3768e41f4b71Sopenharmony_ci 3769e41f4b71Sopenharmony_ci根据指定条件查询远程设备数据库中的数据。使用callback异步回调。 3770e41f4b71Sopenharmony_ci 3771e41f4b71Sopenharmony_ci> **说明:** 3772e41f4b71Sopenharmony_ci> 3773e41f4b71Sopenharmony_ci> 其中device通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。 3774e41f4b71Sopenharmony_ci 3775e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3776e41f4b71Sopenharmony_ci 3777e41f4b71Sopenharmony_ci**参数:** 3778e41f4b71Sopenharmony_ci 3779e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3780e41f4b71Sopenharmony_ci| ---------- | -------------------------------------------- | ---- | --------------------------------------------------------- | 3781e41f4b71Sopenharmony_ci| device | string | 是 | 指定的远程设备ID。 | 3782e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 3783e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象,指定查询的条件。 | 3784e41f4b71Sopenharmony_ci| columns | Array<string> | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 | 3785e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ResultSet](#resultset)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | 3786e41f4b71Sopenharmony_ci 3787e41f4b71Sopenharmony_ci**错误码:** 3788e41f4b71Sopenharmony_ci 3789e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3790e41f4b71Sopenharmony_ci 3791e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3792e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3793e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3794e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 3795e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3796e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3797e41f4b71Sopenharmony_ci 3798e41f4b71Sopenharmony_ci**示例:** 3799e41f4b71Sopenharmony_ci 3800e41f4b71Sopenharmony_ci```ts 3801e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 3802e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3803e41f4b71Sopenharmony_ci 3804e41f4b71Sopenharmony_cilet dmInstance: distributedDeviceManager.DeviceManager; 3805e41f4b71Sopenharmony_cilet deviceId: string | undefined = undefined; 3806e41f4b71Sopenharmony_ci 3807e41f4b71Sopenharmony_citry { 3808e41f4b71Sopenharmony_ci dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify"); 3809e41f4b71Sopenharmony_ci let devices = dmInstance.getAvailableDeviceListSync(); 3810e41f4b71Sopenharmony_ci if(deviceId != undefined) { 3811e41f4b71Sopenharmony_ci deviceId = devices[0].networkId; 3812e41f4b71Sopenharmony_ci } 3813e41f4b71Sopenharmony_ci} catch (err) { 3814e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 3815e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 3816e41f4b71Sopenharmony_ci console.error("createDeviceManager errCode:" + code + ",errMessage:" + message); 3817e41f4b71Sopenharmony_ci} 3818e41f4b71Sopenharmony_ci 3819e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates('EMPLOYEE'); 3820e41f4b71Sopenharmony_cipredicates.greaterThan("id", 0); 3821e41f4b71Sopenharmony_ciif(store != undefined && deviceId != undefined) { 3822e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).remoteQuery(deviceId, "EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet: relationalStore.ResultSet) => { 3823e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 3824e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 3825e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 3826e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 3827e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 3828e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 3829e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 3830e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 3831e41f4b71Sopenharmony_ci } 3832e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 3833e41f4b71Sopenharmony_ci resultSet.close(); 3834e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3835e41f4b71Sopenharmony_ci console.error(`Failed to remoteQuery, code is ${err.code},message is ${err.message}`); 3836e41f4b71Sopenharmony_ci }) 3837e41f4b71Sopenharmony_ci} 3838e41f4b71Sopenharmony_ci``` 3839e41f4b71Sopenharmony_ci 3840e41f4b71Sopenharmony_ci### remoteQuery 3841e41f4b71Sopenharmony_ci 3842e41f4b71Sopenharmony_ciremoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string>): Promise<ResultSet> 3843e41f4b71Sopenharmony_ci 3844e41f4b71Sopenharmony_ci根据指定条件查询远程设备数据库中的数据。使用Promise异步回调。 3845e41f4b71Sopenharmony_ci 3846e41f4b71Sopenharmony_ci> **说明:** 3847e41f4b71Sopenharmony_ci> 3848e41f4b71Sopenharmony_ci> 其中device通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。 3849e41f4b71Sopenharmony_ci 3850e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3851e41f4b71Sopenharmony_ci 3852e41f4b71Sopenharmony_ci**参数:** 3853e41f4b71Sopenharmony_ci 3854e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3855e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ------------------------------------------------ | 3856e41f4b71Sopenharmony_ci| device | string | 是 | 指定的远程设备ID。 | 3857e41f4b71Sopenharmony_ci| table | string | 是 | 指定的目标表名。 | 3858e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象,指定查询的条件。 | 3859e41f4b71Sopenharmony_ci| columns | Array<string> | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 | 3860e41f4b71Sopenharmony_ci 3861e41f4b71Sopenharmony_ci**返回值**: 3862e41f4b71Sopenharmony_ci 3863e41f4b71Sopenharmony_ci| 类型 | 说明 | 3864e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | -------------------------------------------------- | 3865e41f4b71Sopenharmony_ci| Promise<[ResultSet](#resultset)> | Promise对象。如果操作成功,则返回ResultSet对象。 | 3866e41f4b71Sopenharmony_ci 3867e41f4b71Sopenharmony_ci**错误码:** 3868e41f4b71Sopenharmony_ci 3869e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3870e41f4b71Sopenharmony_ci 3871e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3872e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3873e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3874e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 3875e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3876e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3877e41f4b71Sopenharmony_ci 3878e41f4b71Sopenharmony_ci**示例:** 3879e41f4b71Sopenharmony_ci 3880e41f4b71Sopenharmony_ci```ts 3881e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 3882e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3883e41f4b71Sopenharmony_ci 3884e41f4b71Sopenharmony_cilet dmInstance: distributedDeviceManager.DeviceManager; 3885e41f4b71Sopenharmony_cilet deviceId: string | undefined = undefined; 3886e41f4b71Sopenharmony_ci 3887e41f4b71Sopenharmony_citry { 3888e41f4b71Sopenharmony_ci dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify"); 3889e41f4b71Sopenharmony_ci let devices: Array<distributedDeviceManager.DeviceBasicInfo> = dmInstance.getAvailableDeviceListSync(); 3890e41f4b71Sopenharmony_ci if(devices != undefined) { 3891e41f4b71Sopenharmony_ci deviceId = devices[0].networkId; 3892e41f4b71Sopenharmony_ci } 3893e41f4b71Sopenharmony_ci} catch (err) { 3894e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 3895e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 3896e41f4b71Sopenharmony_ci console.error("createDeviceManager errCode:" + code + ",errMessage:" + message); 3897e41f4b71Sopenharmony_ci} 3898e41f4b71Sopenharmony_ci 3899e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates('EMPLOYEE'); 3900e41f4b71Sopenharmony_cipredicates.greaterThan("id", 0); 3901e41f4b71Sopenharmony_ciif(store != undefined && deviceId != undefined) { 3902e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).remoteQuery(deviceId, "EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet: relationalStore.ResultSet) => { 3903e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 3904e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 3905e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 3906e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 3907e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 3908e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 3909e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 3910e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 3911e41f4b71Sopenharmony_ci } 3912e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 3913e41f4b71Sopenharmony_ci resultSet.close(); 3914e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3915e41f4b71Sopenharmony_ci console.error(`Failed to remoteQuery, code is ${err.code},message is ${err.message}`); 3916e41f4b71Sopenharmony_ci }) 3917e41f4b71Sopenharmony_ci} 3918e41f4b71Sopenharmony_ci``` 3919e41f4b71Sopenharmony_ci 3920e41f4b71Sopenharmony_ci### querySql<sup>10+</sup> 3921e41f4b71Sopenharmony_ci 3922e41f4b71Sopenharmony_ciquerySql(sql: string, callback: AsyncCallback<ResultSet>):void 3923e41f4b71Sopenharmony_ci 3924e41f4b71Sopenharmony_ci根据指定SQL语句查询数据库中的数据,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,使用callback异步回调。 3925e41f4b71Sopenharmony_ci 3926e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3927e41f4b71Sopenharmony_ci 3928e41f4b71Sopenharmony_ci**参数:** 3929e41f4b71Sopenharmony_ci 3930e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3931e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | ---- |---------------------------------------| 3932e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 3933e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ResultSet](#resultset)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | 3934e41f4b71Sopenharmony_ci 3935e41f4b71Sopenharmony_ci**错误码:** 3936e41f4b71Sopenharmony_ci 3937e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3938e41f4b71Sopenharmony_ci 3939e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3940e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3941e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3942e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3943e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3944e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3945e41f4b71Sopenharmony_ci 3946e41f4b71Sopenharmony_ci**示例:** 3947e41f4b71Sopenharmony_ci 3948e41f4b71Sopenharmony_ci```ts 3949e41f4b71Sopenharmony_ciif(store != undefined) { 3950e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = 'sanguo'", (err, resultSet) => { 3951e41f4b71Sopenharmony_ci if (err) { 3952e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 3953e41f4b71Sopenharmony_ci return; 3954e41f4b71Sopenharmony_ci } 3955e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 3956e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 3957e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 3958e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 3959e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 3960e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 3961e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 3962e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 3963e41f4b71Sopenharmony_ci } 3964e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 3965e41f4b71Sopenharmony_ci resultSet.close(); 3966e41f4b71Sopenharmony_ci }) 3967e41f4b71Sopenharmony_ci} 3968e41f4b71Sopenharmony_ci``` 3969e41f4b71Sopenharmony_ci 3970e41f4b71Sopenharmony_ci### querySql 3971e41f4b71Sopenharmony_ci 3972e41f4b71Sopenharmony_ciquerySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<ResultSet>):void 3973e41f4b71Sopenharmony_ci 3974e41f4b71Sopenharmony_ci根据指定SQL语句查询数据库中的数据,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,使用callback异步回调。 3975e41f4b71Sopenharmony_ci 3976e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 3977e41f4b71Sopenharmony_ci 3978e41f4b71Sopenharmony_ci**参数:** 3979e41f4b71Sopenharmony_ci 3980e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3981e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 3982e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 3983e41f4b71Sopenharmony_ci| bindArgs | Array<[ValueType](#valuetype)> | 是 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数需为空数组。 | 3984e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ResultSet](#resultset)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | 3985e41f4b71Sopenharmony_ci 3986e41f4b71Sopenharmony_ci**错误码:** 3987e41f4b71Sopenharmony_ci 3988e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 3989e41f4b71Sopenharmony_ci 3990e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 3991e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 3992e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3993e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 3994e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 3995e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 3996e41f4b71Sopenharmony_ci 3997e41f4b71Sopenharmony_ci**示例:** 3998e41f4b71Sopenharmony_ci 3999e41f4b71Sopenharmony_ci```ts 4000e41f4b71Sopenharmony_ciif(store != undefined) { 4001e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], (err, resultSet) => { 4002e41f4b71Sopenharmony_ci if (err) { 4003e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 4004e41f4b71Sopenharmony_ci return; 4005e41f4b71Sopenharmony_ci } 4006e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 4007e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 4008e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 4009e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 4010e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 4011e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 4012e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 4013e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 4014e41f4b71Sopenharmony_ci } 4015e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 4016e41f4b71Sopenharmony_ci resultSet.close(); 4017e41f4b71Sopenharmony_ci }) 4018e41f4b71Sopenharmony_ci} 4019e41f4b71Sopenharmony_ci``` 4020e41f4b71Sopenharmony_ci 4021e41f4b71Sopenharmony_ci### querySql 4022e41f4b71Sopenharmony_ci 4023e41f4b71Sopenharmony_ciquerySql(sql: string, bindArgs?: Array<ValueType>):Promise<ResultSet> 4024e41f4b71Sopenharmony_ci 4025e41f4b71Sopenharmony_ci根据指定SQL语句查询数据库中的数据,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,使用Promise异步回调。 4026e41f4b71Sopenharmony_ci 4027e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4028e41f4b71Sopenharmony_ci 4029e41f4b71Sopenharmony_ci**参数:** 4030e41f4b71Sopenharmony_ci 4031e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4032e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4033e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4034e41f4b71Sopenharmony_ci| bindArgs | Array<[ValueType](#valuetype)> | 否 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数不填。 | 4035e41f4b71Sopenharmony_ci 4036e41f4b71Sopenharmony_ci**返回值**: 4037e41f4b71Sopenharmony_ci 4038e41f4b71Sopenharmony_ci| 类型 | 说明 | 4039e41f4b71Sopenharmony_ci| ------------------------------------------------------- | -------------------------------------------------- | 4040e41f4b71Sopenharmony_ci| Promise<[ResultSet](#resultset)> | Promise对象。如果操作成功,则返回ResultSet对象。 | 4041e41f4b71Sopenharmony_ci 4042e41f4b71Sopenharmony_ci**错误码:** 4043e41f4b71Sopenharmony_ci 4044e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 4045e41f4b71Sopenharmony_ci 4046e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4047e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4048e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4049e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4050e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4051e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4052e41f4b71Sopenharmony_ci 4053e41f4b71Sopenharmony_ci**示例:** 4054e41f4b71Sopenharmony_ci 4055e41f4b71Sopenharmony_ci```ts 4056e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4057e41f4b71Sopenharmony_ci 4058e41f4b71Sopenharmony_ciif(store != undefined) { 4059e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = 'sanguo'").then((resultSet: relationalStore.ResultSet) => { 4060e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 4061e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 4062e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 4063e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 4064e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 4065e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 4066e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 4067e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 4068e41f4b71Sopenharmony_ci } 4069e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 4070e41f4b71Sopenharmony_ci resultSet.close(); 4071e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4072e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 4073e41f4b71Sopenharmony_ci }) 4074e41f4b71Sopenharmony_ci} 4075e41f4b71Sopenharmony_ci``` 4076e41f4b71Sopenharmony_ci 4077e41f4b71Sopenharmony_ci### querySqlSync<sup>12+</sup> 4078e41f4b71Sopenharmony_ci 4079e41f4b71Sopenharmony_ciquerySqlSync(sql: string, bindArgs?: Array<ValueType>):ResultSet 4080e41f4b71Sopenharmony_ci 4081e41f4b71Sopenharmony_ci根据指定SQL语句查询数据库中的数据,语句中的各种表达式和操作符之间的关系操作符号不超过1000个。 4082e41f4b71Sopenharmony_ci 4083e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4084e41f4b71Sopenharmony_ci 4085e41f4b71Sopenharmony_ci**参数:** 4086e41f4b71Sopenharmony_ci 4087e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4088e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4089e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4090e41f4b71Sopenharmony_ci| bindArgs | Array<[ValueType](#valuetype)> | 否 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数不填。默认值为空。 | 4091e41f4b71Sopenharmony_ci 4092e41f4b71Sopenharmony_ci**返回值**: 4093e41f4b71Sopenharmony_ci 4094e41f4b71Sopenharmony_ci| 类型 | 说明 | 4095e41f4b71Sopenharmony_ci| ----------------------- | ----------------------------------- | 4096e41f4b71Sopenharmony_ci| [ResultSet](#resultset) | 如果操作成功,则返回ResultSet对象。 | 4097e41f4b71Sopenharmony_ci 4098e41f4b71Sopenharmony_ci**错误码:** 4099e41f4b71Sopenharmony_ci 4100e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 4101e41f4b71Sopenharmony_ci 4102e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4103e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 4104e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4105e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4106e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4107e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4108e41f4b71Sopenharmony_ci 4109e41f4b71Sopenharmony_ci**示例:** 4110e41f4b71Sopenharmony_ci 4111e41f4b71Sopenharmony_ci```ts 4112e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4113e41f4b71Sopenharmony_ci 4114e41f4b71Sopenharmony_ciif(store != undefined) { 4115e41f4b71Sopenharmony_ci try { 4116e41f4b71Sopenharmony_ci let resultSet: relationalStore.ResultSet = (store as relationalStore.RdbStore).querySqlSync("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = 'sanguo'"); 4117e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 4118e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 4119e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 4120e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 4121e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 4122e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 4123e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 4124e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 4125e41f4b71Sopenharmony_ci } 4126e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 4127e41f4b71Sopenharmony_ci resultSet.close(); 4128e41f4b71Sopenharmony_ci } catch (err) { 4129e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 4130e41f4b71Sopenharmony_ci } 4131e41f4b71Sopenharmony_ci} 4132e41f4b71Sopenharmony_ci``` 4133e41f4b71Sopenharmony_ci 4134e41f4b71Sopenharmony_ci### executeSql<sup>10+</sup> 4135e41f4b71Sopenharmony_ci 4136e41f4b71Sopenharmony_ciexecuteSql(sql: string, callback: AsyncCallback<void>):void 4137e41f4b71Sopenharmony_ci 4138e41f4b71Sopenharmony_ci执行包含指定参数但不返回值的SQL语句,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,使用callback异步回调。 4139e41f4b71Sopenharmony_ci 4140e41f4b71Sopenharmony_ci此接口不支持执行查询、附加数据库和事务操作,可以使用[querySql](#querysql10)、[query](#query10)、[attach](#attach12)、[beginTransaction](#begintransaction)、[commit](#commit)等接口代替。 4141e41f4b71Sopenharmony_ci 4142e41f4b71Sopenharmony_ci不支持分号分隔的多条语句。 4143e41f4b71Sopenharmony_ci 4144e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4145e41f4b71Sopenharmony_ci 4146e41f4b71Sopenharmony_ci**参数:** 4147e41f4b71Sopenharmony_ci 4148e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4149e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4150e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4151e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 4152e41f4b71Sopenharmony_ci 4153e41f4b71Sopenharmony_ci**错误码:** 4154e41f4b71Sopenharmony_ci 4155e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4156e41f4b71Sopenharmony_ci 4157e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4158e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4159e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4160e41f4b71Sopenharmony_ci| 801 | Capability not supported the sql(attach,begin,commit,rollback etc.). | 4161e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4162e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4163e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4164e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4165e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4166e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4167e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4168e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4169e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4170e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4171e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4172e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4173e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4174e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4175e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4176e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4177e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4178e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4179e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4180e41f4b71Sopenharmony_ci 4181e41f4b71Sopenharmony_ci**示例:** 4182e41f4b71Sopenharmony_ci 4183e41f4b71Sopenharmony_ci```ts 4184e41f4b71Sopenharmony_ciconst SQL_DELETE_TABLE = "DELETE FROM test WHERE name = 'zhangsan'" 4185e41f4b71Sopenharmony_ciif(store != undefined) { 4186e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).executeSql(SQL_DELETE_TABLE, (err) => { 4187e41f4b71Sopenharmony_ci if (err) { 4188e41f4b71Sopenharmony_ci console.error(`ExecuteSql failed, code is ${err.code},message is ${err.message}`); 4189e41f4b71Sopenharmony_ci return; 4190e41f4b71Sopenharmony_ci } 4191e41f4b71Sopenharmony_ci console.info('Delete table done.'); 4192e41f4b71Sopenharmony_ci }) 4193e41f4b71Sopenharmony_ci} 4194e41f4b71Sopenharmony_ci``` 4195e41f4b71Sopenharmony_ci 4196e41f4b71Sopenharmony_ci### executeSql 4197e41f4b71Sopenharmony_ci 4198e41f4b71Sopenharmony_ciexecuteSql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<void>):void 4199e41f4b71Sopenharmony_ci 4200e41f4b71Sopenharmony_ci执行包含指定参数但不返回值的SQL语句,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,使用callback异步回调。 4201e41f4b71Sopenharmony_ci 4202e41f4b71Sopenharmony_ci此接口不支持执行查询、附加数据库和事务操作,可以使用[querySql](#querysql10)、[query](#query10)、[attach](#attach12)、[beginTransaction](#begintransaction)、[commit](#commit)等接口代替。 4203e41f4b71Sopenharmony_ci 4204e41f4b71Sopenharmony_ci不支持分号分隔的多条语句。 4205e41f4b71Sopenharmony_ci 4206e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4207e41f4b71Sopenharmony_ci 4208e41f4b71Sopenharmony_ci**参数:** 4209e41f4b71Sopenharmony_ci 4210e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4211e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4212e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4213e41f4b71Sopenharmony_ci| bindArgs | Array<[ValueType](#valuetype)> | 是 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数需为空数组。 | 4214e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 4215e41f4b71Sopenharmony_ci 4216e41f4b71Sopenharmony_ci**错误码:** 4217e41f4b71Sopenharmony_ci 4218e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4219e41f4b71Sopenharmony_ci 4220e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4221e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4222e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4223e41f4b71Sopenharmony_ci| 801 | Capability not supported the sql(attach,begin,commit,rollback etc.). | 4224e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4225e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4226e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4227e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4228e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4229e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4230e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4231e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4232e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4233e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4234e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4235e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4236e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4237e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4238e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4239e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4240e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4241e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4242e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4243e41f4b71Sopenharmony_ci 4244e41f4b71Sopenharmony_ci**示例:** 4245e41f4b71Sopenharmony_ci 4246e41f4b71Sopenharmony_ci```ts 4247e41f4b71Sopenharmony_ciconst SQL_DELETE_TABLE = "DELETE FROM test WHERE name = ?" 4248e41f4b71Sopenharmony_ciif(store != undefined) { 4249e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).executeSql(SQL_DELETE_TABLE, ['zhangsan'], (err) => { 4250e41f4b71Sopenharmony_ci if (err) { 4251e41f4b71Sopenharmony_ci console.error(`ExecuteSql failed, code is ${err.code},message is ${err.message}`); 4252e41f4b71Sopenharmony_ci return; 4253e41f4b71Sopenharmony_ci } 4254e41f4b71Sopenharmony_ci console.info('Delete table done.'); 4255e41f4b71Sopenharmony_ci }) 4256e41f4b71Sopenharmony_ci} 4257e41f4b71Sopenharmony_ci``` 4258e41f4b71Sopenharmony_ci 4259e41f4b71Sopenharmony_ci### executeSql 4260e41f4b71Sopenharmony_ci 4261e41f4b71Sopenharmony_ciexecuteSql(sql: string, bindArgs?: Array<ValueType>):Promise<void> 4262e41f4b71Sopenharmony_ci 4263e41f4b71Sopenharmony_ci执行包含指定参数但不返回值的SQL语句,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,使用Promise异步回调。 4264e41f4b71Sopenharmony_ci 4265e41f4b71Sopenharmony_ci此接口不支持执行查询、附加数据库和事务操作,可以使用[querySql](#querysql10)、[query](#query10)、[attach](#attach12)、[beginTransaction](#begintransaction)、[commit](#commit)等接口代替。 4266e41f4b71Sopenharmony_ci 4267e41f4b71Sopenharmony_ci不支持分号分隔的多条语句。 4268e41f4b71Sopenharmony_ci 4269e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4270e41f4b71Sopenharmony_ci 4271e41f4b71Sopenharmony_ci**参数:** 4272e41f4b71Sopenharmony_ci 4273e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4274e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4275e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4276e41f4b71Sopenharmony_ci| bindArgs | Array<[ValueType](#valuetype)> | 否 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数不填。 | 4277e41f4b71Sopenharmony_ci 4278e41f4b71Sopenharmony_ci**返回值**: 4279e41f4b71Sopenharmony_ci 4280e41f4b71Sopenharmony_ci| 类型 | 说明 | 4281e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4282e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 4283e41f4b71Sopenharmony_ci 4284e41f4b71Sopenharmony_ci**错误码:** 4285e41f4b71Sopenharmony_ci 4286e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4287e41f4b71Sopenharmony_ci 4288e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4289e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4290e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4291e41f4b71Sopenharmony_ci| 801 | Capability not supported the sql(attach,begin,commit,rollback etc.). | 4292e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4293e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4294e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4295e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4296e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4297e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4298e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4299e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4300e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4301e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4302e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4303e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4304e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4305e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4306e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4307e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4308e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4309e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4310e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4311e41f4b71Sopenharmony_ci 4312e41f4b71Sopenharmony_ci**示例:** 4313e41f4b71Sopenharmony_ci 4314e41f4b71Sopenharmony_ci```ts 4315e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4316e41f4b71Sopenharmony_ci 4317e41f4b71Sopenharmony_ciconst SQL_DELETE_TABLE = "DELETE FROM test WHERE name = 'zhangsan'" 4318e41f4b71Sopenharmony_ciif(store != undefined) { 4319e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).executeSql(SQL_DELETE_TABLE).then(() => { 4320e41f4b71Sopenharmony_ci console.info('Delete table done.'); 4321e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4322e41f4b71Sopenharmony_ci console.error(`ExecuteSql failed, code is ${err.code},message is ${err.message}`); 4323e41f4b71Sopenharmony_ci }) 4324e41f4b71Sopenharmony_ci} 4325e41f4b71Sopenharmony_ci``` 4326e41f4b71Sopenharmony_ci 4327e41f4b71Sopenharmony_ci### execute<sup>12+</sup> 4328e41f4b71Sopenharmony_ci 4329e41f4b71Sopenharmony_ciexecute(sql: string, args?: Array<ValueType>):Promise<ValueType> 4330e41f4b71Sopenharmony_ci 4331e41f4b71Sopenharmony_ci执行包含指定参数的SQL语句,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,返回值类型为ValueType,使用Promise异步回调。 4332e41f4b71Sopenharmony_ci 4333e41f4b71Sopenharmony_ci该接口支持执行增删改操作,支持执行PRAGMA语法的sql,支持对表的操作(建表、删表、修改表),返回结果类型由执行具体sql的结果决定。 4334e41f4b71Sopenharmony_ci 4335e41f4b71Sopenharmony_ci此接口不支持执行查询、附加数据库和事务操作,可以使用[querySql](#querysql10)、[query](#query10)、[attach](#attach12)、[beginTransaction](#begintransaction)、[commit](#commit)等接口代替。 4336e41f4b71Sopenharmony_ci 4337e41f4b71Sopenharmony_ci不支持分号分隔的多条语句。 4338e41f4b71Sopenharmony_ci 4339e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4340e41f4b71Sopenharmony_ci 4341e41f4b71Sopenharmony_ci**参数:** 4342e41f4b71Sopenharmony_ci 4343e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4344e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4345e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4346e41f4b71Sopenharmony_ci| args | Array<[ValueType](#valuetype)> | 否 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数不填。 | 4347e41f4b71Sopenharmony_ci 4348e41f4b71Sopenharmony_ci**返回值**: 4349e41f4b71Sopenharmony_ci 4350e41f4b71Sopenharmony_ci| 类型 | 说明 | 4351e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4352e41f4b71Sopenharmony_ci| Promise<[ValueType](#valuetype)> | Promise对象,返回sql执行后的结果。 | 4353e41f4b71Sopenharmony_ci 4354e41f4b71Sopenharmony_ci**错误码:** 4355e41f4b71Sopenharmony_ci 4356e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4357e41f4b71Sopenharmony_ci 4358e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4359e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4360e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4361e41f4b71Sopenharmony_ci| 801 | Capability not supported the sql(attach,begin,commit,rollback etc.). | 4362e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4363e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4364e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4365e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4366e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4367e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4368e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4369e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4370e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4371e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4372e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4373e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4374e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4375e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4376e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4377e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4378e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4379e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4380e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4381e41f4b71Sopenharmony_ci 4382e41f4b71Sopenharmony_ci**示例:** 4383e41f4b71Sopenharmony_ci 4384e41f4b71Sopenharmony_ci```ts 4385e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4386e41f4b71Sopenharmony_ci 4387e41f4b71Sopenharmony_ci// 校验数据库完整性 4388e41f4b71Sopenharmony_ciif(store != undefined) { 4389e41f4b71Sopenharmony_ci const SQL_CHECK_INTEGRITY = 'PRAGMA integrity_check'; 4390e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).execute(SQL_CHECK_INTEGRITY).then((data) => { 4391e41f4b71Sopenharmony_ci console.info(`check result: ${data}`); 4392e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4393e41f4b71Sopenharmony_ci console.error(`check failed, code is ${err.code}, message is ${err.message}`); 4394e41f4b71Sopenharmony_ci }) 4395e41f4b71Sopenharmony_ci} 4396e41f4b71Sopenharmony_ci 4397e41f4b71Sopenharmony_ci// 删除表中所有数据 4398e41f4b71Sopenharmony_ciif(store != undefined) { 4399e41f4b71Sopenharmony_ci const SQL_DELETE_TABLE = 'DELETE FROM test'; 4400e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).execute(SQL_DELETE_TABLE).then((data) => { 4401e41f4b71Sopenharmony_ci console.info(`delete result: ${data}`); 4402e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4403e41f4b71Sopenharmony_ci console.error(`delete failed, code is ${err.code}, message is ${err.message}`); 4404e41f4b71Sopenharmony_ci }) 4405e41f4b71Sopenharmony_ci} 4406e41f4b71Sopenharmony_ci 4407e41f4b71Sopenharmony_ci// 删表 4408e41f4b71Sopenharmony_ciif(store != undefined) { 4409e41f4b71Sopenharmony_ci const SQL_DROP_TABLE = 'DROP TABLE test'; 4410e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).execute(SQL_DROP_TABLE).then((data) => { 4411e41f4b71Sopenharmony_ci console.info(`drop result: ${data}`); 4412e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4413e41f4b71Sopenharmony_ci console.error(`drop failed, code is ${err.code}, message is ${err.message}`); 4414e41f4b71Sopenharmony_ci }) 4415e41f4b71Sopenharmony_ci} 4416e41f4b71Sopenharmony_ci``` 4417e41f4b71Sopenharmony_ci 4418e41f4b71Sopenharmony_ci### execute<sup>12+</sup> 4419e41f4b71Sopenharmony_ci 4420e41f4b71Sopenharmony_ciexecute(sql: string, txId: number, args?: Array<ValueType>): Promise<ValueType> 4421e41f4b71Sopenharmony_ci 4422e41f4b71Sopenharmony_ci执行包含指定参数的SQL语句,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,使用Promise异步回调。 4423e41f4b71Sopenharmony_ci 4424e41f4b71Sopenharmony_ci<!--RP1--> 4425e41f4b71Sopenharmony_ci该接口仅支持[向量数据库](js-apis-data-relationalStore-sys.md#storeconfig)使用。<!--RP1End--> 4426e41f4b71Sopenharmony_ci 4427e41f4b71Sopenharmony_ci此接口不支持执行查询、附加数据库和事务操作,可以使用[querySql](#querysql10)、[query](#query10)、[attach](#attach12)、[beginTransaction](#begintransaction)、[commit](#commit)等接口代替。 4428e41f4b71Sopenharmony_ci 4429e41f4b71Sopenharmony_ci不支持分号分隔的多条语句。 4430e41f4b71Sopenharmony_ci 4431e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4432e41f4b71Sopenharmony_ci 4433e41f4b71Sopenharmony_ci**参数:** 4434e41f4b71Sopenharmony_ci 4435e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4436e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4437e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4438e41f4b71Sopenharmony_ci| txId | number | 是 | 通过[beginTrans](#begintrans12)获取的事务ID,如果传0,该语句默认在单独事务内。 | 4439e41f4b71Sopenharmony_ci| args | Array<[ValueType](#valuetype)> | 否 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。该参数不填,或者填null或undefined,都认为是sql参数语句完整。 | 4440e41f4b71Sopenharmony_ci 4441e41f4b71Sopenharmony_ci**返回值**: 4442e41f4b71Sopenharmony_ci 4443e41f4b71Sopenharmony_ci| 类型 | 说明 | 4444e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4445e41f4b71Sopenharmony_ci| Promise<[ValueType](#valuetype)> | Promise对象,返回null。 | 4446e41f4b71Sopenharmony_ci 4447e41f4b71Sopenharmony_ci**错误码:** 4448e41f4b71Sopenharmony_ci 4449e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4450e41f4b71Sopenharmony_ci 4451e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4452e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4453e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4454e41f4b71Sopenharmony_ci| 801 | Capability not supported the sql(attach,begin,commit,rollback etc.). | 4455e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4456e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4457e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4458e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4459e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4460e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4461e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4462e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4463e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4464e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4465e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4466e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4467e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4468e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4469e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4470e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4471e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4472e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4473e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4474e41f4b71Sopenharmony_ci 4475e41f4b71Sopenharmony_ci**示例:** 4476e41f4b71Sopenharmony_ci 4477e41f4b71Sopenharmony_ci```ts 4478e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4479e41f4b71Sopenharmony_ciif(store != null) { 4480e41f4b71Sopenharmony_ci let txId : number; 4481e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).beginTrans().then((txId : number) => { 4482e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).execute("DELETE FROM TEST WHERE age = ? OR age = ?", txId, ["18", "20"]) 4483e41f4b71Sopenharmony_ci .then(() => { 4484e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).commit(txId); 4485e41f4b71Sopenharmony_ci }) 4486e41f4b71Sopenharmony_ci .catch((err: BusinessError) => { 4487e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).rollback(txId) 4488e41f4b71Sopenharmony_ci console.error(`execute sql failed, code is ${err.code},message is ${err.message}`); 4489e41f4b71Sopenharmony_ci }); 4490e41f4b71Sopenharmony_ci }); 4491e41f4b71Sopenharmony_ci} 4492e41f4b71Sopenharmony_ci``` 4493e41f4b71Sopenharmony_ci 4494e41f4b71Sopenharmony_ci### executeSync<sup>12+</sup> 4495e41f4b71Sopenharmony_ci 4496e41f4b71Sopenharmony_ciexecuteSync(sql: string, args?: Array<ValueType>): ValueType 4497e41f4b71Sopenharmony_ci 4498e41f4b71Sopenharmony_ci执行包含指定参数的SQL语句,语句中的各种表达式和操作符之间的关系操作符号不超过1000个,返回值类型为ValueType。 4499e41f4b71Sopenharmony_ci 4500e41f4b71Sopenharmony_ci该接口支持执行增删改操作,支持执行PRAGMA语法的sql,支持对表的操作(建表、删表、修改表),返回结果类型由执行具体sql的结果决定。 4501e41f4b71Sopenharmony_ci 4502e41f4b71Sopenharmony_ci此接口不支持执行查询、附加数据库和事务操作,可以使用[querySql](#querysql10)、[query](#query10)、[attach](#attach12)、[beginTransaction](#begintransaction)、[commit](#commit)等接口代替。 4503e41f4b71Sopenharmony_ci 4504e41f4b71Sopenharmony_ci不支持分号分隔的多条语句。 4505e41f4b71Sopenharmony_ci 4506e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4507e41f4b71Sopenharmony_ci 4508e41f4b71Sopenharmony_ci**参数:** 4509e41f4b71Sopenharmony_ci 4510e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4511e41f4b71Sopenharmony_ci| ------ | ------------------------------------ | ---- | ------------------------------------------------------------ | 4512e41f4b71Sopenharmony_ci| sql | string | 是 | 指定要执行的SQL语句。 | 4513e41f4b71Sopenharmony_ci| args | Array<[ValueType](#valuetype)> | 否 | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。该参数不填,或者填null或undefined,都认为是sql参数语句完整。默认值为空。 | 4514e41f4b71Sopenharmony_ci 4515e41f4b71Sopenharmony_ci**返回值**: 4516e41f4b71Sopenharmony_ci 4517e41f4b71Sopenharmony_ci| 类型 | 说明 | 4518e41f4b71Sopenharmony_ci| ----------------------- | ------------------- | 4519e41f4b71Sopenharmony_ci| [ValueType](#valuetype) | 返回sql执行后的结果 | 4520e41f4b71Sopenharmony_ci 4521e41f4b71Sopenharmony_ci**错误码:** 4522e41f4b71Sopenharmony_ci 4523e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4524e41f4b71Sopenharmony_ci 4525e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4526e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------------------ | 4527e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4528e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4529e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4530e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4531e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4532e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4533e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4534e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4535e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4536e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4537e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4538e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4539e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4540e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4541e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4542e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4543e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4544e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4545e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4546e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4547e41f4b71Sopenharmony_ci 4548e41f4b71Sopenharmony_ci**示例:** 4549e41f4b71Sopenharmony_ci 4550e41f4b71Sopenharmony_ci```ts 4551e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4552e41f4b71Sopenharmony_ci 4553e41f4b71Sopenharmony_ci// 校验数据库完整性 4554e41f4b71Sopenharmony_ciif(store != undefined) { 4555e41f4b71Sopenharmony_ci const SQL_CHECK_INTEGRITY = 'PRAGMA integrity_check'; 4556e41f4b71Sopenharmony_ci try { 4557e41f4b71Sopenharmony_ci let data = (store as relationalStore.RdbStore).executeSync(SQL_CHECK_INTEGRITY) 4558e41f4b71Sopenharmony_ci console.info(`check result: ${data}`); 4559e41f4b71Sopenharmony_ci } catch (err) { 4560e41f4b71Sopenharmony_ci console.error(`check failed, code is ${err.code}, message is ${err.message}`); 4561e41f4b71Sopenharmony_ci } 4562e41f4b71Sopenharmony_ci} 4563e41f4b71Sopenharmony_ci 4564e41f4b71Sopenharmony_ci// 删除表中所有数据 4565e41f4b71Sopenharmony_ciif(store != undefined) { 4566e41f4b71Sopenharmony_ci const SQL_DELETE_TABLE = 'DELETE FROM test'; 4567e41f4b71Sopenharmony_ci try { 4568e41f4b71Sopenharmony_ci let data = (store as relationalStore.RdbStore).executeSync(SQL_DELETE_TABLE) 4569e41f4b71Sopenharmony_ci console.info(`delete result: ${data}`); 4570e41f4b71Sopenharmony_ci } catch (err) { 4571e41f4b71Sopenharmony_ci console.error(`delete failed, code is ${err.code}, message is ${err.message}`); 4572e41f4b71Sopenharmony_ci } 4573e41f4b71Sopenharmony_ci} 4574e41f4b71Sopenharmony_ci 4575e41f4b71Sopenharmony_ci// 删表 4576e41f4b71Sopenharmony_ciif(store != undefined) { 4577e41f4b71Sopenharmony_ci const SQL_DROP_TABLE = 'DROP TABLE test'; 4578e41f4b71Sopenharmony_ci try { 4579e41f4b71Sopenharmony_ci let data = (store as relationalStore.RdbStore).executeSync(SQL_DROP_TABLE) 4580e41f4b71Sopenharmony_ci console.info(`drop result: ${data}`); 4581e41f4b71Sopenharmony_ci } catch (err) { 4582e41f4b71Sopenharmony_ci console.error(`drop failed, code is ${err.code}, message is ${err.message}`); 4583e41f4b71Sopenharmony_ci } 4584e41f4b71Sopenharmony_ci} 4585e41f4b71Sopenharmony_ci``` 4586e41f4b71Sopenharmony_ci 4587e41f4b71Sopenharmony_ci### getModifyTime<sup>10+</sup> 4588e41f4b71Sopenharmony_ci 4589e41f4b71Sopenharmony_cigetModifyTime(table: string, columnName: string, primaryKeys: PRIKeyType[], callback: AsyncCallback<ModifyTime>): void 4590e41f4b71Sopenharmony_ci 4591e41f4b71Sopenharmony_ci获取数据库表中数据的最后修改时间,使用callback异步回调。 4592e41f4b71Sopenharmony_ci 4593e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4594e41f4b71Sopenharmony_ci 4595e41f4b71Sopenharmony_ci**参数:** 4596e41f4b71Sopenharmony_ci 4597e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4598e41f4b71Sopenharmony_ci| ----------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ | 4599e41f4b71Sopenharmony_ci| table | string | 是 | 指定要查询的数据库表的表名。 | 4600e41f4b71Sopenharmony_ci| columnName | string | 是 | 指定要查询的数据库表的列名。 | 4601e41f4b71Sopenharmony_ci| primaryKeys | [PRIKeyType](#prikeytype10)[] | 是 | 指定要查询的行的主键。<br>如果数据库表无主键,参数columnName需传入"rowid",此时primaryKeys为要查询的数据库表的行号。<br>如果数据库表无主键,参数columnName传入不为"rowid",返回对应的错误码。 | 4602e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ModifyTime](#modifytime10)> | 是 | 指定callback回调函数。如果操作成功,则返回ModifyTime对象,表示数据的最后修改时间。 | 4603e41f4b71Sopenharmony_ci 4604e41f4b71Sopenharmony_ci**错误码:** 4605e41f4b71Sopenharmony_ci 4606e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4607e41f4b71Sopenharmony_ci 4608e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4609e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4610e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 3 - 4 parameter(s)! 2. The RdbStore must be not nullptr.3. The tablesNames must be not empty string. 4. The columnName must be not empty string. 5. The PRIKey must be number or string. | 4611e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 4612e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4613e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4614e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4615e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4616e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4617e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4618e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4619e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4620e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4621e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4622e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4623e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4624e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4625e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4626e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4627e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4628e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4629e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4630e41f4b71Sopenharmony_ci 4631e41f4b71Sopenharmony_ci**示例:** 4632e41f4b71Sopenharmony_ci 4633e41f4b71Sopenharmony_ci```ts 4634e41f4b71Sopenharmony_cilet PRIKey = [1, 4, 2, 3]; 4635e41f4b71Sopenharmony_ciif(store != undefined) { 4636e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).getModifyTime("EMPLOYEE", "NAME", PRIKey, (err, modifyTime: relationalStore.ModifyTime) => { 4637e41f4b71Sopenharmony_ci if (err) { 4638e41f4b71Sopenharmony_ci console.error(`getModifyTime failed, code is ${err.code},message is ${err.message}`); 4639e41f4b71Sopenharmony_ci return; 4640e41f4b71Sopenharmony_ci } 4641e41f4b71Sopenharmony_ci let size = modifyTime.size; 4642e41f4b71Sopenharmony_ci }); 4643e41f4b71Sopenharmony_ci} 4644e41f4b71Sopenharmony_ci``` 4645e41f4b71Sopenharmony_ci 4646e41f4b71Sopenharmony_ci### getModifyTime<sup>10+</sup> 4647e41f4b71Sopenharmony_ci 4648e41f4b71Sopenharmony_cigetModifyTime(table: string, columnName: string, primaryKeys: PRIKeyType[]): Promise<ModifyTime> 4649e41f4b71Sopenharmony_ci 4650e41f4b71Sopenharmony_ci获取数据库表中数据的最后修改时间,使用Promise异步回调。 4651e41f4b71Sopenharmony_ci 4652e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4653e41f4b71Sopenharmony_ci 4654e41f4b71Sopenharmony_ci**参数:** 4655e41f4b71Sopenharmony_ci 4656e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4657e41f4b71Sopenharmony_ci| ----------- | ----------------------------- | ---- | ------------------------------------------------------------ | 4658e41f4b71Sopenharmony_ci| table | string | 是 | 指定要查询的数据库表的表名。 | 4659e41f4b71Sopenharmony_ci| columnName | string | 是 | 指定要查询的数据库表的列名。 | 4660e41f4b71Sopenharmony_ci| primaryKeys | [PRIKeyType](#prikeytype10)[] | 是 | 指定要查询的行的主键。<br>如果数据库表无主键,参数columnName需传入"rowid",此时primaryKeys为要查询的数据库表的行号。<br>如果数据库表无主键,参数columnName传入不为"rowid",返回对应的错误码。 | 4661e41f4b71Sopenharmony_ci 4662e41f4b71Sopenharmony_ci**返回值**: 4663e41f4b71Sopenharmony_ci 4664e41f4b71Sopenharmony_ci| 类型 | 说明 | 4665e41f4b71Sopenharmony_ci| ------------------------------------------ | --------------------------------------------------------- | 4666e41f4b71Sopenharmony_ci| Promise<[ModifyTime](#modifytime10)> | 返回ModifyTime类型的Promise对象,表示数据最后的修改时间。 | 4667e41f4b71Sopenharmony_ci 4668e41f4b71Sopenharmony_ci**错误码:** 4669e41f4b71Sopenharmony_ci 4670e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4671e41f4b71Sopenharmony_ci 4672e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4673e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4674e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 3 - 4 parameter(s)! 2. The RdbStore must be not nullptr.3. The tablesNames must be not empty string. 4. The columnName must be not empty string. 5. The PRIKey must be number or string. | 4675e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 4676e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4677e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4678e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4679e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4680e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4681e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4682e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4683e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4684e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4685e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4686e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4687e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4688e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4689e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4690e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4691e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4692e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4693e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4694e41f4b71Sopenharmony_ci 4695e41f4b71Sopenharmony_ci**示例:** 4696e41f4b71Sopenharmony_ci 4697e41f4b71Sopenharmony_ci```ts 4698e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4699e41f4b71Sopenharmony_ci 4700e41f4b71Sopenharmony_cilet PRIKey = [1, 2, 3]; 4701e41f4b71Sopenharmony_ciif(store != undefined) { 4702e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).getModifyTime("EMPLOYEE", "NAME", PRIKey) 4703e41f4b71Sopenharmony_ci .then((modifyTime: relationalStore.ModifyTime) => { 4704e41f4b71Sopenharmony_ci let size = modifyTime.size; 4705e41f4b71Sopenharmony_ci }) 4706e41f4b71Sopenharmony_ci .catch((err: BusinessError) => { 4707e41f4b71Sopenharmony_ci console.error(`getModifyTime failed, code is ${err.code},message is ${err.message}`); 4708e41f4b71Sopenharmony_ci }); 4709e41f4b71Sopenharmony_ci} 4710e41f4b71Sopenharmony_ci``` 4711e41f4b71Sopenharmony_ci 4712e41f4b71Sopenharmony_ci### beginTransaction 4713e41f4b71Sopenharmony_ci 4714e41f4b71Sopenharmony_cibeginTransaction():void 4715e41f4b71Sopenharmony_ci 4716e41f4b71Sopenharmony_ci在开始执行SQL语句之前,开始事务。 4717e41f4b71Sopenharmony_ci此接口不允许嵌套事务,且不支持在多进程或多线程中使用。 4718e41f4b71Sopenharmony_ci 4719e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4720e41f4b71Sopenharmony_ci 4721e41f4b71Sopenharmony_ci**错误码:** 4722e41f4b71Sopenharmony_ci 4723e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4724e41f4b71Sopenharmony_ci 4725e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4726e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4727e41f4b71Sopenharmony_ci| 401 | Parameter error. The store must not be nullptr. | 4728e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4729e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4730e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4731e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4732e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4733e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4734e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4735e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4736e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4737e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4738e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4739e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4740e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4741e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4742e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4743e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4744e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4745e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4746e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4747e41f4b71Sopenharmony_ci 4748e41f4b71Sopenharmony_ci**示例:** 4749e41f4b71Sopenharmony_ci 4750e41f4b71Sopenharmony_ci```ts 4751e41f4b71Sopenharmony_ci 4752e41f4b71Sopenharmony_cilet value1 = "Lisa"; 4753e41f4b71Sopenharmony_cilet value2 = 18; 4754e41f4b71Sopenharmony_cilet value3 = 100.5; 4755e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3]); 4756e41f4b71Sopenharmony_ci 4757e41f4b71Sopenharmony_ciif(store != undefined) { 4758e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).beginTransaction(); 4759e41f4b71Sopenharmony_ci const valueBucket: relationalStore.ValuesBucket = { 4760e41f4b71Sopenharmony_ci 'NAME': value1, 4761e41f4b71Sopenharmony_ci 'AGE': value2, 4762e41f4b71Sopenharmony_ci 'SALARY': value3, 4763e41f4b71Sopenharmony_ci 'CODES': value4, 4764e41f4b71Sopenharmony_ci }; 4765e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert("test", valueBucket); 4766e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).commit(); 4767e41f4b71Sopenharmony_ci} 4768e41f4b71Sopenharmony_ci``` 4769e41f4b71Sopenharmony_ci 4770e41f4b71Sopenharmony_ci### beginTrans<sup>12+</sup> 4771e41f4b71Sopenharmony_ci 4772e41f4b71Sopenharmony_cibeginTrans(): Promise<number> 4773e41f4b71Sopenharmony_ci 4774e41f4b71Sopenharmony_ci在开始执行SQL语句之前,开始事务,使用Promise异步回调。 4775e41f4b71Sopenharmony_ci 4776e41f4b71Sopenharmony_ci与[beginTransaction](#begintransaction)的区别在于:该接口会返回事务ID,[execute](#execute12-1)可以指定不同事务ID达到事务隔离目的。 4777e41f4b71Sopenharmony_ci 4778e41f4b71Sopenharmony_ci<!--RP1--> 4779e41f4b71Sopenharmony_ci该接口仅支持[向量数据库](js-apis-data-relationalStore-sys.md#storeconfig)使用。<!--RP1End--> 4780e41f4b71Sopenharmony_ci 4781e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4782e41f4b71Sopenharmony_ci 4783e41f4b71Sopenharmony_ci**返回值**: 4784e41f4b71Sopenharmony_ci 4785e41f4b71Sopenharmony_ci| 类型 | 说明 | 4786e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4787e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回事务ID。 | 4788e41f4b71Sopenharmony_ci 4789e41f4b71Sopenharmony_ci**错误码:** 4790e41f4b71Sopenharmony_ci 4791e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4792e41f4b71Sopenharmony_ci 4793e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4794e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4795e41f4b71Sopenharmony_ci| 401 | Parameter error. The store must not be nullptr. | 4796e41f4b71Sopenharmony_ci| 801 | Capability not supported the sql(attach,begin,commit,rollback etc.). | 4797e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4798e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4799e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4800e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4801e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4802e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4803e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4804e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4805e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4806e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4807e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4808e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4809e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4810e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4811e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4812e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4813e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4814e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4815e41f4b71Sopenharmony_ci| 14800047 | The WAL file size exceeds the default limit. | 4816e41f4b71Sopenharmony_ci 4817e41f4b71Sopenharmony_ci**示例:** 4818e41f4b71Sopenharmony_ci 4819e41f4b71Sopenharmony_ci```ts 4820e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4821e41f4b71Sopenharmony_ciif(store != null) { 4822e41f4b71Sopenharmony_ci let txId : number; 4823e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).beginTrans().then((txId : number) => { 4824e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).execute("DELETE FROM TEST WHERE age = ? OR age = ?", txId, ["18", "20"]) 4825e41f4b71Sopenharmony_ci .then(() => { 4826e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).commit(txId); 4827e41f4b71Sopenharmony_ci }) 4828e41f4b71Sopenharmony_ci .catch((err: BusinessError) => { 4829e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).rollback(txId) 4830e41f4b71Sopenharmony_ci console.error(`execute sql failed, code is ${err.code},message is ${err.message}`); 4831e41f4b71Sopenharmony_ci }); 4832e41f4b71Sopenharmony_ci }); 4833e41f4b71Sopenharmony_ci} 4834e41f4b71Sopenharmony_ci``` 4835e41f4b71Sopenharmony_ci 4836e41f4b71Sopenharmony_ci### commit 4837e41f4b71Sopenharmony_ci 4838e41f4b71Sopenharmony_cicommit():void 4839e41f4b71Sopenharmony_ci 4840e41f4b71Sopenharmony_ci提交已执行的SQL语句。 4841e41f4b71Sopenharmony_ci此接口不允许嵌套事务,且不支持在多进程或多线程中使用。 4842e41f4b71Sopenharmony_ci 4843e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4844e41f4b71Sopenharmony_ci 4845e41f4b71Sopenharmony_ci**错误码:** 4846e41f4b71Sopenharmony_ci 4847e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4848e41f4b71Sopenharmony_ci 4849e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4850e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4851e41f4b71Sopenharmony_ci| 401 | Parameter error. The store must not be nullptr. | 4852e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4853e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4854e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4855e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4856e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4857e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4858e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4859e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4860e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4861e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4862e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4863e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4864e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4865e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4866e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4867e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4868e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4869e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4870e41f4b71Sopenharmony_ci 4871e41f4b71Sopenharmony_ci**示例:** 4872e41f4b71Sopenharmony_ci 4873e41f4b71Sopenharmony_ci```ts 4874e41f4b71Sopenharmony_ci 4875e41f4b71Sopenharmony_cilet value1 = "Lisa"; 4876e41f4b71Sopenharmony_cilet value2 = 18; 4877e41f4b71Sopenharmony_cilet value3 = 100.5; 4878e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3]); 4879e41f4b71Sopenharmony_ci 4880e41f4b71Sopenharmony_ciif(store != undefined) { 4881e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).beginTransaction(); 4882e41f4b71Sopenharmony_ci const valueBucket: relationalStore.ValuesBucket = { 4883e41f4b71Sopenharmony_ci 'NAME': value1, 4884e41f4b71Sopenharmony_ci 'AGE': value2, 4885e41f4b71Sopenharmony_ci 'SALARY': value3, 4886e41f4b71Sopenharmony_ci 'CODES': value4, 4887e41f4b71Sopenharmony_ci }; 4888e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert("test", valueBucket); 4889e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).commit(); 4890e41f4b71Sopenharmony_ci} 4891e41f4b71Sopenharmony_ci``` 4892e41f4b71Sopenharmony_ci 4893e41f4b71Sopenharmony_ci### commit<sup>12+</sup> 4894e41f4b71Sopenharmony_ci 4895e41f4b71Sopenharmony_cicommit(txId : number):Promise<void> 4896e41f4b71Sopenharmony_ci 4897e41f4b71Sopenharmony_ci提交已执行的SQL语句,跟[beginTrans](#begintrans12)配合使用。 4898e41f4b71Sopenharmony_ci 4899e41f4b71Sopenharmony_ci<!--RP1--> 4900e41f4b71Sopenharmony_ci该接口仅支持[向量数据库](js-apis-data-relationalStore-sys.md#storeconfig)使用。<!--RP1End--> 4901e41f4b71Sopenharmony_ci 4902e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4903e41f4b71Sopenharmony_ci 4904e41f4b71Sopenharmony_ci**参数:** 4905e41f4b71Sopenharmony_ci 4906e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4907e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 4908e41f4b71Sopenharmony_ci| txId | number | 是 | 通过[beginTrans](#begintrans12)获取的事务ID。 | 4909e41f4b71Sopenharmony_ci 4910e41f4b71Sopenharmony_ci**返回值**: 4911e41f4b71Sopenharmony_ci 4912e41f4b71Sopenharmony_ci| 类型 | 说明 | 4913e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4914e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 4915e41f4b71Sopenharmony_ci 4916e41f4b71Sopenharmony_ci**错误码:** 4917e41f4b71Sopenharmony_ci 4918e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4919e41f4b71Sopenharmony_ci 4920e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4921e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4922e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4923e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4924e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4925e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4926e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4927e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4928e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4929e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4930e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4931e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4932e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4933e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4934e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4935e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4936e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4937e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4938e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4939e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4940e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4941e41f4b71Sopenharmony_ci 4942e41f4b71Sopenharmony_ci**示例:** 4943e41f4b71Sopenharmony_ci 4944e41f4b71Sopenharmony_ci```ts 4945e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4946e41f4b71Sopenharmony_ciif(store != null) { 4947e41f4b71Sopenharmony_ci let txId : number; 4948e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).beginTrans().then((txId : number) => { 4949e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).execute("DELETE FROM TEST WHERE age = ? OR age = ?", txId, ["18", "20"]) 4950e41f4b71Sopenharmony_ci .then(() => { 4951e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).commit(txId); 4952e41f4b71Sopenharmony_ci }) 4953e41f4b71Sopenharmony_ci .catch((err: BusinessError) => { 4954e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).rollback(txId) 4955e41f4b71Sopenharmony_ci console.error(`execute sql failed, code is ${err.code},message is ${err.message}`); 4956e41f4b71Sopenharmony_ci }); 4957e41f4b71Sopenharmony_ci }); 4958e41f4b71Sopenharmony_ci} 4959e41f4b71Sopenharmony_ci``` 4960e41f4b71Sopenharmony_ci 4961e41f4b71Sopenharmony_ci### rollBack 4962e41f4b71Sopenharmony_ci 4963e41f4b71Sopenharmony_cirollBack():void 4964e41f4b71Sopenharmony_ci 4965e41f4b71Sopenharmony_ci回滚已经执行的SQL语句。 4966e41f4b71Sopenharmony_ci此接口不允许嵌套事务,且不支持在多进程或多线程中使用。 4967e41f4b71Sopenharmony_ci 4968e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 4969e41f4b71Sopenharmony_ci 4970e41f4b71Sopenharmony_ci**错误码:** 4971e41f4b71Sopenharmony_ci 4972e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 4973e41f4b71Sopenharmony_ci 4974e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 4975e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 4976e41f4b71Sopenharmony_ci| 401 | Parameter error. The store must not be nullptr. | 4977e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 4978e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 4979e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 4980e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 4981e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 4982e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 4983e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 4984e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 4985e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 4986e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 4987e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 4988e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 4989e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 4990e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 4991e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 4992e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 4993e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 4994e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 4995e41f4b71Sopenharmony_ci 4996e41f4b71Sopenharmony_ci**示例:** 4997e41f4b71Sopenharmony_ci 4998e41f4b71Sopenharmony_ci```ts 4999e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5000e41f4b71Sopenharmony_ci 5001e41f4b71Sopenharmony_cilet value1 = "Lisa"; 5002e41f4b71Sopenharmony_cilet value2 = 18; 5003e41f4b71Sopenharmony_cilet value3 = 100.5; 5004e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3]); 5005e41f4b71Sopenharmony_ci 5006e41f4b71Sopenharmony_ciif(store != undefined) { 5007e41f4b71Sopenharmony_ci try { 5008e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).beginTransaction() 5009e41f4b71Sopenharmony_ci const valueBucket: relationalStore.ValuesBucket = { 5010e41f4b71Sopenharmony_ci 'NAME': value1, 5011e41f4b71Sopenharmony_ci 'AGE': value2, 5012e41f4b71Sopenharmony_ci 'SALARY': value3, 5013e41f4b71Sopenharmony_ci 'CODES': value4, 5014e41f4b71Sopenharmony_ci }; 5015e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert("test", valueBucket); 5016e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).commit(); 5017e41f4b71Sopenharmony_ci } catch (err) { 5018e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 5019e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 5020e41f4b71Sopenharmony_ci console.error(`Transaction failed, code is ${code},message is ${message}`); 5021e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).rollBack(); 5022e41f4b71Sopenharmony_ci } 5023e41f4b71Sopenharmony_ci} 5024e41f4b71Sopenharmony_ci``` 5025e41f4b71Sopenharmony_ci 5026e41f4b71Sopenharmony_ci### rollback<sup>12+</sup> 5027e41f4b71Sopenharmony_ci 5028e41f4b71Sopenharmony_cirollback(txId : number):Promise<void> 5029e41f4b71Sopenharmony_ci 5030e41f4b71Sopenharmony_ci回滚已经执行的SQL语句,跟[beginTrans](#begintrans12)配合使用。 5031e41f4b71Sopenharmony_ci 5032e41f4b71Sopenharmony_ci<!--RP1--> 5033e41f4b71Sopenharmony_ci该接口仅支持[向量数据库](js-apis-data-relationalStore-sys.md#storeconfig)使用。<!--RP1End--> 5034e41f4b71Sopenharmony_ci 5035e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5036e41f4b71Sopenharmony_ci 5037e41f4b71Sopenharmony_ci**参数:** 5038e41f4b71Sopenharmony_ci 5039e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5040e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 5041e41f4b71Sopenharmony_ci| txId | number | 是 | 通过[beginTrans](#begintrans12)获取的事务ID。 | 5042e41f4b71Sopenharmony_ci 5043e41f4b71Sopenharmony_ci**返回值**: 5044e41f4b71Sopenharmony_ci 5045e41f4b71Sopenharmony_ci| 类型 | 说明 | 5046e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 5047e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 5048e41f4b71Sopenharmony_ci 5049e41f4b71Sopenharmony_ci**错误码:** 5050e41f4b71Sopenharmony_ci 5051e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 5052e41f4b71Sopenharmony_ci 5053e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5054e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5055e41f4b71Sopenharmony_ci| 401 | Parameter error. The store must not be nullptr. | 5056e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5057e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 5058e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5059e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 5060e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 5061e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 5062e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 5063e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 5064e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 5065e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 5066e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 5067e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 5068e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 5069e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 5070e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 5071e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 5072e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 5073e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 5074e41f4b71Sopenharmony_ci 5075e41f4b71Sopenharmony_ci**示例:** 5076e41f4b71Sopenharmony_ci 5077e41f4b71Sopenharmony_ci```ts 5078e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5079e41f4b71Sopenharmony_ciif(store != null) { 5080e41f4b71Sopenharmony_ci let txId : number; 5081e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).beginTrans().then((txId : number) => { 5082e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).execute("DELETE FROM TEST WHERE age = ? OR age = ?", txId, ["18", "20"]) 5083e41f4b71Sopenharmony_ci .then(() => { 5084e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).commit(txId); 5085e41f4b71Sopenharmony_ci }) 5086e41f4b71Sopenharmony_ci .catch((err: BusinessError) => { 5087e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).rollback(txId) 5088e41f4b71Sopenharmony_ci console.error(`execute sql failed, code is ${err.code},message is ${err.message}`); 5089e41f4b71Sopenharmony_ci }); 5090e41f4b71Sopenharmony_ci }); 5091e41f4b71Sopenharmony_ci} 5092e41f4b71Sopenharmony_ci``` 5093e41f4b71Sopenharmony_ci 5094e41f4b71Sopenharmony_ci### backup 5095e41f4b71Sopenharmony_ci 5096e41f4b71Sopenharmony_cibackup(destName:string, callback: AsyncCallback<void>):void 5097e41f4b71Sopenharmony_ci 5098e41f4b71Sopenharmony_ci以指定名称备份数据库,使用callback异步回调。 5099e41f4b71Sopenharmony_ci 5100e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5101e41f4b71Sopenharmony_ci 5102e41f4b71Sopenharmony_ci**参数:** 5103e41f4b71Sopenharmony_ci 5104e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5105e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------ | 5106e41f4b71Sopenharmony_ci| destName | string | 是 | 指定数据库的备份文件名。 | 5107e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 5108e41f4b71Sopenharmony_ci 5109e41f4b71Sopenharmony_ci**错误码:** 5110e41f4b71Sopenharmony_ci 5111e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 5112e41f4b71Sopenharmony_ci 5113e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5114e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5115e41f4b71Sopenharmony_ci| 401 | Parameter error. The store must not be nullptr. | 5116e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5117e41f4b71Sopenharmony_ci| 14800010 | Invalid database path. | 5118e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 5119e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5120e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 5121e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 5122e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 5123e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 5124e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 5125e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 5126e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 5127e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 5128e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 5129e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 5130e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 5131e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 5132e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 5133e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 5134e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 5135e41f4b71Sopenharmony_ci 5136e41f4b71Sopenharmony_ci**示例:** 5137e41f4b71Sopenharmony_ci 5138e41f4b71Sopenharmony_ci```ts 5139e41f4b71Sopenharmony_ciif(store != undefined) { 5140e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).backup("dbBackup.db", (err) => { 5141e41f4b71Sopenharmony_ci if (err) { 5142e41f4b71Sopenharmony_ci console.error(`Backup failed, code is ${err.code},message is ${err.message}`); 5143e41f4b71Sopenharmony_ci return; 5144e41f4b71Sopenharmony_ci } 5145e41f4b71Sopenharmony_ci console.info('Backup success.'); 5146e41f4b71Sopenharmony_ci }) 5147e41f4b71Sopenharmony_ci} 5148e41f4b71Sopenharmony_ci``` 5149e41f4b71Sopenharmony_ci 5150e41f4b71Sopenharmony_ci### backup 5151e41f4b71Sopenharmony_ci 5152e41f4b71Sopenharmony_cibackup(destName:string): Promise<void> 5153e41f4b71Sopenharmony_ci 5154e41f4b71Sopenharmony_ci以指定名称备份数据库,使用Promise异步回调。 5155e41f4b71Sopenharmony_ci 5156e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5157e41f4b71Sopenharmony_ci 5158e41f4b71Sopenharmony_ci**参数:** 5159e41f4b71Sopenharmony_ci 5160e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5161e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ------------------------ | 5162e41f4b71Sopenharmony_ci| destName | string | 是 | 指定数据库的备份文件名。 | 5163e41f4b71Sopenharmony_ci 5164e41f4b71Sopenharmony_ci**返回值**: 5165e41f4b71Sopenharmony_ci 5166e41f4b71Sopenharmony_ci| 类型 | 说明 | 5167e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 5168e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 5169e41f4b71Sopenharmony_ci 5170e41f4b71Sopenharmony_ci**错误码:** 5171e41f4b71Sopenharmony_ci 5172e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 5173e41f4b71Sopenharmony_ci 5174e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5175e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5176e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5177e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5178e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 5179e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5180e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 5181e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 5182e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 5183e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 5184e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 5185e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 5186e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 5187e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 5188e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 5189e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 5190e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 5191e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 5192e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 5193e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 5194e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 5195e41f4b71Sopenharmony_ci 5196e41f4b71Sopenharmony_ci**示例:** 5197e41f4b71Sopenharmony_ci 5198e41f4b71Sopenharmony_ci```ts 5199e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5200e41f4b71Sopenharmony_ci 5201e41f4b71Sopenharmony_ciif(store != undefined) { 5202e41f4b71Sopenharmony_ci let promiseBackup = (store as relationalStore.RdbStore).backup("dbBackup.db"); 5203e41f4b71Sopenharmony_ci promiseBackup.then(() => { 5204e41f4b71Sopenharmony_ci console.info('Backup success.'); 5205e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 5206e41f4b71Sopenharmony_ci console.error(`Backup failed, code is ${err.code},message is ${err.message}`); 5207e41f4b71Sopenharmony_ci }) 5208e41f4b71Sopenharmony_ci} 5209e41f4b71Sopenharmony_ci``` 5210e41f4b71Sopenharmony_ci 5211e41f4b71Sopenharmony_ci### restore 5212e41f4b71Sopenharmony_ci 5213e41f4b71Sopenharmony_cirestore(srcName:string, callback: AsyncCallback<void>):void 5214e41f4b71Sopenharmony_ci 5215e41f4b71Sopenharmony_ci从指定的数据库备份文件恢复数据库,使用callback异步回调。 5216e41f4b71Sopenharmony_ci 5217e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5218e41f4b71Sopenharmony_ci 5219e41f4b71Sopenharmony_ci**参数:** 5220e41f4b71Sopenharmony_ci 5221e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5222e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------ | 5223e41f4b71Sopenharmony_ci| srcName | string | 是 | 指定数据库的备份文件名。 | 5224e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 5225e41f4b71Sopenharmony_ci 5226e41f4b71Sopenharmony_ci**错误码:** 5227e41f4b71Sopenharmony_ci 5228e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 5229e41f4b71Sopenharmony_ci 5230e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5231e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5232e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5233e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5234e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 5235e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5236e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 5237e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 5238e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 5239e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 5240e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 5241e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 5242e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 5243e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 5244e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 5245e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 5246e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 5247e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 5248e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 5249e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 5250e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 5251e41f4b71Sopenharmony_ci 5252e41f4b71Sopenharmony_ci**示例:** 5253e41f4b71Sopenharmony_ci 5254e41f4b71Sopenharmony_ci```ts 5255e41f4b71Sopenharmony_ciif(store != undefined) { 5256e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).restore("dbBackup.db", (err) => { 5257e41f4b71Sopenharmony_ci if (err) { 5258e41f4b71Sopenharmony_ci console.error(`Restore failed, code is ${err.code},message is ${err.message}`); 5259e41f4b71Sopenharmony_ci return; 5260e41f4b71Sopenharmony_ci } 5261e41f4b71Sopenharmony_ci console.info('Restore success.'); 5262e41f4b71Sopenharmony_ci }) 5263e41f4b71Sopenharmony_ci} 5264e41f4b71Sopenharmony_ci``` 5265e41f4b71Sopenharmony_ci 5266e41f4b71Sopenharmony_ci### restore 5267e41f4b71Sopenharmony_ci 5268e41f4b71Sopenharmony_cirestore(srcName:string): Promise<void> 5269e41f4b71Sopenharmony_ci 5270e41f4b71Sopenharmony_ci从指定的数据库备份文件恢复数据库,使用Promise异步回调。 5271e41f4b71Sopenharmony_ci 5272e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5273e41f4b71Sopenharmony_ci 5274e41f4b71Sopenharmony_ci**参数:** 5275e41f4b71Sopenharmony_ci 5276e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5277e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ------------------------ | 5278e41f4b71Sopenharmony_ci| srcName | string | 是 | 指定数据库的备份文件名。 | 5279e41f4b71Sopenharmony_ci 5280e41f4b71Sopenharmony_ci**返回值**: 5281e41f4b71Sopenharmony_ci 5282e41f4b71Sopenharmony_ci| 类型 | 说明 | 5283e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 5284e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 5285e41f4b71Sopenharmony_ci 5286e41f4b71Sopenharmony_ci**错误码:** 5287e41f4b71Sopenharmony_ci 5288e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 5289e41f4b71Sopenharmony_ci 5290e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5291e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5292e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5293e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5294e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 5295e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5296e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 5297e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 5298e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 5299e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 5300e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 5301e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 5302e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 5303e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 5304e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 5305e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 5306e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 5307e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 5308e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 5309e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 5310e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 5311e41f4b71Sopenharmony_ci 5312e41f4b71Sopenharmony_ci**示例:** 5313e41f4b71Sopenharmony_ci 5314e41f4b71Sopenharmony_ci```ts 5315e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5316e41f4b71Sopenharmony_ci 5317e41f4b71Sopenharmony_ciif(store != undefined) { 5318e41f4b71Sopenharmony_ci let promiseRestore = (store as relationalStore.RdbStore).restore("dbBackup.db"); 5319e41f4b71Sopenharmony_ci promiseRestore.then(() => { 5320e41f4b71Sopenharmony_ci console.info('Restore success.'); 5321e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 5322e41f4b71Sopenharmony_ci console.error(`Restore failed, code is ${err.code},message is ${err.message}`); 5323e41f4b71Sopenharmony_ci }) 5324e41f4b71Sopenharmony_ci} 5325e41f4b71Sopenharmony_ci``` 5326e41f4b71Sopenharmony_ci 5327e41f4b71Sopenharmony_ci### setDistributedTables 5328e41f4b71Sopenharmony_ci 5329e41f4b71Sopenharmony_cisetDistributedTables(tables: Array<string>, callback: AsyncCallback<void>): void 5330e41f4b71Sopenharmony_ci 5331e41f4b71Sopenharmony_ci设置分布式数据库表,使用callback异步回调。 5332e41f4b71Sopenharmony_ci 5333e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5334e41f4b71Sopenharmony_ci 5335e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5336e41f4b71Sopenharmony_ci 5337e41f4b71Sopenharmony_ci**参数:** 5338e41f4b71Sopenharmony_ci 5339e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5340e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------------------- | 5341e41f4b71Sopenharmony_ci| tables | Array<string> | 是 | 要设置的分布式数据库表表名。 | 5342e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 5343e41f4b71Sopenharmony_ci 5344e41f4b71Sopenharmony_ci**错误码:** 5345e41f4b71Sopenharmony_ci 5346e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5347e41f4b71Sopenharmony_ci 5348e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5349e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5350e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5351e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5352e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5353e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5354e41f4b71Sopenharmony_ci 5355e41f4b71Sopenharmony_ci**示例:** 5356e41f4b71Sopenharmony_ci 5357e41f4b71Sopenharmony_ci```ts 5358e41f4b71Sopenharmony_ciif(store != undefined) { 5359e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).setDistributedTables(["EMPLOYEE"], (err) => { 5360e41f4b71Sopenharmony_ci if (err) { 5361e41f4b71Sopenharmony_ci console.error(`SetDistributedTables failed, code is ${err.code},message is ${err.message}`); 5362e41f4b71Sopenharmony_ci return; 5363e41f4b71Sopenharmony_ci } 5364e41f4b71Sopenharmony_ci console.info('SetDistributedTables successfully.'); 5365e41f4b71Sopenharmony_ci }) 5366e41f4b71Sopenharmony_ci} 5367e41f4b71Sopenharmony_ci``` 5368e41f4b71Sopenharmony_ci 5369e41f4b71Sopenharmony_ci### setDistributedTables 5370e41f4b71Sopenharmony_ci 5371e41f4b71Sopenharmony_ci setDistributedTables(tables: Array<string>): Promise<void> 5372e41f4b71Sopenharmony_ci 5373e41f4b71Sopenharmony_ci设置分布式数据库表,使用Promise异步回调。 5374e41f4b71Sopenharmony_ci 5375e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5376e41f4b71Sopenharmony_ci 5377e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5378e41f4b71Sopenharmony_ci 5379e41f4b71Sopenharmony_ci**参数:** 5380e41f4b71Sopenharmony_ci 5381e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5382e41f4b71Sopenharmony_ci| ------ | ------------------------ | ---- | ------------------------ | 5383e41f4b71Sopenharmony_ci| tables | ArrayArray<string> | 是 | 要设置的分布式数据库表表名。 | 5384e41f4b71Sopenharmony_ci 5385e41f4b71Sopenharmony_ci**返回值**: 5386e41f4b71Sopenharmony_ci 5387e41f4b71Sopenharmony_ci| 类型 | 说明 | 5388e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 5389e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 5390e41f4b71Sopenharmony_ci 5391e41f4b71Sopenharmony_ci**错误码:** 5392e41f4b71Sopenharmony_ci 5393e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5394e41f4b71Sopenharmony_ci 5395e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5396e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5397e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5398e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5399e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5400e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5401e41f4b71Sopenharmony_ci 5402e41f4b71Sopenharmony_ci**示例:** 5403e41f4b71Sopenharmony_ci 5404e41f4b71Sopenharmony_ci```ts 5405e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5406e41f4b71Sopenharmony_ci 5407e41f4b71Sopenharmony_ciif(store != undefined) { 5408e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).setDistributedTables(["EMPLOYEE"]).then(() => { 5409e41f4b71Sopenharmony_ci console.info('SetDistributedTables successfully.'); 5410e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 5411e41f4b71Sopenharmony_ci console.error(`SetDistributedTables failed, code is ${err.code},message is ${err.message}`); 5412e41f4b71Sopenharmony_ci }) 5413e41f4b71Sopenharmony_ci} 5414e41f4b71Sopenharmony_ci``` 5415e41f4b71Sopenharmony_ci 5416e41f4b71Sopenharmony_ci### setDistributedTables<sup>10+</sup> 5417e41f4b71Sopenharmony_ci 5418e41f4b71Sopenharmony_cisetDistributedTables(tables: Array<string>, type: DistributedType, callback: AsyncCallback<void>): void 5419e41f4b71Sopenharmony_ci 5420e41f4b71Sopenharmony_ci设置分布式数据库表,使用callback异步回调。 5421e41f4b71Sopenharmony_ci 5422e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5423e41f4b71Sopenharmony_ci 5424e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5425e41f4b71Sopenharmony_ci 5426e41f4b71Sopenharmony_ci**参数:** 5427e41f4b71Sopenharmony_ci 5428e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5429e41f4b71Sopenharmony_ci| -------- | ------------------------------------- | ---- | ---------------------------- | 5430e41f4b71Sopenharmony_ci| tables | Array<string> | 是 | 要设置的分布式数据库表表名。 | 5431e41f4b71Sopenharmony_ci| type | [DistributedType](#distributedtype10) | 是 | 表的分布式类型。 | 5432e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 5433e41f4b71Sopenharmony_ci 5434e41f4b71Sopenharmony_ci**错误码:** 5435e41f4b71Sopenharmony_ci 5436e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5437e41f4b71Sopenharmony_ci 5438e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5439e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5440e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5441e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5442e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5443e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5444e41f4b71Sopenharmony_ci| 14800051 | The type of the distributed table does not match. | 5445e41f4b71Sopenharmony_ci 5446e41f4b71Sopenharmony_ci**示例:** 5447e41f4b71Sopenharmony_ci 5448e41f4b71Sopenharmony_ci```ts 5449e41f4b71Sopenharmony_ciif(store != undefined) { 5450e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).setDistributedTables(["EMPLOYEE"], relationalStore.DistributedType.DISTRIBUTED_CLOUD, (err) => { 5451e41f4b71Sopenharmony_ci if (err) { 5452e41f4b71Sopenharmony_ci console.error(`SetDistributedTables failed, code is ${err.code},message is ${err.message}`); 5453e41f4b71Sopenharmony_ci return; 5454e41f4b71Sopenharmony_ci } 5455e41f4b71Sopenharmony_ci console.info('SetDistributedTables successfully.'); 5456e41f4b71Sopenharmony_ci }) 5457e41f4b71Sopenharmony_ci} 5458e41f4b71Sopenharmony_ci``` 5459e41f4b71Sopenharmony_ci 5460e41f4b71Sopenharmony_ci### setDistributedTables<sup>10+</sup> 5461e41f4b71Sopenharmony_ci 5462e41f4b71Sopenharmony_cisetDistributedTables(tables: Array<string>, type: DistributedType, config: DistributedConfig, callback: AsyncCallback<void>): void 5463e41f4b71Sopenharmony_ci 5464e41f4b71Sopenharmony_ci设置分布式数据库表,使用callback异步回调。 5465e41f4b71Sopenharmony_ci 5466e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5467e41f4b71Sopenharmony_ci 5468e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5469e41f4b71Sopenharmony_ci 5470e41f4b71Sopenharmony_ci**参数:** 5471e41f4b71Sopenharmony_ci 5472e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5473e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | --- | --------------- | 5474e41f4b71Sopenharmony_ci| tables | Array<string> | 是 | 要设置的分布式数据库表表名。 | 5475e41f4b71Sopenharmony_ci| type | [DistributedType](#distributedtype10) | 是 | 表的分布式类型。 | 5476e41f4b71Sopenharmony_ci| config | [DistributedConfig](#distributedconfig10) | 是 | 表的分布式配置信息。 | 5477e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定callback回调函数。 | 5478e41f4b71Sopenharmony_ci 5479e41f4b71Sopenharmony_ci**错误码:** 5480e41f4b71Sopenharmony_ci 5481e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5482e41f4b71Sopenharmony_ci 5483e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5484e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5485e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5486e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5487e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5488e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5489e41f4b71Sopenharmony_ci| 14800051 | The type of the distributed table does not match. | 5490e41f4b71Sopenharmony_ci 5491e41f4b71Sopenharmony_ci**示例:** 5492e41f4b71Sopenharmony_ci 5493e41f4b71Sopenharmony_ci```ts 5494e41f4b71Sopenharmony_ciif(store != undefined) { 5495e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).setDistributedTables(["EMPLOYEE"], relationalStore.DistributedType.DISTRIBUTED_CLOUD, { 5496e41f4b71Sopenharmony_ci autoSync: true 5497e41f4b71Sopenharmony_ci }, (err) => { 5498e41f4b71Sopenharmony_ci if (err) { 5499e41f4b71Sopenharmony_ci console.error(`SetDistributedTables failed, code is ${err.code},message is ${err.message}`); 5500e41f4b71Sopenharmony_ci return; 5501e41f4b71Sopenharmony_ci } 5502e41f4b71Sopenharmony_ci console.info('SetDistributedTables successfully.'); 5503e41f4b71Sopenharmony_ci }) 5504e41f4b71Sopenharmony_ci} 5505e41f4b71Sopenharmony_ci``` 5506e41f4b71Sopenharmony_ci 5507e41f4b71Sopenharmony_ci### setDistributedTables<sup>10+</sup> 5508e41f4b71Sopenharmony_ci 5509e41f4b71Sopenharmony_ci setDistributedTables(tables: Array<string>, type?: DistributedType, config?: DistributedConfig): Promise<void> 5510e41f4b71Sopenharmony_ci 5511e41f4b71Sopenharmony_ci设置分布式数据库表,使用Promise异步回调。 5512e41f4b71Sopenharmony_ci 5513e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5514e41f4b71Sopenharmony_ci 5515e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5516e41f4b71Sopenharmony_ci 5517e41f4b71Sopenharmony_ci**参数:** 5518e41f4b71Sopenharmony_ci 5519e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5520e41f4b71Sopenharmony_ci| ------ | ----------------------------------------- | ---- | ------------------------------------------------------------ | 5521e41f4b71Sopenharmony_ci| tables | Array<string> | 是 | 要设置的分布式数据库表表名。 | 5522e41f4b71Sopenharmony_ci| type | [DistributedType](#distributedtype10) | 否 | 表的分布式类型。默认值是relationalStore.DistributedType.DISTRIBUTED_DEVICE。 | 5523e41f4b71Sopenharmony_ci| config | [DistributedConfig](#distributedconfig10) | 否 | 表的分布式配置信息。不传入时默认autoSync为false,即只支持手动同步。 | 5524e41f4b71Sopenharmony_ci 5525e41f4b71Sopenharmony_ci**返回值**: 5526e41f4b71Sopenharmony_ci 5527e41f4b71Sopenharmony_ci| 类型 | 说明 | 5528e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 5529e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 5530e41f4b71Sopenharmony_ci 5531e41f4b71Sopenharmony_ci**错误码:** 5532e41f4b71Sopenharmony_ci 5533e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5534e41f4b71Sopenharmony_ci 5535e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5536e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5537e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5538e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5539e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5540e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5541e41f4b71Sopenharmony_ci| 14800051 | The type of the distributed table does not match. | 5542e41f4b71Sopenharmony_ci 5543e41f4b71Sopenharmony_ci**示例:** 5544e41f4b71Sopenharmony_ci 5545e41f4b71Sopenharmony_ci```ts 5546e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5547e41f4b71Sopenharmony_ci 5548e41f4b71Sopenharmony_ciif(store != undefined) { 5549e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).setDistributedTables(["EMPLOYEE"], relationalStore.DistributedType.DISTRIBUTED_CLOUD, { 5550e41f4b71Sopenharmony_ci autoSync: true 5551e41f4b71Sopenharmony_ci }).then(() => { 5552e41f4b71Sopenharmony_ci console.info('SetDistributedTables successfully.'); 5553e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 5554e41f4b71Sopenharmony_ci console.error(`SetDistributedTables failed, code is ${err.code},message is ${err.message}`); 5555e41f4b71Sopenharmony_ci }) 5556e41f4b71Sopenharmony_ci} 5557e41f4b71Sopenharmony_ci``` 5558e41f4b71Sopenharmony_ci 5559e41f4b71Sopenharmony_ci### obtainDistributedTableName 5560e41f4b71Sopenharmony_ci 5561e41f4b71Sopenharmony_ciobtainDistributedTableName(device: string, table: string, callback: AsyncCallback<string>): void 5562e41f4b71Sopenharmony_ci 5563e41f4b71Sopenharmony_ci根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。 5564e41f4b71Sopenharmony_ci 5565e41f4b71Sopenharmony_ci> **说明:** 5566e41f4b71Sopenharmony_ci> 5567e41f4b71Sopenharmony_ci> 其中device通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。 5568e41f4b71Sopenharmony_ci 5569e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5570e41f4b71Sopenharmony_ci 5571e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5572e41f4b71Sopenharmony_ci 5573e41f4b71Sopenharmony_ci**参数:** 5574e41f4b71Sopenharmony_ci 5575e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5576e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ------------------------------------------------------------ | 5577e41f4b71Sopenharmony_ci| device | string | 是 | 远程设备ID 。 | 5578e41f4b71Sopenharmony_ci| table | string | 是 | 远程设备的本地表名。 | 5579e41f4b71Sopenharmony_ci| callback | AsyncCallback<string> | 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 | 5580e41f4b71Sopenharmony_ci 5581e41f4b71Sopenharmony_ci**错误码:** 5582e41f4b71Sopenharmony_ci 5583e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5584e41f4b71Sopenharmony_ci 5585e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5586e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5587e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5588e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5589e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5590e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5591e41f4b71Sopenharmony_ci 5592e41f4b71Sopenharmony_ci**示例:** 5593e41f4b71Sopenharmony_ci 5594e41f4b71Sopenharmony_ci```ts 5595e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 5596e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5597e41f4b71Sopenharmony_ci 5598e41f4b71Sopenharmony_cilet dmInstance: distributedDeviceManager.DeviceManager; 5599e41f4b71Sopenharmony_cilet deviceId: string | undefined = undefined; 5600e41f4b71Sopenharmony_ci 5601e41f4b71Sopenharmony_citry { 5602e41f4b71Sopenharmony_ci dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify"); 5603e41f4b71Sopenharmony_ci let devices = dmInstance.getAvailableDeviceListSync(); 5604e41f4b71Sopenharmony_ci deviceId = devices[0].networkId; 5605e41f4b71Sopenharmony_ci} catch (err) { 5606e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 5607e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 5608e41f4b71Sopenharmony_ci console.error("createDeviceManager errCode:" + code + ",errMessage:" + message); 5609e41f4b71Sopenharmony_ci} 5610e41f4b71Sopenharmony_ci 5611e41f4b71Sopenharmony_ciif(store != undefined && deviceId != undefined) { 5612e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).obtainDistributedTableName(deviceId, "EMPLOYEE", (err, tableName) => { 5613e41f4b71Sopenharmony_ci if (err) { 5614e41f4b71Sopenharmony_ci console.error(`ObtainDistributedTableName failed, code is ${err.code},message is ${err.message}`); 5615e41f4b71Sopenharmony_ci return; 5616e41f4b71Sopenharmony_ci } 5617e41f4b71Sopenharmony_ci console.info(`ObtainDistributedTableName successfully, tableName= ${tableName}`); 5618e41f4b71Sopenharmony_ci }) 5619e41f4b71Sopenharmony_ci} 5620e41f4b71Sopenharmony_ci``` 5621e41f4b71Sopenharmony_ci 5622e41f4b71Sopenharmony_ci### obtainDistributedTableName 5623e41f4b71Sopenharmony_ci 5624e41f4b71Sopenharmony_ci obtainDistributedTableName(device: string, table: string): Promise<string> 5625e41f4b71Sopenharmony_ci 5626e41f4b71Sopenharmony_ci根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。 5627e41f4b71Sopenharmony_ci 5628e41f4b71Sopenharmony_ci> **说明:** 5629e41f4b71Sopenharmony_ci> 5630e41f4b71Sopenharmony_ci> 其中device通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。 5631e41f4b71Sopenharmony_ci 5632e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5633e41f4b71Sopenharmony_ci 5634e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5635e41f4b71Sopenharmony_ci 5636e41f4b71Sopenharmony_ci**参数:** 5637e41f4b71Sopenharmony_ci 5638e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5639e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------- | 5640e41f4b71Sopenharmony_ci| device | string | 是 | 远程设备ID。 | 5641e41f4b71Sopenharmony_ci| table | string | 是 | 远程设备的本地表名。 | 5642e41f4b71Sopenharmony_ci 5643e41f4b71Sopenharmony_ci**返回值**: 5644e41f4b71Sopenharmony_ci 5645e41f4b71Sopenharmony_ci| 类型 | 说明 | 5646e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------------------------- | 5647e41f4b71Sopenharmony_ci| Promise<string> | Promise对象。如果操作成功,返回远程设备的分布式表名。 | 5648e41f4b71Sopenharmony_ci 5649e41f4b71Sopenharmony_ci**错误码:** 5650e41f4b71Sopenharmony_ci 5651e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5652e41f4b71Sopenharmony_ci 5653e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5654e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5655e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5656e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5657e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5658e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5659e41f4b71Sopenharmony_ci 5660e41f4b71Sopenharmony_ci**示例:** 5661e41f4b71Sopenharmony_ci 5662e41f4b71Sopenharmony_ci```ts 5663e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 5664e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5665e41f4b71Sopenharmony_ci 5666e41f4b71Sopenharmony_cilet dmInstance: distributedDeviceManager.DeviceManager; 5667e41f4b71Sopenharmony_cilet deviceId: string | undefined = undefined; 5668e41f4b71Sopenharmony_ci 5669e41f4b71Sopenharmony_citry { 5670e41f4b71Sopenharmony_ci dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify"); 5671e41f4b71Sopenharmony_ci let devices = dmInstance.getAvailableDeviceListSync(); 5672e41f4b71Sopenharmony_ci deviceId = devices[0].networkId; 5673e41f4b71Sopenharmony_ci} catch (err) { 5674e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 5675e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 5676e41f4b71Sopenharmony_ci console.error("createDeviceManager errCode:" + code + ",errMessage:" + message); 5677e41f4b71Sopenharmony_ci} 5678e41f4b71Sopenharmony_ci 5679e41f4b71Sopenharmony_ciif(store != undefined && deviceId != undefined) { 5680e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).obtainDistributedTableName(deviceId, "EMPLOYEE").then((tableName: string) => { 5681e41f4b71Sopenharmony_ci console.info(`ObtainDistributedTableName successfully, tableName= ${tableName}`); 5682e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 5683e41f4b71Sopenharmony_ci console.error(`ObtainDistributedTableName failed, code is ${err.code},message is ${err.message}`); 5684e41f4b71Sopenharmony_ci }) 5685e41f4b71Sopenharmony_ci} 5686e41f4b71Sopenharmony_ci``` 5687e41f4b71Sopenharmony_ci 5688e41f4b71Sopenharmony_ci### sync 5689e41f4b71Sopenharmony_ci 5690e41f4b71Sopenharmony_cisync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array<[string, number]>>): void 5691e41f4b71Sopenharmony_ci 5692e41f4b71Sopenharmony_ci在设备之间同步数据, 使用callback异步回调。 5693e41f4b71Sopenharmony_ci 5694e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5695e41f4b71Sopenharmony_ci 5696e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5697e41f4b71Sopenharmony_ci 5698e41f4b71Sopenharmony_ci**参数:** 5699e41f4b71Sopenharmony_ci 5700e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5701e41f4b71Sopenharmony_ci| ---------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ | 5702e41f4b71Sopenharmony_ci| mode | [SyncMode](#syncmode) | 是 | 指同步模式。该值可以是relationalStore.SyncMode.SYNC_MODE_PUSH、relationalStore.SyncMode.SYNC_MODE_PULL。 | 5703e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 | 5704e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[string, number]>> | 是 | 指定的callback回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 | 5705e41f4b71Sopenharmony_ci 5706e41f4b71Sopenharmony_ci**错误码:** 5707e41f4b71Sopenharmony_ci 5708e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5709e41f4b71Sopenharmony_ci 5710e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5711e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5712e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5713e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5714e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5715e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5716e41f4b71Sopenharmony_ci 5717e41f4b71Sopenharmony_ci**示例:** 5718e41f4b71Sopenharmony_ci 5719e41f4b71Sopenharmony_ci```ts 5720e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 5721e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5722e41f4b71Sopenharmony_ci 5723e41f4b71Sopenharmony_cilet dmInstance: distributedDeviceManager.DeviceManager; 5724e41f4b71Sopenharmony_cilet deviceIds: Array<string> = []; 5725e41f4b71Sopenharmony_ci 5726e41f4b71Sopenharmony_citry { 5727e41f4b71Sopenharmony_ci dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify"); 5728e41f4b71Sopenharmony_ci let devices: Array<distributedDeviceManager.DeviceBasicInfo> = dmInstance.getAvailableDeviceListSync(); 5729e41f4b71Sopenharmony_ci for (let i = 0; i < devices.length; i++) { 5730e41f4b71Sopenharmony_ci deviceIds[i] = devices[i].networkId!; 5731e41f4b71Sopenharmony_ci } 5732e41f4b71Sopenharmony_ci} catch (err) { 5733e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 5734e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 5735e41f4b71Sopenharmony_ci console.error("createDeviceManager errCode:" + code + ",errMessage:" + message); 5736e41f4b71Sopenharmony_ci} 5737e41f4b71Sopenharmony_ci 5738e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates('EMPLOYEE'); 5739e41f4b71Sopenharmony_cipredicates.inDevices(deviceIds); 5740e41f4b71Sopenharmony_ciif(store != undefined) { 5741e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).sync(relationalStore.SyncMode.SYNC_MODE_PUSH, predicates, (err, result) => { 5742e41f4b71Sopenharmony_ci if (err) { 5743e41f4b71Sopenharmony_ci console.error(`Sync failed, code is ${err.code},message is ${err.message}`); 5744e41f4b71Sopenharmony_ci return; 5745e41f4b71Sopenharmony_ci } 5746e41f4b71Sopenharmony_ci console.info('Sync done.'); 5747e41f4b71Sopenharmony_ci for (let i = 0; i < result.length; i++) { 5748e41f4b71Sopenharmony_ci console.info(`device= ${result[i][0]}, status= ${result[i][1]}`); 5749e41f4b71Sopenharmony_ci } 5750e41f4b71Sopenharmony_ci }) 5751e41f4b71Sopenharmony_ci} 5752e41f4b71Sopenharmony_ci``` 5753e41f4b71Sopenharmony_ci 5754e41f4b71Sopenharmony_ci### sync 5755e41f4b71Sopenharmony_ci 5756e41f4b71Sopenharmony_ci sync(mode: SyncMode, predicates: RdbPredicates): Promise<Array<[string, number]>> 5757e41f4b71Sopenharmony_ci 5758e41f4b71Sopenharmony_ci在设备之间同步数据,使用Promise异步回调。 5759e41f4b71Sopenharmony_ci 5760e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC 5761e41f4b71Sopenharmony_ci 5762e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 5763e41f4b71Sopenharmony_ci 5764e41f4b71Sopenharmony_ci**参数:** 5765e41f4b71Sopenharmony_ci 5766e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5767e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ------------------------------ | 5768e41f4b71Sopenharmony_ci| mode | [SyncMode](#syncmode) | 是 | 指同步模式。该值可以是relationalStore.SyncMode.SYNC_MODE_PUSH、relationalStore.SyncMode.SYNC_MODE_PULL。 | 5769e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 | 5770e41f4b71Sopenharmony_ci 5771e41f4b71Sopenharmony_ci**返回值**: 5772e41f4b71Sopenharmony_ci 5773e41f4b71Sopenharmony_ci| 类型 | 说明 | 5774e41f4b71Sopenharmony_ci| -------------------------------------------- | ------------------------------------------------------------ | 5775e41f4b71Sopenharmony_ci| Promise<Array<[string, number]>> | Promise对象,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 | 5776e41f4b71Sopenharmony_ci 5777e41f4b71Sopenharmony_ci**错误码:** 5778e41f4b71Sopenharmony_ci 5779e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5780e41f4b71Sopenharmony_ci 5781e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5782e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 5783e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 5784e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5785e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 5786e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5787e41f4b71Sopenharmony_ci 5788e41f4b71Sopenharmony_ci**示例:** 5789e41f4b71Sopenharmony_ci 5790e41f4b71Sopenharmony_ci```ts 5791e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 5792e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5793e41f4b71Sopenharmony_ci 5794e41f4b71Sopenharmony_cilet dmInstance: distributedDeviceManager.DeviceManager; 5795e41f4b71Sopenharmony_cilet deviceIds: Array<string> = []; 5796e41f4b71Sopenharmony_ci 5797e41f4b71Sopenharmony_citry { 5798e41f4b71Sopenharmony_ci dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify"); 5799e41f4b71Sopenharmony_ci let devices: Array<distributedDeviceManager.DeviceBasicInfo> = dmInstance.getAvailableDeviceListSync(); 5800e41f4b71Sopenharmony_ci for (let i = 0; i < devices.length; i++) { 5801e41f4b71Sopenharmony_ci deviceIds[i] = devices[i].networkId!; 5802e41f4b71Sopenharmony_ci } 5803e41f4b71Sopenharmony_ci} catch (err) { 5804e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 5805e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 5806e41f4b71Sopenharmony_ci console.error("createDeviceManager errCode:" + code + ",errMessage:" + message); 5807e41f4b71Sopenharmony_ci} 5808e41f4b71Sopenharmony_ci 5809e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates('EMPLOYEE'); 5810e41f4b71Sopenharmony_cipredicates.inDevices(deviceIds); 5811e41f4b71Sopenharmony_ciif(store != undefined) { 5812e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).sync(relationalStore.SyncMode.SYNC_MODE_PUSH, predicates).then((result: Object[][]) => { 5813e41f4b71Sopenharmony_ci console.info('Sync done.'); 5814e41f4b71Sopenharmony_ci for (let i = 0; i < result.length; i++) { 5815e41f4b71Sopenharmony_ci console.info(`device= ${result[i][0]}, status= ${result[i][1]}`); 5816e41f4b71Sopenharmony_ci } 5817e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 5818e41f4b71Sopenharmony_ci console.error(`Sync failed, code is ${err.code},message is ${err.message}`); 5819e41f4b71Sopenharmony_ci }) 5820e41f4b71Sopenharmony_ci} 5821e41f4b71Sopenharmony_ci``` 5822e41f4b71Sopenharmony_ci 5823e41f4b71Sopenharmony_ci### cloudSync<sup>10+</sup> 5824e41f4b71Sopenharmony_ci 5825e41f4b71Sopenharmony_cicloudSync(mode: SyncMode, progress: Callback<ProgressDetails>, callback: AsyncCallback<void>): void 5826e41f4b71Sopenharmony_ci 5827e41f4b71Sopenharmony_ci手动执行对所有分布式表的端云同步,使用callback异步回调。使用该接口需要实现云服务功能。 5828e41f4b71Sopenharmony_ci 5829e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 5830e41f4b71Sopenharmony_ci 5831e41f4b71Sopenharmony_ci**参数:** 5832e41f4b71Sopenharmony_ci 5833e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5834e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------- | ---- | -------------------------------------------------- | 5835e41f4b71Sopenharmony_ci| mode | [SyncMode](#syncmode) | 是 | 表示数据库的同步模式。 | 5836e41f4b71Sopenharmony_ci| progress | Callback<[ProgressDetails](#progressdetails10)> | 是 | 用来处理数据库同步详细信息的回调函数。 | 5837e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定的callback回调函数,用于向调用者发送同步结果。 | 5838e41f4b71Sopenharmony_ci 5839e41f4b71Sopenharmony_ci**错误码:** 5840e41f4b71Sopenharmony_ci 5841e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5842e41f4b71Sopenharmony_ci 5843e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5844e41f4b71Sopenharmony_ci|-----------|-------| 5845e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 2 - 4 parameter(s). 2. The RdbStore must be not nullptr. 3. The mode must be a SyncMode of cloud. 4. The progress must be a callback type. 5. The callback must be a function. | 5846e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5847e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5848e41f4b71Sopenharmony_ci 5849e41f4b71Sopenharmony_ci**示例:** 5850e41f4b71Sopenharmony_ci 5851e41f4b71Sopenharmony_ci```ts 5852e41f4b71Sopenharmony_ciif(store != undefined) { 5853e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).cloudSync(relationalStore.SyncMode.SYNC_MODE_CLOUD_FIRST, (progressDetails) => { 5854e41f4b71Sopenharmony_ci console.info(`Progess: ${progressDetails}`); 5855e41f4b71Sopenharmony_ci }, (err) => { 5856e41f4b71Sopenharmony_ci if (err) { 5857e41f4b71Sopenharmony_ci console.error(`Cloud sync failed, code is ${err.code},message is ${err.message}`); 5858e41f4b71Sopenharmony_ci return; 5859e41f4b71Sopenharmony_ci } 5860e41f4b71Sopenharmony_ci console.info('Cloud sync succeeded'); 5861e41f4b71Sopenharmony_ci }); 5862e41f4b71Sopenharmony_ci} 5863e41f4b71Sopenharmony_ci``` 5864e41f4b71Sopenharmony_ci 5865e41f4b71Sopenharmony_ci### cloudSync<sup>10+</sup> 5866e41f4b71Sopenharmony_ci 5867e41f4b71Sopenharmony_cicloudSync(mode: SyncMode, progress: Callback<ProgressDetails>): Promise<void> 5868e41f4b71Sopenharmony_ci 5869e41f4b71Sopenharmony_ci手动执行对所有分布式表的端云同步,使用Promise异步回调。使用该接口需要实现云服务功能。 5870e41f4b71Sopenharmony_ci 5871e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 5872e41f4b71Sopenharmony_ci 5873e41f4b71Sopenharmony_ci**参数:** 5874e41f4b71Sopenharmony_ci 5875e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5876e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------- | ---- | -------------------------------------- | 5877e41f4b71Sopenharmony_ci| mode | [SyncMode](#syncmode) | 是 | 表示数据库的同步模式。 | 5878e41f4b71Sopenharmony_ci| progress | Callback<[ProgressDetails](#progressdetails10)> | 是 | 用来处理数据库同步详细信息的回调函数。 | 5879e41f4b71Sopenharmony_ci 5880e41f4b71Sopenharmony_ci**返回值**: 5881e41f4b71Sopenharmony_ci 5882e41f4b71Sopenharmony_ci| 类型 | 说明 | 5883e41f4b71Sopenharmony_ci| ------------------- | --------------------------------------- | 5884e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,用于向调用者发送同步结果。 | 5885e41f4b71Sopenharmony_ci 5886e41f4b71Sopenharmony_ci**错误码:** 5887e41f4b71Sopenharmony_ci 5888e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5889e41f4b71Sopenharmony_ci 5890e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5891e41f4b71Sopenharmony_ci|-----------|------------------| 5892e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 2 - 4 parameter(s). 2. The RdbStore must be not nullptr. 3. The mode must be a SyncMode of cloud. 4. The progress must be a callback type. | 5893e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5894e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5895e41f4b71Sopenharmony_ci 5896e41f4b71Sopenharmony_ci**示例:** 5897e41f4b71Sopenharmony_ci 5898e41f4b71Sopenharmony_ci```ts 5899e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5900e41f4b71Sopenharmony_ci 5901e41f4b71Sopenharmony_ciif(store != undefined) { 5902e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).cloudSync(relationalStore.SyncMode.SYNC_MODE_CLOUD_FIRST, (progressDetail: relationalStore.ProgressDetails) => { 5903e41f4b71Sopenharmony_ci console.info(`progress: ${progressDetail}`); 5904e41f4b71Sopenharmony_ci }).then(() => { 5905e41f4b71Sopenharmony_ci console.info('Cloud sync succeeded'); 5906e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 5907e41f4b71Sopenharmony_ci console.error(`cloudSync failed, code is ${err.code},message is ${err.message}`); 5908e41f4b71Sopenharmony_ci }); 5909e41f4b71Sopenharmony_ci} 5910e41f4b71Sopenharmony_ci``` 5911e41f4b71Sopenharmony_ci 5912e41f4b71Sopenharmony_ci### cloudSync<sup>10+</sup> 5913e41f4b71Sopenharmony_ci 5914e41f4b71Sopenharmony_cicloudSync(mode: SyncMode, tables: string[], progress: Callback<ProgressDetails>, callback: AsyncCallback<void>): void 5915e41f4b71Sopenharmony_ci 5916e41f4b71Sopenharmony_ci手动执行对指定表的端云同步,使用callback异步回调。使用该接口需要实现云服务功能。 5917e41f4b71Sopenharmony_ci 5918e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 5919e41f4b71Sopenharmony_ci 5920e41f4b71Sopenharmony_ci**参数:** 5921e41f4b71Sopenharmony_ci 5922e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5923e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------- | ---- | -------------------------------------------------- | 5924e41f4b71Sopenharmony_ci| mode | [SyncMode](#syncmode) | 是 | 表示数据库的同步模式。 | 5925e41f4b71Sopenharmony_ci| tables | string[] | 是 | 指定同步的表名。 | 5926e41f4b71Sopenharmony_ci| progress | Callback<[ProgressDetails](#progressdetails10)> | 是 | 用来处理数据库同步详细信息的回调函数。 | 5927e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定的callback回调函数,用于向调用者发送同步结果。 | 5928e41f4b71Sopenharmony_ci 5929e41f4b71Sopenharmony_ci**错误码:** 5930e41f4b71Sopenharmony_ci 5931e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5932e41f4b71Sopenharmony_ci 5933e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5934e41f4b71Sopenharmony_ci|-----------|-------| 5935e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 2 - 4 parameter(s). 2. The RdbStore must be not nullptr. 3. The mode must be a SyncMode of cloud. 4. The tablesNames must be not empty. 5. The progress must be a callback type. 6.The callback must be a function.| 5936e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5937e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5938e41f4b71Sopenharmony_ci 5939e41f4b71Sopenharmony_ci**示例:** 5940e41f4b71Sopenharmony_ci 5941e41f4b71Sopenharmony_ci```ts 5942e41f4b71Sopenharmony_ciconst tables = ["table1", "table2"]; 5943e41f4b71Sopenharmony_ci 5944e41f4b71Sopenharmony_ciif(store != undefined) { 5945e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).cloudSync(relationalStore.SyncMode.SYNC_MODE_CLOUD_FIRST, tables, (progressDetail: relationalStore.ProgressDetails) => { 5946e41f4b71Sopenharmony_ci console.info(`Progess: ${progressDetail}`); 5947e41f4b71Sopenharmony_ci }, (err) => { 5948e41f4b71Sopenharmony_ci if (err) { 5949e41f4b71Sopenharmony_ci console.error(`Cloud sync failed, code is ${err.code},message is ${err.message}`); 5950e41f4b71Sopenharmony_ci return; 5951e41f4b71Sopenharmony_ci } 5952e41f4b71Sopenharmony_ci console.info('Cloud sync succeeded'); 5953e41f4b71Sopenharmony_ci }); 5954e41f4b71Sopenharmony_ci}; 5955e41f4b71Sopenharmony_ci``` 5956e41f4b71Sopenharmony_ci 5957e41f4b71Sopenharmony_ci### cloudSync<sup>10+</sup> 5958e41f4b71Sopenharmony_ci 5959e41f4b71Sopenharmony_cicloudSync(mode: SyncMode, tables: string[], progress: Callback<ProgressDetails>): Promise<void> 5960e41f4b71Sopenharmony_ci 5961e41f4b71Sopenharmony_ci手动执行对指定表的端云同步,使用Promise异步回调。使用该接口需要实现云服务功能。 5962e41f4b71Sopenharmony_ci 5963e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 5964e41f4b71Sopenharmony_ci 5965e41f4b71Sopenharmony_ci**参数:** 5966e41f4b71Sopenharmony_ci 5967e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5968e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------- | ---- | -------------------------------------- | 5969e41f4b71Sopenharmony_ci| mode | [SyncMode](#syncmode) | 是 | 表示数据库的同步模式。 | 5970e41f4b71Sopenharmony_ci| tables | string[] | 是 | 指定同步的表名。 | 5971e41f4b71Sopenharmony_ci| progress | Callback<[ProgressDetails](#progressdetails10)> | 是 | 用来处理数据库同步详细信息的回调函数。 | 5972e41f4b71Sopenharmony_ci 5973e41f4b71Sopenharmony_ci**返回值**: 5974e41f4b71Sopenharmony_ci 5975e41f4b71Sopenharmony_ci| 类型 | 说明 | 5976e41f4b71Sopenharmony_ci| ------------------- | --------------------------------------- | 5977e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,用于向调用者发送同步结果。 | 5978e41f4b71Sopenharmony_ci 5979e41f4b71Sopenharmony_ci**错误码:** 5980e41f4b71Sopenharmony_ci 5981e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 5982e41f4b71Sopenharmony_ci 5983e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 5984e41f4b71Sopenharmony_ci|-----------|---------------| 5985e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 2 - 4 parameter(s). 2. The RdbStore must be not nullptr. 3. The mode must be a SyncMode of cloud. 4. The tablesNames must be not empty. 5. The progress must be a callback type | 5986e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 5987e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 5988e41f4b71Sopenharmony_ci 5989e41f4b71Sopenharmony_ci**示例:** 5990e41f4b71Sopenharmony_ci 5991e41f4b71Sopenharmony_ci```ts 5992e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5993e41f4b71Sopenharmony_ci 5994e41f4b71Sopenharmony_ciconst tables = ["table1", "table2"]; 5995e41f4b71Sopenharmony_ci 5996e41f4b71Sopenharmony_ciif(store != undefined) { 5997e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).cloudSync(relationalStore.SyncMode.SYNC_MODE_CLOUD_FIRST, tables, (progressDetail: relationalStore.ProgressDetails) => { 5998e41f4b71Sopenharmony_ci console.info(`progress: ${progressDetail}`); 5999e41f4b71Sopenharmony_ci }).then(() => { 6000e41f4b71Sopenharmony_ci console.info('Cloud sync succeeded'); 6001e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 6002e41f4b71Sopenharmony_ci console.error(`cloudSync failed, code is ${err.code},message is ${err.message}`); 6003e41f4b71Sopenharmony_ci }); 6004e41f4b71Sopenharmony_ci}; 6005e41f4b71Sopenharmony_ci``` 6006e41f4b71Sopenharmony_ci 6007e41f4b71Sopenharmony_ci### on('dataChange') 6008e41f4b71Sopenharmony_ci 6009e41f4b71Sopenharmony_cion(event: 'dataChange', type: SubscribeType, observer: Callback<Array<string>>): void 6010e41f4b71Sopenharmony_ci 6011e41f4b71Sopenharmony_ci注册数据库的数据变更的事件监听。当分布式数据库中的数据发生更改时,将调用回调。 6012e41f4b71Sopenharmony_ci 6013e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6014e41f4b71Sopenharmony_ci 6015e41f4b71Sopenharmony_ci**参数:** 6016e41f4b71Sopenharmony_ci 6017e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6018e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 6019e41f4b71Sopenharmony_ci| event | string | 是 | 取值为'dataChange',表示数据更改。 | 6020e41f4b71Sopenharmony_ci| type | [SubscribeType](#subscribetype) | 是 | 订阅类型。 | 6021e41f4b71Sopenharmony_ci| observer | Callback<Array<string>> | 是 | 指分布式数据库中数据更改事件的观察者。Array<string>为数据库中的数据发生改变的对端设备ID。 | 6022e41f4b71Sopenharmony_ci 6023e41f4b71Sopenharmony_ci**错误码:** 6024e41f4b71Sopenharmony_ci 6025e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6026e41f4b71Sopenharmony_ci 6027e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6028e41f4b71Sopenharmony_ci|-----------|-------------| 6029e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6030e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6031e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6032e41f4b71Sopenharmony_ci 6033e41f4b71Sopenharmony_ci**示例:** 6034e41f4b71Sopenharmony_ci 6035e41f4b71Sopenharmony_ci```ts 6036e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 6037e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6038e41f4b71Sopenharmony_ci 6039e41f4b71Sopenharmony_cilet storeObserver = (devices: Array<string>) => { 6040e41f4b71Sopenharmony_ci if (devices != undefined) { 6041e41f4b71Sopenharmony_ci for (let i = 0; i < devices.length; i++) { 6042e41f4b71Sopenharmony_ci console.info(`device= ${devices[i]} data changed`); 6043e41f4b71Sopenharmony_ci } 6044e41f4b71Sopenharmony_ci } 6045e41f4b71Sopenharmony_ci} 6046e41f4b71Sopenharmony_ci 6047e41f4b71Sopenharmony_citry { 6048e41f4b71Sopenharmony_ci if (store != undefined) { 6049e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) 6050e41f4b71Sopenharmony_ci } 6051e41f4b71Sopenharmony_ci} catch (err) { 6052e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6053e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6054e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6055e41f4b71Sopenharmony_ci} 6056e41f4b71Sopenharmony_ci``` 6057e41f4b71Sopenharmony_ci 6058e41f4b71Sopenharmony_ci### on('dataChange')<sup>10+</sup> 6059e41f4b71Sopenharmony_ci 6060e41f4b71Sopenharmony_cion(event: 'dataChange', type: SubscribeType, observer: Callback<Array<string>>\| Callback<Array<ChangeInfo>>): void 6061e41f4b71Sopenharmony_ci 6062e41f4b71Sopenharmony_ci注册数据库的数据变更的事件监听。当分布式数据库或本地数据库中的数据发生更改时,将调用回调。 6063e41f4b71Sopenharmony_ci 6064e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6065e41f4b71Sopenharmony_ci 6066e41f4b71Sopenharmony_ci**参数:** 6067e41f4b71Sopenharmony_ci 6068e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6069e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | ---- | ------------------------------------------- | 6070e41f4b71Sopenharmony_ci| event | string | 是 | 取值为'dataChange',表示数据更改。 | 6071e41f4b71Sopenharmony_ci| type | [SubscribeType](#subscribetype) | 是 | 订阅类型。 | 6072e41f4b71Sopenharmony_ci| observer | Callback<Array<string>> \| Callback<Array<[ChangeInfo](#changeinfo10)>> | 是 | 回调函数。<br>当type为SUBSCRIBE_TYPE_REMOTE,observer类型需为Callback<Array<string>>,其中Array<string>为数据库中的数据发生改变的对端设备ID。<br> 当type为SUBSCRIBE_TYPE_CLOUD,observer类型需为Callback<Array<string>>,其中Array<string>为数据库中的数据发生改变的云端账号。 <br> 当type为SUBSCRIBE_TYPE_CLOUD_DETAILS,observer类型需为Callback<Array<ChangeInfo>>,其中Array<ChangeInfo>为数据库端云同步过程的详情。<br>当type为SUBSCRIBE_TYPE_LOCAL_DETAILS,observer类型需为Callback<Array<ChangeInfo>>,其中Array<ChangeInfo>为本地数据库中的数据更改的详情。 | 6073e41f4b71Sopenharmony_ci 6074e41f4b71Sopenharmony_ci**错误码:** 6075e41f4b71Sopenharmony_ci 6076e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6077e41f4b71Sopenharmony_ci 6078e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6079e41f4b71Sopenharmony_ci|-----------|-------------| 6080e41f4b71Sopenharmony_ci| 202 | Permission verification failed, application which is not a system application uses system API. | 6081e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6082e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6083e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6084e41f4b71Sopenharmony_ci 6085e41f4b71Sopenharmony_ci**示例1:type为SUBSCRIBE_TYPE_REMOTE** 6086e41f4b71Sopenharmony_ci 6087e41f4b71Sopenharmony_ci```ts 6088e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 6089e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6090e41f4b71Sopenharmony_ci 6091e41f4b71Sopenharmony_cilet storeObserver = (devices: Array<string>) => { 6092e41f4b71Sopenharmony_ci if (devices != undefined) { 6093e41f4b71Sopenharmony_ci for (let i = 0; i < devices.length; i++) { 6094e41f4b71Sopenharmony_ci console.info(`device= ${devices[i]} data changed`); 6095e41f4b71Sopenharmony_ci } 6096e41f4b71Sopenharmony_ci } 6097e41f4b71Sopenharmony_ci} 6098e41f4b71Sopenharmony_ci 6099e41f4b71Sopenharmony_citry { 6100e41f4b71Sopenharmony_ci if(store != undefined) { 6101e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver); 6102e41f4b71Sopenharmony_ci } 6103e41f4b71Sopenharmony_ci} catch (err) { 6104e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6105e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 6106e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6107e41f4b71Sopenharmony_ci} 6108e41f4b71Sopenharmony_ci``` 6109e41f4b71Sopenharmony_ci 6110e41f4b71Sopenharmony_ci**示例2:type为SUBSCRIBE_TYPE_LOCAL_DETAILS** 6111e41f4b71Sopenharmony_ci 6112e41f4b71Sopenharmony_ci```ts 6113e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6114e41f4b71Sopenharmony_ci 6115e41f4b71Sopenharmony_cilet changeInfos = (changeInfos: Array<relationalStore.ChangeInfo>) => { 6116e41f4b71Sopenharmony_ci for (let i = 0; i < changeInfos.length; i++) { 6117e41f4b71Sopenharmony_ci console.info(`changeInfos = ${changeInfos[i]}`); 6118e41f4b71Sopenharmony_ci } 6119e41f4b71Sopenharmony_ci} 6120e41f4b71Sopenharmony_ci 6121e41f4b71Sopenharmony_citry { 6122e41f4b71Sopenharmony_ci if(store != undefined) { 6123e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_LOCAL_DETAILS, changeInfos); 6124e41f4b71Sopenharmony_ci } 6125e41f4b71Sopenharmony_ci} catch (err) { 6126e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6127e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 6128e41f4b71Sopenharmony_ci console.error(`on dataChange fail, code is ${code},message is ${message}`); 6129e41f4b71Sopenharmony_ci} 6130e41f4b71Sopenharmony_ci 6131e41f4b71Sopenharmony_cilet value1 = "Lisa"; 6132e41f4b71Sopenharmony_cilet value2 = 18; 6133e41f4b71Sopenharmony_cilet value3 = 100.5; 6134e41f4b71Sopenharmony_cilet value4 = new Uint8Array([1, 2, 3]); 6135e41f4b71Sopenharmony_ci 6136e41f4b71Sopenharmony_citry { 6137e41f4b71Sopenharmony_ci const valueBucket: relationalStore.ValuesBucket = { 6138e41f4b71Sopenharmony_ci 'name': value1, 6139e41f4b71Sopenharmony_ci 'age': value2, 6140e41f4b71Sopenharmony_ci 'salary': value3, 6141e41f4b71Sopenharmony_ci 'blobType': value4, 6142e41f4b71Sopenharmony_ci }; 6143e41f4b71Sopenharmony_ci 6144e41f4b71Sopenharmony_ci if(store != undefined) { 6145e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert('test', valueBucket); 6146e41f4b71Sopenharmony_ci } 6147e41f4b71Sopenharmony_ci} catch (err) { 6148e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6149e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 6150e41f4b71Sopenharmony_ci console.error(`insert fail, code is ${code},message is ${message}`); 6151e41f4b71Sopenharmony_ci} 6152e41f4b71Sopenharmony_ci``` 6153e41f4b71Sopenharmony_ci 6154e41f4b71Sopenharmony_ci### on<sup>10+</sup> 6155e41f4b71Sopenharmony_ci 6156e41f4b71Sopenharmony_cion(event: string, interProcess: boolean, observer: Callback\<void>): void 6157e41f4b71Sopenharmony_ci 6158e41f4b71Sopenharmony_ci注册数据库的进程内或者进程间事件监听。当调用[emit](#emit10)接口时,将调用回调。 6159e41f4b71Sopenharmony_ci 6160e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6161e41f4b71Sopenharmony_ci 6162e41f4b71Sopenharmony_ci**参数:** 6163e41f4b71Sopenharmony_ci 6164e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6165e41f4b71Sopenharmony_ci| ------------ | --------------- | ---- | ------------------------------------------------------------ | 6166e41f4b71Sopenharmony_ci| event | string | 是 | 订阅事件名称。 | 6167e41f4b71Sopenharmony_ci| interProcess | boolean | 是 | 指定是进程间还是本进程订阅。<br/> true:进程间。<br/> false:本进程。 | 6168e41f4b71Sopenharmony_ci| observer | Callback\<void> | 是 | 回调函数。 | 6169e41f4b71Sopenharmony_ci 6170e41f4b71Sopenharmony_ci**错误码:** 6171e41f4b71Sopenharmony_ci 6172e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6173e41f4b71Sopenharmony_ci 6174e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6175e41f4b71Sopenharmony_ci|-----------|-------------| 6176e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6177e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6178e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6179e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6180e41f4b71Sopenharmony_ci| 14800050 | Failed to obtain subscription service. | 6181e41f4b71Sopenharmony_ci 6182e41f4b71Sopenharmony_ci**示例:** 6183e41f4b71Sopenharmony_ci 6184e41f4b71Sopenharmony_ci```ts 6185e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6186e41f4b71Sopenharmony_ci 6187e41f4b71Sopenharmony_cilet storeObserver = () => { 6188e41f4b71Sopenharmony_ci console.info(`storeObserver`); 6189e41f4b71Sopenharmony_ci} 6190e41f4b71Sopenharmony_ci 6191e41f4b71Sopenharmony_citry { 6192e41f4b71Sopenharmony_ci if(store != undefined) { 6193e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('storeObserver', false, storeObserver); 6194e41f4b71Sopenharmony_ci } 6195e41f4b71Sopenharmony_ci} catch (err) { 6196e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6197e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6198e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6199e41f4b71Sopenharmony_ci} 6200e41f4b71Sopenharmony_ci``` 6201e41f4b71Sopenharmony_ci 6202e41f4b71Sopenharmony_ci### on('autoSyncProgress')<sup>11+</sup> 6203e41f4b71Sopenharmony_ci 6204e41f4b71Sopenharmony_cion(event: 'autoSyncProgress', progress: Callback<ProgressDetails>): void 6205e41f4b71Sopenharmony_ci 6206e41f4b71Sopenharmony_ci在已打开端云同步,并且网络状态正常的条件下,注册自动同步进度通知,自动同步进行时调用回调。 6207e41f4b71Sopenharmony_ci 6208e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6209e41f4b71Sopenharmony_ci 6210e41f4b71Sopenharmony_ci**参数:** 6211e41f4b71Sopenharmony_ci 6212e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6213e41f4b71Sopenharmony_ci| ------------ |---------------------------------| ---- |-----------------------------------| 6214e41f4b71Sopenharmony_ci| event | string | 是 | 取值为'autoSyncProgress',表示自动同步进度通知。 | 6215e41f4b71Sopenharmony_ci| progress | Callback<[ProgressDetails](#progressdetails10)> | 是 | 回调函数。 | 6216e41f4b71Sopenharmony_ci 6217e41f4b71Sopenharmony_ci**错误码:** 6218e41f4b71Sopenharmony_ci 6219e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6220e41f4b71Sopenharmony_ci 6221e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6222e41f4b71Sopenharmony_ci|-----------|--------| 6223e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 2 - 3 parameter(s)! 2. The RdbStore must be valid. 3. The event must be a not empty string. 4. The progress must be function. | 6224e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6225e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6226e41f4b71Sopenharmony_ci 6227e41f4b71Sopenharmony_ci**示例:** 6228e41f4b71Sopenharmony_ci 6229e41f4b71Sopenharmony_ci```ts 6230e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6231e41f4b71Sopenharmony_ci 6232e41f4b71Sopenharmony_cilet progressDetail = (progressDetail: relationalStore.ProgressDetails) => { 6233e41f4b71Sopenharmony_ci console.info(`progress: ${progressDetail}`); 6234e41f4b71Sopenharmony_ci} 6235e41f4b71Sopenharmony_ci 6236e41f4b71Sopenharmony_citry { 6237e41f4b71Sopenharmony_ci if(store != undefined) { 6238e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('autoSyncProgress', progressDetail) 6239e41f4b71Sopenharmony_ci } 6240e41f4b71Sopenharmony_ci} catch (err) { 6241e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6242e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6243e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6244e41f4b71Sopenharmony_ci} 6245e41f4b71Sopenharmony_ci``` 6246e41f4b71Sopenharmony_ci 6247e41f4b71Sopenharmony_ci### on('statistics')<sup>12+</sup> 6248e41f4b71Sopenharmony_ci 6249e41f4b71Sopenharmony_cion(event: 'statistics', observer: Callback<SqlExecutionInfo>): void 6250e41f4b71Sopenharmony_ci 6251e41f4b71Sopenharmony_ci订阅SQL统计信息。 6252e41f4b71Sopenharmony_ci 6253e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6254e41f4b71Sopenharmony_ci 6255e41f4b71Sopenharmony_ci**参数:** 6256e41f4b71Sopenharmony_ci 6257e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6258e41f4b71Sopenharmony_ci| ------------ |---------------------------------| ---- |-----------------------------------| 6259e41f4b71Sopenharmony_ci| event | string | 是 | 订阅事件名称,取值为'statistics',表示sql执行时间的统计。 | 6260e41f4b71Sopenharmony_ci| observer | Callback<[SqlExecutionInfo](#sqlexecutioninfo12)> | 是 | 回调函数。用于返回数据库中SQL执行时间的统计信息。 | 6261e41f4b71Sopenharmony_ci 6262e41f4b71Sopenharmony_ci**错误码:** 6263e41f4b71Sopenharmony_ci 6264e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6265e41f4b71Sopenharmony_ci 6266e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6267e41f4b71Sopenharmony_ci|-----------|--------| 6268e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 6269e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6270e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6271e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6272e41f4b71Sopenharmony_ci 6273e41f4b71Sopenharmony_ci**示例:** 6274e41f4b71Sopenharmony_ci 6275e41f4b71Sopenharmony_ci```ts 6276e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6277e41f4b71Sopenharmony_ci 6278e41f4b71Sopenharmony_cilet sqlExecutionInfo = (sqlExecutionInfo: relationalStore.SqlExecutionInfo) => { 6279e41f4b71Sopenharmony_ci console.info(`sql: ${sqlExecutionInfo.sql[0]}`); 6280e41f4b71Sopenharmony_ci console.info(`totalTime: ${sqlExecutionInfo.totalTime}`); 6281e41f4b71Sopenharmony_ci console.info(`waitTime: ${sqlExecutionInfo.waitTime}`); 6282e41f4b71Sopenharmony_ci console.info(`prepareTime: ${sqlExecutionInfo.prepareTime}`); 6283e41f4b71Sopenharmony_ci console.info(`executeTime: ${sqlExecutionInfo.executeTime}`); 6284e41f4b71Sopenharmony_ci} 6285e41f4b71Sopenharmony_ci 6286e41f4b71Sopenharmony_citry { 6287e41f4b71Sopenharmony_ci if(store != undefined) { 6288e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('statistics', sqlExecutionInfo); 6289e41f4b71Sopenharmony_ci } 6290e41f4b71Sopenharmony_ci} catch (err) { 6291e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6292e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 6293e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6294e41f4b71Sopenharmony_ci} 6295e41f4b71Sopenharmony_ci 6296e41f4b71Sopenharmony_citry { 6297e41f4b71Sopenharmony_ci let value1 = "Lisa"; 6298e41f4b71Sopenharmony_ci let value2 = 18; 6299e41f4b71Sopenharmony_ci let value3 = 100.5; 6300e41f4b71Sopenharmony_ci let value4 = new Uint8Array([1, 2, 3, 4, 5]); 6301e41f4b71Sopenharmony_ci 6302e41f4b71Sopenharmony_ci const valueBucket: relationalStore.ValuesBucket = { 6303e41f4b71Sopenharmony_ci 'NAME': value1, 6304e41f4b71Sopenharmony_ci 'AGE': value2, 6305e41f4b71Sopenharmony_ci 'SALARY': value3, 6306e41f4b71Sopenharmony_ci 'CODES': value4, 6307e41f4b71Sopenharmony_ci }; 6308e41f4b71Sopenharmony_ci if(store != undefined) { 6309e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).insert('test', valueBucket); 6310e41f4b71Sopenharmony_ci } 6311e41f4b71Sopenharmony_ci} catch (err) { 6312e41f4b71Sopenharmony_ci console.error(`insert fail, code:${err.code}, message: ${err.message}`); 6313e41f4b71Sopenharmony_ci} 6314e41f4b71Sopenharmony_ci``` 6315e41f4b71Sopenharmony_ci 6316e41f4b71Sopenharmony_ci### off('dataChange') 6317e41f4b71Sopenharmony_ci 6318e41f4b71Sopenharmony_cioff(event:'dataChange', type: SubscribeType, observer: Callback<Array<string>>): void 6319e41f4b71Sopenharmony_ci 6320e41f4b71Sopenharmony_ci取消数据变更的事件监听。 6321e41f4b71Sopenharmony_ci 6322e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6323e41f4b71Sopenharmony_ci 6324e41f4b71Sopenharmony_ci**参数:** 6325e41f4b71Sopenharmony_ci 6326e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6327e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 6328e41f4b71Sopenharmony_ci| event | string | 是 | 取值为'dataChange',表示数据更改。 | 6329e41f4b71Sopenharmony_ci| type | [SubscribeType](#subscribetype) | 是 | 订阅类型。 | 6330e41f4b71Sopenharmony_ci| observer | Callback<Array<string>> | 是 | 指已注册的数据更改观察者。Array<string>为数据库中的数据发生改变的对端设备ID。 | 6331e41f4b71Sopenharmony_ci 6332e41f4b71Sopenharmony_ci**错误码:** 6333e41f4b71Sopenharmony_ci 6334e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6335e41f4b71Sopenharmony_ci 6336e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6337e41f4b71Sopenharmony_ci|-----------|-------------| 6338e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6339e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6340e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6341e41f4b71Sopenharmony_ci 6342e41f4b71Sopenharmony_ci**示例:** 6343e41f4b71Sopenharmony_ci 6344e41f4b71Sopenharmony_ci```ts 6345e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6346e41f4b71Sopenharmony_ci 6347e41f4b71Sopenharmony_cilet storeObserver = (devices: Array<string>) => { 6348e41f4b71Sopenharmony_ci if (devices != undefined) { 6349e41f4b71Sopenharmony_ci for (let i = 0; i < devices.length; i++) { 6350e41f4b71Sopenharmony_ci console.info(`device= ${devices[i]} data changed`); 6351e41f4b71Sopenharmony_ci } 6352e41f4b71Sopenharmony_ci } 6353e41f4b71Sopenharmony_ci} 6354e41f4b71Sopenharmony_ci 6355e41f4b71Sopenharmony_citry { 6356e41f4b71Sopenharmony_ci if (store != undefined) { 6357e41f4b71Sopenharmony_ci // 此处不能使用Lambda表达式 6358e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) 6359e41f4b71Sopenharmony_ci } 6360e41f4b71Sopenharmony_ci} catch (err) { 6361e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6362e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6363e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6364e41f4b71Sopenharmony_ci} 6365e41f4b71Sopenharmony_ci 6366e41f4b71Sopenharmony_citry { 6367e41f4b71Sopenharmony_ci if(store != undefined) { 6368e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).off('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver); 6369e41f4b71Sopenharmony_ci } 6370e41f4b71Sopenharmony_ci} catch (err) { 6371e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6372e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6373e41f4b71Sopenharmony_ci console.error(`Unregister observer failed, code is ${code},message is ${message}`); 6374e41f4b71Sopenharmony_ci} 6375e41f4b71Sopenharmony_ci``` 6376e41f4b71Sopenharmony_ci 6377e41f4b71Sopenharmony_ci### off('dataChange')<sup>10+</sup> 6378e41f4b71Sopenharmony_ci 6379e41f4b71Sopenharmony_cioff(event:'dataChange', type: SubscribeType, observer?: Callback<Array<string>>\| Callback<Array<ChangeInfo>>): void 6380e41f4b71Sopenharmony_ci 6381e41f4b71Sopenharmony_ci取消数据变更的事件监听。 6382e41f4b71Sopenharmony_ci 6383e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6384e41f4b71Sopenharmony_ci 6385e41f4b71Sopenharmony_ci**参数:** 6386e41f4b71Sopenharmony_ci 6387e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6388e41f4b71Sopenharmony_ci| -------- | ---------------------------------- | ---- | ------------------------------------------ | 6389e41f4b71Sopenharmony_ci| event | string | 是 | 取值为'dataChange',表示数据更改。 | 6390e41f4b71Sopenharmony_ci| type | [SubscribeType](#subscribetype) | 是 | 订阅类型。 | 6391e41f4b71Sopenharmony_ci| observer | Callback<Array<string>>\| Callback<Array<[ChangeInfo](#changeinfo10)>> | 否 | 回调函数。<br/>当type为SUBSCRIBE_TYPE_REMOTE,observer类型需为Callback<Array<string>>,其中Array<string>为数据库中的数据发生改变的对端设备ID。<br/> 当type为SUBSCRIBE_TYPE_CLOUD,observer类型需为Callback<Array<string>>,其中Array<string>为数据库中的数据发生改变的云端账号。 <br/> 当type为SUBSCRIBE_TYPE_CLOUD_DETAILS,observer类型需为Callback<Array<ChangeInfo>>,其中Array<ChangeInfo>为数据库端云同步过程的详情。<br>当type为SUBSCRIBE_TYPE_LOCAL_DETAILS,observer类型需为Callback<Array<ChangeInfo>>,其中Array<ChangeInfo>为本地数据库中的数据更改的详情。<br> 当observer没有传入时,表示取消当前type类型下所有数据变更的事件监听。 | 6392e41f4b71Sopenharmony_ci 6393e41f4b71Sopenharmony_ci**错误码:** 6394e41f4b71Sopenharmony_ci 6395e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6396e41f4b71Sopenharmony_ci 6397e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6398e41f4b71Sopenharmony_ci|-----------|-------------| 6399e41f4b71Sopenharmony_ci| 202 | Permission verification failed, application which is not a system application uses system API. | 6400e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6401e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6402e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6403e41f4b71Sopenharmony_ci 6404e41f4b71Sopenharmony_ci**示例:** 6405e41f4b71Sopenharmony_ci 6406e41f4b71Sopenharmony_ci```ts 6407e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit'; 6408e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6409e41f4b71Sopenharmony_ci 6410e41f4b71Sopenharmony_cilet storeObserver = (devices: Array<string>) => { 6411e41f4b71Sopenharmony_ci if (devices != undefined) { 6412e41f4b71Sopenharmony_ci for (let i = 0; i < devices.length; i++) { 6413e41f4b71Sopenharmony_ci console.info(`device= ${devices[i]} data changed`); 6414e41f4b71Sopenharmony_ci } 6415e41f4b71Sopenharmony_ci } 6416e41f4b71Sopenharmony_ci} 6417e41f4b71Sopenharmony_ci 6418e41f4b71Sopenharmony_citry { 6419e41f4b71Sopenharmony_ci if(store != undefined) { 6420e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver); 6421e41f4b71Sopenharmony_ci } 6422e41f4b71Sopenharmony_ci} catch (err) { 6423e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6424e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 6425e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6426e41f4b71Sopenharmony_ci} 6427e41f4b71Sopenharmony_ci 6428e41f4b71Sopenharmony_citry { 6429e41f4b71Sopenharmony_ci if(store != undefined) { 6430e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).off('dataChange', relationalStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver); 6431e41f4b71Sopenharmony_ci } 6432e41f4b71Sopenharmony_ci} catch (err) { 6433e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6434e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6435e41f4b71Sopenharmony_ci console.error(`Unregister observer failed, code is ${code},message is ${message}`); 6436e41f4b71Sopenharmony_ci} 6437e41f4b71Sopenharmony_ci``` 6438e41f4b71Sopenharmony_ci 6439e41f4b71Sopenharmony_ci### off<sup>10+</sup> 6440e41f4b71Sopenharmony_ci 6441e41f4b71Sopenharmony_cioff(event: string, interProcess: boolean, observer?: Callback\<void>): void 6442e41f4b71Sopenharmony_ci 6443e41f4b71Sopenharmony_ci取消数据变更的事件监听。 6444e41f4b71Sopenharmony_ci 6445e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6446e41f4b71Sopenharmony_ci 6447e41f4b71Sopenharmony_ci**参数:** 6448e41f4b71Sopenharmony_ci 6449e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6450e41f4b71Sopenharmony_ci| ------------ | --------------- | ---- | ------------------------------------------------------------ | 6451e41f4b71Sopenharmony_ci| event | string | 是 | 取消订阅事件名称。 | 6452e41f4b71Sopenharmony_ci| interProcess | boolean | 是 | 指定是进程间还是本进程取消订阅。<br/> true:进程间。<br/> false:本进程。 | 6453e41f4b71Sopenharmony_ci| observer | Callback\<void> | 否 | 该参数存在,则取消指定Callback监听回调,否则取消该event事件的所有监听回调。 | 6454e41f4b71Sopenharmony_ci 6455e41f4b71Sopenharmony_ci**错误码:** 6456e41f4b71Sopenharmony_ci 6457e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6458e41f4b71Sopenharmony_ci 6459e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6460e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- | 6461e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6462e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6463e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6464e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6465e41f4b71Sopenharmony_ci| 14800050 | Failed to obtain subscription service. | 6466e41f4b71Sopenharmony_ci 6467e41f4b71Sopenharmony_ci**示例:** 6468e41f4b71Sopenharmony_ci 6469e41f4b71Sopenharmony_ci```ts 6470e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6471e41f4b71Sopenharmony_ci 6472e41f4b71Sopenharmony_cilet storeObserver = () => { 6473e41f4b71Sopenharmony_ci console.info(`storeObserver`); 6474e41f4b71Sopenharmony_ci} 6475e41f4b71Sopenharmony_ci 6476e41f4b71Sopenharmony_citry { 6477e41f4b71Sopenharmony_ci if(store != undefined) { 6478e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('storeObserver', false, storeObserver); 6479e41f4b71Sopenharmony_ci } 6480e41f4b71Sopenharmony_ci} catch (err) { 6481e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6482e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6483e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6484e41f4b71Sopenharmony_ci} 6485e41f4b71Sopenharmony_ci 6486e41f4b71Sopenharmony_citry { 6487e41f4b71Sopenharmony_ci if(store != undefined) { 6488e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).off('storeObserver', false, storeObserver); 6489e41f4b71Sopenharmony_ci } 6490e41f4b71Sopenharmony_ci} catch (err) { 6491e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6492e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6493e41f4b71Sopenharmony_ci console.error(`Unregister observer failed, code is ${code},message is ${message}`); 6494e41f4b71Sopenharmony_ci} 6495e41f4b71Sopenharmony_ci``` 6496e41f4b71Sopenharmony_ci 6497e41f4b71Sopenharmony_ci### off('autoSyncProgress')<sup>11+</sup> 6498e41f4b71Sopenharmony_ci 6499e41f4b71Sopenharmony_cioff(event: 'autoSyncProgress', progress?: Callback<ProgressDetails>): void 6500e41f4b71Sopenharmony_ci 6501e41f4b71Sopenharmony_ci取消订阅自动同步进度的通知。 6502e41f4b71Sopenharmony_ci 6503e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6504e41f4b71Sopenharmony_ci 6505e41f4b71Sopenharmony_ci**参数:** 6506e41f4b71Sopenharmony_ci 6507e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6508e41f4b71Sopenharmony_ci| ------------ |---------------------------------| ---- |------------------------------------------------------------------| 6509e41f4b71Sopenharmony_ci| event | string | 是 | 取值为'autoSyncProgress',表示自动同步进度通知。 | 6510e41f4b71Sopenharmony_ci| progress | Callback<[ProgressDetails](#progressdetails10)> | 否 | 指已注册的自动同步进度观察者。该参数存在,则取消订阅指定回调,该参数为null或undefined或不存在,则取消订阅所有回调。 | 6511e41f4b71Sopenharmony_ci 6512e41f4b71Sopenharmony_ci**错误码:** 6513e41f4b71Sopenharmony_ci 6514e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6515e41f4b71Sopenharmony_ci 6516e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6517e41f4b71Sopenharmony_ci| ------------ |--------------------| 6518e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 1 - 3 parameter(s)! 2. The RdbStore must be valid. 3. The event must be a not empty string. 4. The progress must be function. | 6519e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6520e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6521e41f4b71Sopenharmony_ci 6522e41f4b71Sopenharmony_ci**示例:** 6523e41f4b71Sopenharmony_ci 6524e41f4b71Sopenharmony_ci```ts 6525e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6526e41f4b71Sopenharmony_ci 6527e41f4b71Sopenharmony_cilet progressDetail = (progressDetail: relationalStore.ProgressDetails) => { 6528e41f4b71Sopenharmony_ci console.info(`progress: ${progressDetail}`); 6529e41f4b71Sopenharmony_ci} 6530e41f4b71Sopenharmony_ci 6531e41f4b71Sopenharmony_citry { 6532e41f4b71Sopenharmony_ci if(store != undefined) { 6533e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).on('autoSyncProgress', progressDetail) 6534e41f4b71Sopenharmony_ci } 6535e41f4b71Sopenharmony_ci} catch (err) { 6536e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6537e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 6538e41f4b71Sopenharmony_ci console.error(`Register observer failed, code is ${code},message is ${message}`); 6539e41f4b71Sopenharmony_ci} 6540e41f4b71Sopenharmony_ci 6541e41f4b71Sopenharmony_citry { 6542e41f4b71Sopenharmony_ci if(store != undefined) { 6543e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).off('autoSyncProgress', progressDetail); 6544e41f4b71Sopenharmony_ci } 6545e41f4b71Sopenharmony_ci} catch (err) { 6546e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6547e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 6548e41f4b71Sopenharmony_ci console.error(`Unregister failed, code is ${code},message is ${message}`); 6549e41f4b71Sopenharmony_ci} 6550e41f4b71Sopenharmony_ci``` 6551e41f4b71Sopenharmony_ci 6552e41f4b71Sopenharmony_ci### off('statistics')<sup>12+</sup> 6553e41f4b71Sopenharmony_ci 6554e41f4b71Sopenharmony_cioff(event: 'statistics', observer?: Callback<SqlExecutionInfo>): void 6555e41f4b71Sopenharmony_ci 6556e41f4b71Sopenharmony_ci取消订阅SQL统计信息。 6557e41f4b71Sopenharmony_ci 6558e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6559e41f4b71Sopenharmony_ci 6560e41f4b71Sopenharmony_ci**参数:** 6561e41f4b71Sopenharmony_ci 6562e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6563e41f4b71Sopenharmony_ci| ------------ |---------------------------------| ---- |-----------------------------------| 6564e41f4b71Sopenharmony_ci| event | string | 是 | 取消订阅事件名称。取值为'statistics',表示sql执行时间的统计。 | 6565e41f4b71Sopenharmony_ci| observer | Callback<[SqlExecutionInfo](#sqlexecutioninfo12)> | 否 | 回调函数。该参数存在,则取消指定Callback监听回调,否则取消该event事件的所有监听回调。 | 6566e41f4b71Sopenharmony_ci 6567e41f4b71Sopenharmony_ci 6568e41f4b71Sopenharmony_ci**错误码:** 6569e41f4b71Sopenharmony_ci 6570e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6571e41f4b71Sopenharmony_ci 6572e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6573e41f4b71Sopenharmony_ci|-----------|--------| 6574e41f4b71Sopenharmony_ci| 401 | Parameter error. | 6575e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6576e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6577e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6578e41f4b71Sopenharmony_ci 6579e41f4b71Sopenharmony_ci```ts 6580e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6581e41f4b71Sopenharmony_ci 6582e41f4b71Sopenharmony_citry { 6583e41f4b71Sopenharmony_ci if(store != undefined) { 6584e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).off('statistics'); 6585e41f4b71Sopenharmony_ci } 6586e41f4b71Sopenharmony_ci} catch (err) { 6587e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 6588e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 6589e41f4b71Sopenharmony_ci console.error(`Unregister observer failed, code is ${code},message is ${message}`); 6590e41f4b71Sopenharmony_ci} 6591e41f4b71Sopenharmony_ci``` 6592e41f4b71Sopenharmony_ci 6593e41f4b71Sopenharmony_ci### emit<sup>10+</sup> 6594e41f4b71Sopenharmony_ci 6595e41f4b71Sopenharmony_ciemit(event: string): void 6596e41f4b71Sopenharmony_ci 6597e41f4b71Sopenharmony_ci通知通过[on](#on10)注册的进程间或者进程内监听事件。 6598e41f4b71Sopenharmony_ci 6599e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6600e41f4b71Sopenharmony_ci 6601e41f4b71Sopenharmony_ci**参数:** 6602e41f4b71Sopenharmony_ci 6603e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6604e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------- | 6605e41f4b71Sopenharmony_ci| event | string | 是 | 通知订阅事件的名称。 | 6606e41f4b71Sopenharmony_ci 6607e41f4b71Sopenharmony_ci**错误码:** 6608e41f4b71Sopenharmony_ci 6609e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 6610e41f4b71Sopenharmony_ci 6611e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6612e41f4b71Sopenharmony_ci| --------- |---------------------------------------------------------------------------------------------------------------| 6613e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6614e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6615e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6616e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6617e41f4b71Sopenharmony_ci| 14800050 | Failed to obtain subscription service. | 6618e41f4b71Sopenharmony_ci 6619e41f4b71Sopenharmony_ci 6620e41f4b71Sopenharmony_ci**示例:** 6621e41f4b71Sopenharmony_ci 6622e41f4b71Sopenharmony_ci```ts 6623e41f4b71Sopenharmony_ciif(store != undefined) { 6624e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).emit('storeObserver'); 6625e41f4b71Sopenharmony_ci} 6626e41f4b71Sopenharmony_ci``` 6627e41f4b71Sopenharmony_ci 6628e41f4b71Sopenharmony_ci### cleanDirtyData<sup>11+</sup> 6629e41f4b71Sopenharmony_ci 6630e41f4b71Sopenharmony_cicleanDirtyData(table: string, cursor: number, callback: AsyncCallback<void>): void 6631e41f4b71Sopenharmony_ci 6632e41f4b71Sopenharmony_ci清理云端删除的数据同步到本地后,未自动清理的,且数据的游标(cursor)小于指定游标的数据。 6633e41f4b71Sopenharmony_ci 6634e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 6635e41f4b71Sopenharmony_ci 6636e41f4b71Sopenharmony_ci**参数:** 6637e41f4b71Sopenharmony_ci 6638e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6639e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------- | ---- | -------------------------------------------------- | 6640e41f4b71Sopenharmony_ci| table | string | 是 | 表示当前数据库的表的名称。 | 6641e41f4b71Sopenharmony_ci| cursor | number | 是 | 整数类型,表示数据游标,小于此游标的脏数据将被清理。 | 6642e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定的callback回调函数。 | 6643e41f4b71Sopenharmony_ci 6644e41f4b71Sopenharmony_ci**错误码:** 6645e41f4b71Sopenharmony_ci 6646e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 6647e41f4b71Sopenharmony_ci 6648e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6649e41f4b71Sopenharmony_ci|-----------|---------------| 6650e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 1 - 3 parameter(s)! 2. The RdbStore must be not nullptr. 3. The tablesNames must be not empty string. 4. The cursor must be valid cursor. | 6651e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6652e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6653e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 6654e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6655e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 6656e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 6657e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 6658e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 6659e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 6660e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 6661e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 6662e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 6663e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 6664e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 6665e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 6666e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 6667e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 6668e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 6669e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 6670e41f4b71Sopenharmony_ci 6671e41f4b71Sopenharmony_ci**示例:** 6672e41f4b71Sopenharmony_ci 6673e41f4b71Sopenharmony_ci```ts 6674e41f4b71Sopenharmony_ciif(store != undefined) { 6675e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).cleanDirtyData('test_table', 100, (err) => { 6676e41f4b71Sopenharmony_ci if (err) { 6677e41f4b71Sopenharmony_ci console.error(`clean dirty data failed, code is ${err.code},message is ${err.message}`); 6678e41f4b71Sopenharmony_ci return; 6679e41f4b71Sopenharmony_ci } 6680e41f4b71Sopenharmony_ci console.info('clean dirty data succeeded'); 6681e41f4b71Sopenharmony_ci }) 6682e41f4b71Sopenharmony_ci} 6683e41f4b71Sopenharmony_ci``` 6684e41f4b71Sopenharmony_ci 6685e41f4b71Sopenharmony_ci### cleanDirtyData<sup>11+</sup> 6686e41f4b71Sopenharmony_ci 6687e41f4b71Sopenharmony_cicleanDirtyData(table: string, callback: AsyncCallback<void>): void 6688e41f4b71Sopenharmony_ci 6689e41f4b71Sopenharmony_ci清理云端删除的数据同步到本地后,未自动清理的所有数据。 6690e41f4b71Sopenharmony_ci 6691e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 6692e41f4b71Sopenharmony_ci 6693e41f4b71Sopenharmony_ci**参数:** 6694e41f4b71Sopenharmony_ci 6695e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6696e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------- | ---- | -------------------------------------------------- | 6697e41f4b71Sopenharmony_ci| table | string | 是 | 表示当前数据库的表的名称。 | 6698e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 指定的callback回调函数。 | 6699e41f4b71Sopenharmony_ci 6700e41f4b71Sopenharmony_ci**错误码:** 6701e41f4b71Sopenharmony_ci 6702e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 6703e41f4b71Sopenharmony_ci 6704e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6705e41f4b71Sopenharmony_ci|-----------|---------| 6706e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 1 - 3 parameter(s). 2. The RdbStore must be not nullptr. 3. The tablesNames must be not empty string. | 6707e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6708e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6709e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 6710e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6711e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 6712e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 6713e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 6714e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 6715e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 6716e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 6717e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 6718e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 6719e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 6720e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 6721e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 6722e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 6723e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 6724e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 6725e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 6726e41f4b71Sopenharmony_ci 6727e41f4b71Sopenharmony_ci**示例:** 6728e41f4b71Sopenharmony_ci 6729e41f4b71Sopenharmony_ci```ts 6730e41f4b71Sopenharmony_ciif(store != undefined) { 6731e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).cleanDirtyData('test_table', (err) => { 6732e41f4b71Sopenharmony_ci if (err) { 6733e41f4b71Sopenharmony_ci console.error(`clean dirty data failed, code is ${err.code},message is ${err.message}`); 6734e41f4b71Sopenharmony_ci return; 6735e41f4b71Sopenharmony_ci } 6736e41f4b71Sopenharmony_ci console.info('clean dirty data succeeded'); 6737e41f4b71Sopenharmony_ci }) 6738e41f4b71Sopenharmony_ci} 6739e41f4b71Sopenharmony_ci``` 6740e41f4b71Sopenharmony_ci 6741e41f4b71Sopenharmony_ci### cleanDirtyData<sup>11+</sup> 6742e41f4b71Sopenharmony_ci 6743e41f4b71Sopenharmony_cicleanDirtyData(table: string, cursor?: number): Promise<void> 6744e41f4b71Sopenharmony_ci 6745e41f4b71Sopenharmony_ci清理云端删除的数据同步到本地后,未自动清理的,且数据的游标(cursor)小于指定游标的数据。若无cursor参数,将全部清理。 6746e41f4b71Sopenharmony_ci 6747e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.CloudSync.Client 6748e41f4b71Sopenharmony_ci 6749e41f4b71Sopenharmony_ci**参数:** 6750e41f4b71Sopenharmony_ci 6751e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6752e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------- | ---- | -------------------------------------------------- | 6753e41f4b71Sopenharmony_ci| table | string | 是 | 表示当前数据库的表的名称。 | 6754e41f4b71Sopenharmony_ci| cursor | number | 否 | 整数类型,表示数据游标,小于此游标的脏数据将被清理。当此参数不填时,清理当前表的所有脏数据。 | 6755e41f4b71Sopenharmony_ci 6756e41f4b71Sopenharmony_ci**返回值:** 6757e41f4b71Sopenharmony_ci| 参数名 | 说明 | 6758e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | 6759e41f4b71Sopenharmony_ci| Promise\<void> | 无返回结果的Promise对象。 | 6760e41f4b71Sopenharmony_ci 6761e41f4b71Sopenharmony_ci**错误码:** 6762e41f4b71Sopenharmony_ci 6763e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 6764e41f4b71Sopenharmony_ci 6765e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6766e41f4b71Sopenharmony_ci|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 6767e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Need 1 - 3 parameter(s)! 2. The RdbStore must be not nullptr. 3. The tablesNames must be not empty string. 4. The cursor must be valid cursor. | 6768e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6769e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6770e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 6771e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6772e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 6773e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 6774e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 6775e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 6776e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 6777e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 6778e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 6779e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 6780e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 6781e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 6782e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 6783e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 6784e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 6785e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 6786e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 6787e41f4b71Sopenharmony_ci 6788e41f4b71Sopenharmony_ci**示例:** 6789e41f4b71Sopenharmony_ci 6790e41f4b71Sopenharmony_ci```ts 6791e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6792e41f4b71Sopenharmony_ci 6793e41f4b71Sopenharmony_ciif(store != undefined) { 6794e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).cleanDirtyData('test_table', 100).then(() => { 6795e41f4b71Sopenharmony_ci console.info('clean dirty data succeeded'); 6796e41f4b71Sopenharmony_ci }).catch ((err: BusinessError) => { 6797e41f4b71Sopenharmony_ci console.error(`clean dirty data failed, code is ${err.code},message is ${err.message}`); 6798e41f4b71Sopenharmony_ci }) 6799e41f4b71Sopenharmony_ci} 6800e41f4b71Sopenharmony_ci``` 6801e41f4b71Sopenharmony_ci 6802e41f4b71Sopenharmony_ci### attach<sup>12+</sup> 6803e41f4b71Sopenharmony_ci 6804e41f4b71Sopenharmony_ciattach(fullPath: string, attachName: string, waitTime?: number) : Promise<number> 6805e41f4b71Sopenharmony_ci 6806e41f4b71Sopenharmony_ci将一个数据库文件附加到当前数据库中,以便在SQL语句中可以直接访问附加数据库中的数据。 6807e41f4b71Sopenharmony_ci 6808e41f4b71Sopenharmony_ci数据库文件来自文件,且此API不支持附加加密数据库。调用attach接口后,数据库切换为非WAL模式,性能会存在一定的劣化。 6809e41f4b71Sopenharmony_ci 6810e41f4b71Sopenharmony_ciattach的时候,数据库会切换为非WAL模式,切换模式需要确保所有的ResultSet都已经Close,所有的写操作已经结束,否则会报错14800015。 6811e41f4b71Sopenharmony_ci 6812e41f4b71Sopenharmony_ciattach不能并发调用,可能出现未响应情况,报错14800015,需要重试。 6813e41f4b71Sopenharmony_ci 6814e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6815e41f4b71Sopenharmony_ci 6816e41f4b71Sopenharmony_ci**参数:** 6817e41f4b71Sopenharmony_ci 6818e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6819e41f4b71Sopenharmony_ci| ----------- | ------ | --- | ------------ | 6820e41f4b71Sopenharmony_ci| fullPath | string | 是 | 表示要附加的数据库的路径。 | 6821e41f4b71Sopenharmony_ci| attachName | string | 是 | 表示附加后的数据库的别名。 | 6822e41f4b71Sopenharmony_ci| waitTime | number | 否 | 表示附加数据库文件的等待时长。默认值2s,最小值1s,最大值300s。 | 6823e41f4b71Sopenharmony_ci 6824e41f4b71Sopenharmony_ci**返回值:** 6825e41f4b71Sopenharmony_ci 6826e41f4b71Sopenharmony_ci| 类型 | 说明 | 6827e41f4b71Sopenharmony_ci| ---------------- | ---------------------------- | 6828e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回附加数据库的数量。 | 6829e41f4b71Sopenharmony_ci 6830e41f4b71Sopenharmony_ci**错误码:** 6831e41f4b71Sopenharmony_ci 6832e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 6833e41f4b71Sopenharmony_ci 6834e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6835e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 6836e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6837e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6838e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6839e41f4b71Sopenharmony_ci| 14800010 | Invalid database path. | 6840e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 6841e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6842e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 6843e41f4b71Sopenharmony_ci| 14800016 | The database is already attached. | 6844e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 6845e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 6846e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 6847e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 6848e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 6849e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 6850e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 6851e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 6852e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 6853e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 6854e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 6855e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 6856e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 6857e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 6858e41f4b71Sopenharmony_ci 6859e41f4b71Sopenharmony_ci**示例:** 6860e41f4b71Sopenharmony_ci 6861e41f4b71Sopenharmony_ci```ts 6862e41f4b71Sopenharmony_ci// 非加密数据库附加非加密数据库。 6863e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6864e41f4b71Sopenharmony_ci 6865e41f4b71Sopenharmony_ciif(store != undefined) { 6866e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).attach("/path/rdbstore1.db", "attachDB").then((number: number) => { 6867e41f4b71Sopenharmony_ci console.info('attach succeeded'); 6868e41f4b71Sopenharmony_ci }).catch ((err: BusinessError) => { 6869e41f4b71Sopenharmony_ci console.error(`attach failed, code is ${err.code},message is ${err.message}`); 6870e41f4b71Sopenharmony_ci }) 6871e41f4b71Sopenharmony_ci} 6872e41f4b71Sopenharmony_ci``` 6873e41f4b71Sopenharmony_ci 6874e41f4b71Sopenharmony_ci### attach<sup>12+</sup> 6875e41f4b71Sopenharmony_ci 6876e41f4b71Sopenharmony_ciattach(context: Context, config: StoreConfig, attachName: string, waitTime?: number) : Promise<number> 6877e41f4b71Sopenharmony_ci 6878e41f4b71Sopenharmony_ci将一个当前应用的数据库附加到当前数据库中,以便在SQL语句中可以直接访问附加数据库中的数据。 6879e41f4b71Sopenharmony_ci 6880e41f4b71Sopenharmony_ci此API不支持加密数据库附加非加密数据库的场景。调用attach接口后,数据库切换为非WAL模式,性能会存在一定的劣化。 6881e41f4b71Sopenharmony_ci 6882e41f4b71Sopenharmony_ciattach的时候,数据库会切换为非WAL模式,切换模式需要确保所有的ResultSet都已经Close,所有的写操作已经结束,否则会报错14800015。 6883e41f4b71Sopenharmony_ci 6884e41f4b71Sopenharmony_ciattach不能并发调用,可能出现未响应情况,报错14800015,需要重试。 6885e41f4b71Sopenharmony_ci 6886e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 6887e41f4b71Sopenharmony_ci 6888e41f4b71Sopenharmony_ci**参数:** 6889e41f4b71Sopenharmony_ci 6890e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6891e41f4b71Sopenharmony_ci| ----------- | ------ | --- | ------------ | 6892e41f4b71Sopenharmony_ci| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)。 | 6893e41f4b71Sopenharmony_ci| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 | 6894e41f4b71Sopenharmony_ci| attachName | string | 是 | 表示附加后的数据库的别名。 | 6895e41f4b71Sopenharmony_ci| waitTime | number | 否 | 表示附加数据库文件的等待时长。默认值2s,最小值1s,最大值300s。 | 6896e41f4b71Sopenharmony_ci 6897e41f4b71Sopenharmony_ci**返回值:** 6898e41f4b71Sopenharmony_ci 6899e41f4b71Sopenharmony_ci| 类型 | 说明 | 6900e41f4b71Sopenharmony_ci| ---------------- | ---------------------------- | 6901e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回附加数据库的数量。 | 6902e41f4b71Sopenharmony_ci 6903e41f4b71Sopenharmony_ci**错误码:** 6904e41f4b71Sopenharmony_ci 6905e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 6906e41f4b71Sopenharmony_ci 6907e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 6908e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 6909e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 6910e41f4b71Sopenharmony_ci| 801 | Capability not supported. | 6911e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 6912e41f4b71Sopenharmony_ci| 14800010 | Invalid database path. | 6913e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 6914e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 6915e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 6916e41f4b71Sopenharmony_ci| 14800016 | The database is already attached. | 6917e41f4b71Sopenharmony_ci| 14801001 | Only supported in stage mode. | 6918e41f4b71Sopenharmony_ci| 14801002 | The data group id is not valid. | 6919e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 6920e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 6921e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 6922e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 6923e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 6924e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 6925e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 6926e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 6927e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 6928e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 6929e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 6930e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 6931e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 6932e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 6933e41f4b71Sopenharmony_ci 6934e41f4b71Sopenharmony_ci**示例1:非加密数据库附加非加密数据库** 6935e41f4b71Sopenharmony_ci 6936e41f4b71Sopenharmony_ci```ts 6937e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6938e41f4b71Sopenharmony_ci 6939e41f4b71Sopenharmony_cilet attachStore: relationalStore.RdbStore | undefined = undefined; 6940e41f4b71Sopenharmony_ci 6941e41f4b71Sopenharmony_ciconst STORE_CONFIG1: relationalStore.StoreConfig = { 6942e41f4b71Sopenharmony_ci name: "rdbstore1.db", 6943e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3, 6944e41f4b71Sopenharmony_ci} 6945e41f4b71Sopenharmony_ci 6946e41f4b71Sopenharmony_cirelationalStore.getRdbStore(this.context, STORE_CONFIG1).then(async (rdbStore: relationalStore.RdbStore) => { 6947e41f4b71Sopenharmony_ci attachStore = rdbStore; 6948e41f4b71Sopenharmony_ci console.info('Get RdbStore successfully.') 6949e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6950e41f4b71Sopenharmony_ci console.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`); 6951e41f4b71Sopenharmony_ci}) 6952e41f4b71Sopenharmony_ci 6953e41f4b71Sopenharmony_ciif(store != undefined) { 6954e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).attach(this.context, STORE_CONFIG1, "attachDB").then((number: number) => { 6955e41f4b71Sopenharmony_ci console.info(`attach succeeded, number is ${number}`); 6956e41f4b71Sopenharmony_ci }).catch ((err: BusinessError) => { 6957e41f4b71Sopenharmony_ci console.error(`attach failed, code is ${err.code},message is ${err.message}`); 6958e41f4b71Sopenharmony_ci }) 6959e41f4b71Sopenharmony_ci} 6960e41f4b71Sopenharmony_ci``` 6961e41f4b71Sopenharmony_ci 6962e41f4b71Sopenharmony_ci**示例2:非加密数据库附加加密数据库** 6963e41f4b71Sopenharmony_ci 6964e41f4b71Sopenharmony_ci```ts 6965e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6966e41f4b71Sopenharmony_ci 6967e41f4b71Sopenharmony_cilet attachStore: relationalStore.RdbStore | undefined = undefined; 6968e41f4b71Sopenharmony_ci 6969e41f4b71Sopenharmony_ci 6970e41f4b71Sopenharmony_ciconst STORE_CONFIG2: relationalStore.StoreConfig = { 6971e41f4b71Sopenharmony_ci name: "rdbstore2.db", 6972e41f4b71Sopenharmony_ci encrypt: true, 6973e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3, 6974e41f4b71Sopenharmony_ci} 6975e41f4b71Sopenharmony_ci 6976e41f4b71Sopenharmony_cirelationalStore.getRdbStore(this.context, STORE_CONFIG2).then(async (rdbStore: relationalStore.RdbStore) => { 6977e41f4b71Sopenharmony_ci attachStore = rdbStore; 6978e41f4b71Sopenharmony_ci console.info('Get RdbStore successfully.') 6979e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6980e41f4b71Sopenharmony_ci console.error(`Get RdbStore failed, code is ${err.code},message is ${err.message}`); 6981e41f4b71Sopenharmony_ci}) 6982e41f4b71Sopenharmony_ci 6983e41f4b71Sopenharmony_ciif(store != undefined) { 6984e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).attach(this.context, STORE_CONFIG2, "attachDB2", 10).then((number: number) => { 6985e41f4b71Sopenharmony_ci console.info(`attach succeeded, number is ${number}`); 6986e41f4b71Sopenharmony_ci }).catch ((err: BusinessError) => { 6987e41f4b71Sopenharmony_ci console.error(`attach failed, code is ${err.code},message is ${err.message}`); 6988e41f4b71Sopenharmony_ci }) 6989e41f4b71Sopenharmony_ci} 6990e41f4b71Sopenharmony_ci``` 6991e41f4b71Sopenharmony_ci 6992e41f4b71Sopenharmony_ci### detach<sup>12+</sup> 6993e41f4b71Sopenharmony_ci 6994e41f4b71Sopenharmony_cidetach(attachName: string, waitTime?: number) : Promise<number> 6995e41f4b71Sopenharmony_ci 6996e41f4b71Sopenharmony_ci将附加的数据库从当前数据库中分离。 6997e41f4b71Sopenharmony_ci 6998e41f4b71Sopenharmony_ci当所有的附加的数据库被分离后,数据库会重新切换为WAL模式。 6999e41f4b71Sopenharmony_ci 7000e41f4b71Sopenharmony_ci在detach之前,所有的数据库操作要确保已经结束,所有的ResultSet已经Close。并且不能并发调用,可能出现未响应情况,需要重试。 7001e41f4b71Sopenharmony_ci 7002e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7003e41f4b71Sopenharmony_ci 7004e41f4b71Sopenharmony_ci**参数:** 7005e41f4b71Sopenharmony_ci 7006e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7007e41f4b71Sopenharmony_ci| ----------- | ------ | --- | ------------ | 7008e41f4b71Sopenharmony_ci| attachName | string | 是 | 表示附加后的数据库的别名。 | 7009e41f4b71Sopenharmony_ci| waitTime | number | 否 | 表示分离数据库的等待时长。默认值2s,最小值1s,最大值300s。 | 7010e41f4b71Sopenharmony_ci 7011e41f4b71Sopenharmony_ci**返回值:** 7012e41f4b71Sopenharmony_ci 7013e41f4b71Sopenharmony_ci| 类型 | 说明 | 7014e41f4b71Sopenharmony_ci| ---------------- | ---------------------------- | 7015e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回分离后剩余附加的数据库的数量。 | 7016e41f4b71Sopenharmony_ci 7017e41f4b71Sopenharmony_ci**错误码:** 7018e41f4b71Sopenharmony_ci 7019e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7020e41f4b71Sopenharmony_ci 7021e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7022e41f4b71Sopenharmony_ci|-----------|------------------------| 7023e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7024e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7025e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7026e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7027e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 7028e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7029e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7030e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7031e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7032e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7033e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7034e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7035e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7036e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7037e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7038e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7039e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7040e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7041e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7042e41f4b71Sopenharmony_ci 7043e41f4b71Sopenharmony_ci**示例:** 7044e41f4b71Sopenharmony_ci 7045e41f4b71Sopenharmony_ci```ts 7046e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7047e41f4b71Sopenharmony_ci 7048e41f4b71Sopenharmony_ciif(store != undefined) { 7049e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).detach("attachDB").then((number: number) => { 7050e41f4b71Sopenharmony_ci console.info(`detach succeeded, number is ${number}`); 7051e41f4b71Sopenharmony_ci }).catch ((err: BusinessError) => { 7052e41f4b71Sopenharmony_ci console.error(`detach failed, code is ${err.code},message is ${err.message}`); 7053e41f4b71Sopenharmony_ci }) 7054e41f4b71Sopenharmony_ci} 7055e41f4b71Sopenharmony_ci``` 7056e41f4b71Sopenharmony_ci 7057e41f4b71Sopenharmony_ci### lockRow<sup>12+</sup> 7058e41f4b71Sopenharmony_ci 7059e41f4b71Sopenharmony_cilockRow(predicates: RdbPredicates):Promise<void> 7060e41f4b71Sopenharmony_ci 7061e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象从数据库中锁定数据,锁定数据不执行端云同步,使用Promise异步回调。 7062e41f4b71Sopenharmony_ci 7063e41f4b71Sopenharmony_ci该接口只支持主键为基本类型的表、不支持共享表、无主键表和复合类型主键表。 7064e41f4b71Sopenharmony_ci该接口不支持依赖关系表之间的锁传递,如果表存在依赖关系,需要根据依赖关系手动调用该接口。 7065e41f4b71Sopenharmony_ci该接口不支持对已删除数据的操作。 7066e41f4b71Sopenharmony_ci 7067e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7068e41f4b71Sopenharmony_ci 7069e41f4b71Sopenharmony_ci**参数:** 7070e41f4b71Sopenharmony_ci 7071e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7072e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ----------------------------------------- | 7073e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的锁定条件。 | 7074e41f4b71Sopenharmony_ci 7075e41f4b71Sopenharmony_ci**返回值**: 7076e41f4b71Sopenharmony_ci 7077e41f4b71Sopenharmony_ci| 类型 | 说明 | 7078e41f4b71Sopenharmony_ci| --------------------- | ------------------------------- | 7079e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 7080e41f4b71Sopenharmony_ci 7081e41f4b71Sopenharmony_ci**错误码:** 7082e41f4b71Sopenharmony_ci 7083e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7084e41f4b71Sopenharmony_ci 7085e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7086e41f4b71Sopenharmony_ci|-----------|----------------------------------------------------------------------------------------------| 7087e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7088e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7089e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7090e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7091e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 7092e41f4b71Sopenharmony_ci| 14800018 | No data meets the condition. | 7093e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7094e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7095e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7096e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7097e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7098e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7099e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7100e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7101e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7102e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7103e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7104e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7105e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7106e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7107e41f4b71Sopenharmony_ci 7108e41f4b71Sopenharmony_ci**示例:** 7109e41f4b71Sopenharmony_ci 7110e41f4b71Sopenharmony_ci```ts 7111e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7112e41f4b71Sopenharmony_ci 7113e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 7114e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 7115e41f4b71Sopenharmony_ciif(store != undefined) { 7116e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).lockRow(predicates).then(() => { 7117e41f4b71Sopenharmony_ci console.info(`Lock success`); 7118e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 7119e41f4b71Sopenharmony_ci console.error(`Lock failed, code is ${err.code},message is ${err.message}`); 7120e41f4b71Sopenharmony_ci }) 7121e41f4b71Sopenharmony_ci} 7122e41f4b71Sopenharmony_ci``` 7123e41f4b71Sopenharmony_ci 7124e41f4b71Sopenharmony_ci### unlockRow<sup>12+</sup> 7125e41f4b71Sopenharmony_ci 7126e41f4b71Sopenharmony_ciunlockRow(predicates: RdbPredicates):Promise<void> 7127e41f4b71Sopenharmony_ci 7128e41f4b71Sopenharmony_ci根据RdbPredicates的指定实例对象从数据库中解锁数据,使用Promise异步回调。 7129e41f4b71Sopenharmony_ci 7130e41f4b71Sopenharmony_ci该接口只支持主键为基本类型的表、不支持共享表、无主键表和复合类型主键表。 7131e41f4b71Sopenharmony_ci该接口不支持依赖关系表之间的锁传递,如果表存在依赖关系,需要根据依赖关系手动调用该接口。 7132e41f4b71Sopenharmony_ci该接口不支持对已删除数据的操作。 7133e41f4b71Sopenharmony_ci 7134e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7135e41f4b71Sopenharmony_ci 7136e41f4b71Sopenharmony_ci**参数:** 7137e41f4b71Sopenharmony_ci 7138e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7139e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ----------------------------------------- | 7140e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的锁定条件。 | 7141e41f4b71Sopenharmony_ci 7142e41f4b71Sopenharmony_ci**返回值**: 7143e41f4b71Sopenharmony_ci 7144e41f4b71Sopenharmony_ci| 类型 | 说明 | 7145e41f4b71Sopenharmony_ci| --------------------- | ------------------------------- | 7146e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 7147e41f4b71Sopenharmony_ci 7148e41f4b71Sopenharmony_ci**错误码:** 7149e41f4b71Sopenharmony_ci 7150e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7151e41f4b71Sopenharmony_ci 7152e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7153e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7154e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7155e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7156e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7157e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7158e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 7159e41f4b71Sopenharmony_ci| 14800018 | No data meets the condition. | 7160e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7161e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7162e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7163e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7164e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7165e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7166e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7167e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7168e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7169e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7170e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7171e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7172e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7173e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7174e41f4b71Sopenharmony_ci 7175e41f4b71Sopenharmony_ci**示例:** 7176e41f4b71Sopenharmony_ci 7177e41f4b71Sopenharmony_ci```ts 7178e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7179e41f4b71Sopenharmony_ci 7180e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 7181e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Lisa"); 7182e41f4b71Sopenharmony_ciif(store != undefined) { 7183e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).unlockRow(predicates).then(() => { 7184e41f4b71Sopenharmony_ci console.info(`Unlock success`); 7185e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 7186e41f4b71Sopenharmony_ci console.error(`Unlock failed, code is ${err.code},message is ${err.message}`); 7187e41f4b71Sopenharmony_ci }) 7188e41f4b71Sopenharmony_ci} 7189e41f4b71Sopenharmony_ci``` 7190e41f4b71Sopenharmony_ci 7191e41f4b71Sopenharmony_ci### queryLockedRow<sup>12+</sup> 7192e41f4b71Sopenharmony_ci 7193e41f4b71Sopenharmony_ciqueryLockedRow(predicates: RdbPredicates, columns?: Array<string>):Promise<ResultSet> 7194e41f4b71Sopenharmony_ci 7195e41f4b71Sopenharmony_ci根据指定条件查询数据库中锁定的数据,使用Promise异步回调。 7196e41f4b71Sopenharmony_ci由于共享内存大小限制为2Mb,因此单条数据的大小需小于2Mb,否则会查询失败。 7197e41f4b71Sopenharmony_ci 7198e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7199e41f4b71Sopenharmony_ci 7200e41f4b71Sopenharmony_ci**参数:** 7201e41f4b71Sopenharmony_ci 7202e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7203e41f4b71Sopenharmony_ci| ---------- | ------------------------------------ | ---- | ------------------------------------------------ | 7204e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 | 7205e41f4b71Sopenharmony_ci| columns | Array<string> | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 | 7206e41f4b71Sopenharmony_ci 7207e41f4b71Sopenharmony_ci**错误码:** 7208e41f4b71Sopenharmony_ci 7209e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7210e41f4b71Sopenharmony_ci 7211e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7212e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7213e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7214e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7215e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7216e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7217e41f4b71Sopenharmony_ci| 14800015 | The database does not respond. | 7218e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7219e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7220e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7221e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7222e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7223e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7224e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7225e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7226e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7227e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7228e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7229e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7230e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7231e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7232e41f4b71Sopenharmony_ci 7233e41f4b71Sopenharmony_ci**返回值**: 7234e41f4b71Sopenharmony_ci 7235e41f4b71Sopenharmony_ci| 类型 | 说明 | 7236e41f4b71Sopenharmony_ci| ------------------------------------------------------- | -------------------------------------------------- | 7237e41f4b71Sopenharmony_ci| Promise<[ResultSet](#resultset)> | Promise对象。如果操作成功,则返回ResultSet对象。 | 7238e41f4b71Sopenharmony_ci 7239e41f4b71Sopenharmony_ci**示例:** 7240e41f4b71Sopenharmony_ci 7241e41f4b71Sopenharmony_ci```ts 7242e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7243e41f4b71Sopenharmony_ci 7244e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 7245e41f4b71Sopenharmony_cipredicates.equalTo("NAME", "Rose"); 7246e41f4b71Sopenharmony_ciif(store != undefined) { 7247e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).queryLockedRow(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet: relationalStore.ResultSet) => { 7248e41f4b71Sopenharmony_ci console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`); 7249e41f4b71Sopenharmony_ci // resultSet是一个数据集合的游标,默认指向第-1个记录,有效的数据从0开始。 7250e41f4b71Sopenharmony_ci while (resultSet.goToNextRow()) { 7251e41f4b71Sopenharmony_ci const id = resultSet.getLong(resultSet.getColumnIndex("ID")); 7252e41f4b71Sopenharmony_ci const name = resultSet.getString(resultSet.getColumnIndex("NAME")); 7253e41f4b71Sopenharmony_ci const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); 7254e41f4b71Sopenharmony_ci const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); 7255e41f4b71Sopenharmony_ci console.info(`id=${id}, name=${name}, age=${age}, salary=${salary}`); 7256e41f4b71Sopenharmony_ci } 7257e41f4b71Sopenharmony_ci // 释放数据集的内存,若不释放可能会引起fd泄露与内存泄露 7258e41f4b71Sopenharmony_ci resultSet.close(); 7259e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 7260e41f4b71Sopenharmony_ci console.error(`Query failed, code is ${err.code},message is ${err.message}`); 7261e41f4b71Sopenharmony_ci }) 7262e41f4b71Sopenharmony_ci} 7263e41f4b71Sopenharmony_ci``` 7264e41f4b71Sopenharmony_ci### close<sup>12+</sup> 7265e41f4b71Sopenharmony_ci 7266e41f4b71Sopenharmony_ciclose(): Promise<void> 7267e41f4b71Sopenharmony_ci 7268e41f4b71Sopenharmony_ci关闭数据库,使用Promise异步回调。 7269e41f4b71Sopenharmony_ci 7270e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7271e41f4b71Sopenharmony_ci 7272e41f4b71Sopenharmony_ci**返回值:** 7273e41f4b71Sopenharmony_ci 7274e41f4b71Sopenharmony_ci| 类型 | 说明 | 7275e41f4b71Sopenharmony_ci| ------------------- | ------------- | 7276e41f4b71Sopenharmony_ci| Promise<void> | Promise对象。 | 7277e41f4b71Sopenharmony_ci 7278e41f4b71Sopenharmony_ci**错误码:** 7279e41f4b71Sopenharmony_ci 7280e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。 7281e41f4b71Sopenharmony_ci 7282e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7283e41f4b71Sopenharmony_ci| ------------ | ----------------------------------------------- | 7284e41f4b71Sopenharmony_ci| 401 | Parameter error. The store must not be nullptr. | 7285e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7286e41f4b71Sopenharmony_ci 7287e41f4b71Sopenharmony_ci**示例:** 7288e41f4b71Sopenharmony_ci 7289e41f4b71Sopenharmony_ci```ts 7290e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7291e41f4b71Sopenharmony_ci 7292e41f4b71Sopenharmony_ciif(store != undefined) { 7293e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).close().then(() => { 7294e41f4b71Sopenharmony_ci console.info(`close succeeded`); 7295e41f4b71Sopenharmony_ci }).catch ((err: BusinessError) => { 7296e41f4b71Sopenharmony_ci console.error(`close failed, code is ${err.code},message is ${err.message}`); 7297e41f4b71Sopenharmony_ci }) 7298e41f4b71Sopenharmony_ci} 7299e41f4b71Sopenharmony_ci``` 7300e41f4b71Sopenharmony_ci 7301e41f4b71Sopenharmony_ci## ResultSet 7302e41f4b71Sopenharmony_ci 7303e41f4b71Sopenharmony_ci提供通过查询数据库生成的数据库结果集的访问方法。结果集是指用户调用关系型数据库查询接口之后返回的结果集合,提供了多种灵活的数据访问方式,以便用户获取各项数据。 7304e41f4b71Sopenharmony_ci 7305e41f4b71Sopenharmony_ci### 使用说明 7306e41f4b71Sopenharmony_ci 7307e41f4b71Sopenharmony_ci首先需要获取resultSet对象。 7308e41f4b71Sopenharmony_ci 7309e41f4b71Sopenharmony_ci**示例:** 7310e41f4b71Sopenharmony_ci 7311e41f4b71Sopenharmony_ci<!--code_no_check--> 7312e41f4b71Sopenharmony_ci```ts 7313e41f4b71Sopenharmony_cilet resultSet: relationalStore.ResultSet | undefined = undefined; 7314e41f4b71Sopenharmony_cilet predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 7315e41f4b71Sopenharmony_cipredicates.equalTo("AGE", 18); 7316e41f4b71Sopenharmony_ciif(store != undefined) { 7317e41f4b71Sopenharmony_ci (store as relationalStore.RdbStore).query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((result: relationalStore.ResultSet) => { 7318e41f4b71Sopenharmony_ci resultSet = result; 7319e41f4b71Sopenharmony_ci console.info(`resultSet columnNames: ${resultSet.columnNames}`); 7320e41f4b71Sopenharmony_ci console.info(`resultSet columnCount: ${resultSet.columnCount}`); 7321e41f4b71Sopenharmony_ci }); 7322e41f4b71Sopenharmony_ci} 7323e41f4b71Sopenharmony_ci``` 7324e41f4b71Sopenharmony_ci 7325e41f4b71Sopenharmony_ci### 属性 7326e41f4b71Sopenharmony_ci 7327e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7328e41f4b71Sopenharmony_ci 7329e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 7330e41f4b71Sopenharmony_ci| ------------ | ------------------- | ---- | -------------------------------- | 7331e41f4b71Sopenharmony_ci| columnNames | Array<string> | 是 | 获取结果集中所有列的名称。 | 7332e41f4b71Sopenharmony_ci| columnCount | number | 是 | 获取结果集中的列数。 | 7333e41f4b71Sopenharmony_ci| rowCount | number | 是 | 获取结果集中的行数。 | 7334e41f4b71Sopenharmony_ci| rowIndex | number | 是 | 获取结果集当前行的索引。 | 7335e41f4b71Sopenharmony_ci| isAtFirstRow | boolean | 是 | 检查结果集是否位于第一行。 | 7336e41f4b71Sopenharmony_ci| isAtLastRow | boolean | 是 | 检查结果集是否位于最后一行。 | 7337e41f4b71Sopenharmony_ci| isEnded | boolean | 是 | 检查结果集是否位于最后一行之后。 | 7338e41f4b71Sopenharmony_ci| isStarted | boolean | 是 | 检查指针是否移动过。 | 7339e41f4b71Sopenharmony_ci| isClosed | boolean | 是 | 检查当前结果集是否关闭。 | 7340e41f4b71Sopenharmony_ci 7341e41f4b71Sopenharmony_ci### getColumnIndex 7342e41f4b71Sopenharmony_ci 7343e41f4b71Sopenharmony_cigetColumnIndex(columnName: string): number 7344e41f4b71Sopenharmony_ci 7345e41f4b71Sopenharmony_ci根据指定的列名获取列索引。 7346e41f4b71Sopenharmony_ci 7347e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7348e41f4b71Sopenharmony_ci 7349e41f4b71Sopenharmony_ci**参数:** 7350e41f4b71Sopenharmony_ci 7351e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7352e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | -------------------------- | 7353e41f4b71Sopenharmony_ci| columnName | string | 是 | 表示结果集中指定列的名称。 | 7354e41f4b71Sopenharmony_ci 7355e41f4b71Sopenharmony_ci**返回值:** 7356e41f4b71Sopenharmony_ci 7357e41f4b71Sopenharmony_ci| 类型 | 说明 | 7358e41f4b71Sopenharmony_ci| ------ | ------------------ | 7359e41f4b71Sopenharmony_ci| number | 返回指定列的索引。 | 7360e41f4b71Sopenharmony_ci 7361e41f4b71Sopenharmony_ci**错误码:** 7362e41f4b71Sopenharmony_ci 7363e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7364e41f4b71Sopenharmony_ci 7365e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7366e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7367e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7368e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7369e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7370e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 7371e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7372e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7373e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7374e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7375e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7376e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7377e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7378e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7379e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7380e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7381e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7382e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7383e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7384e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7385e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7386e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7387e41f4b71Sopenharmony_ci 7388e41f4b71Sopenharmony_ci**示例:** 7389e41f4b71Sopenharmony_ci 7390e41f4b71Sopenharmony_ci```ts 7391e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7392e41f4b71Sopenharmony_ci const id = (resultSet as relationalStore.ResultSet).getLong((resultSet as relationalStore.ResultSet).getColumnIndex("ID")); 7393e41f4b71Sopenharmony_ci const name = (resultSet as relationalStore.ResultSet).getString((resultSet as relationalStore.ResultSet).getColumnIndex("NAME")); 7394e41f4b71Sopenharmony_ci const age = (resultSet as relationalStore.ResultSet).getLong((resultSet as relationalStore.ResultSet).getColumnIndex("AGE")); 7395e41f4b71Sopenharmony_ci const salary = (resultSet as relationalStore.ResultSet).getDouble((resultSet as relationalStore.ResultSet).getColumnIndex("SALARY")); 7396e41f4b71Sopenharmony_ci} 7397e41f4b71Sopenharmony_ci``` 7398e41f4b71Sopenharmony_ci 7399e41f4b71Sopenharmony_ci### getColumnName 7400e41f4b71Sopenharmony_ci 7401e41f4b71Sopenharmony_cigetColumnName(columnIndex: number): string 7402e41f4b71Sopenharmony_ci 7403e41f4b71Sopenharmony_ci根据指定的列索引获取列名。 7404e41f4b71Sopenharmony_ci 7405e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7406e41f4b71Sopenharmony_ci 7407e41f4b71Sopenharmony_ci**参数:** 7408e41f4b71Sopenharmony_ci 7409e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7410e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | -------------------------- | 7411e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 表示结果集中指定列的索引。 | 7412e41f4b71Sopenharmony_ci 7413e41f4b71Sopenharmony_ci**返回值:** 7414e41f4b71Sopenharmony_ci 7415e41f4b71Sopenharmony_ci| 类型 | 说明 | 7416e41f4b71Sopenharmony_ci| ------ | ------------------ | 7417e41f4b71Sopenharmony_ci| string | 返回指定列的名称。 | 7418e41f4b71Sopenharmony_ci 7419e41f4b71Sopenharmony_ci**错误码:** 7420e41f4b71Sopenharmony_ci 7421e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7422e41f4b71Sopenharmony_ci 7423e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7424e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7425e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7426e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7427e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7428e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 7429e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7430e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7431e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7432e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7433e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7434e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7435e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7436e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7437e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7438e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7439e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7440e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7441e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7442e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7443e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7444e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7445e41f4b71Sopenharmony_ci 7446e41f4b71Sopenharmony_ci**示例:** 7447e41f4b71Sopenharmony_ci 7448e41f4b71Sopenharmony_ci```ts 7449e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7450e41f4b71Sopenharmony_ci const id = (resultSet as relationalStore.ResultSet).getColumnName(0); 7451e41f4b71Sopenharmony_ci const name = (resultSet as relationalStore.ResultSet).getColumnName(1); 7452e41f4b71Sopenharmony_ci const age = (resultSet as relationalStore.ResultSet).getColumnName(2); 7453e41f4b71Sopenharmony_ci} 7454e41f4b71Sopenharmony_ci``` 7455e41f4b71Sopenharmony_ci 7456e41f4b71Sopenharmony_ci### goTo 7457e41f4b71Sopenharmony_ci 7458e41f4b71Sopenharmony_cigoTo(offset:number): boolean 7459e41f4b71Sopenharmony_ci 7460e41f4b71Sopenharmony_ci向前或向后转至结果集的指定行,相对于其当前位置偏移。 7461e41f4b71Sopenharmony_ci 7462e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7463e41f4b71Sopenharmony_ci 7464e41f4b71Sopenharmony_ci**参数:** 7465e41f4b71Sopenharmony_ci 7466e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7467e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------------- | 7468e41f4b71Sopenharmony_ci| offset | number | 是 | 表示相对于当前位置的偏移量。 | 7469e41f4b71Sopenharmony_ci 7470e41f4b71Sopenharmony_ci**返回值:** 7471e41f4b71Sopenharmony_ci 7472e41f4b71Sopenharmony_ci| 类型 | 说明 | 7473e41f4b71Sopenharmony_ci| ------- | --------------------------------------------- | 7474e41f4b71Sopenharmony_ci| boolean | 如果成功移动结果集,则为true;否则返回false。 | 7475e41f4b71Sopenharmony_ci 7476e41f4b71Sopenharmony_ci**错误码:** 7477e41f4b71Sopenharmony_ci 7478e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7479e41f4b71Sopenharmony_ci 7480e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7481e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7482e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7483e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7484e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7485e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7486e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7487e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7488e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7489e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7490e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7491e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7492e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7493e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7494e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7495e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7496e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7497e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7498e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7499e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7500e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7501e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7502e41f4b71Sopenharmony_ci 7503e41f4b71Sopenharmony_ci**示例:** 7504e41f4b71Sopenharmony_ci 7505e41f4b71Sopenharmony_ci```ts 7506e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7507e41f4b71Sopenharmony_ci (resultSet as relationalStore.ResultSet).goTo(1); 7508e41f4b71Sopenharmony_ci} 7509e41f4b71Sopenharmony_ci``` 7510e41f4b71Sopenharmony_ci 7511e41f4b71Sopenharmony_ci### goToRow 7512e41f4b71Sopenharmony_ci 7513e41f4b71Sopenharmony_cigoToRow(position: number): boolean 7514e41f4b71Sopenharmony_ci 7515e41f4b71Sopenharmony_ci转到结果集的指定行。 7516e41f4b71Sopenharmony_ci 7517e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7518e41f4b71Sopenharmony_ci 7519e41f4b71Sopenharmony_ci**参数:** 7520e41f4b71Sopenharmony_ci 7521e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7522e41f4b71Sopenharmony_ci| -------- | ------ | ---- | ------------------------ | 7523e41f4b71Sopenharmony_ci| position | number | 是 | 表示要移动到的指定位置。 | 7524e41f4b71Sopenharmony_ci 7525e41f4b71Sopenharmony_ci**返回值:** 7526e41f4b71Sopenharmony_ci 7527e41f4b71Sopenharmony_ci| 类型 | 说明 | 7528e41f4b71Sopenharmony_ci| ------- | --------------------------------------------- | 7529e41f4b71Sopenharmony_ci| boolean | 如果成功移动结果集,则为true;否则返回false。 | 7530e41f4b71Sopenharmony_ci 7531e41f4b71Sopenharmony_ci**错误码:** 7532e41f4b71Sopenharmony_ci 7533e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7534e41f4b71Sopenharmony_ci 7535e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7536e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7537e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7538e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7539e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7540e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7541e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7542e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7543e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7544e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7545e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7546e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7547e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7548e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7549e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7550e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7551e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7552e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7553e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7554e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7555e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7556e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7557e41f4b71Sopenharmony_ci 7558e41f4b71Sopenharmony_ci**示例:** 7559e41f4b71Sopenharmony_ci 7560e41f4b71Sopenharmony_ci```ts 7561e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7562e41f4b71Sopenharmony_ci (resultSet as relationalStore.ResultSet).goToRow(5); 7563e41f4b71Sopenharmony_ci} 7564e41f4b71Sopenharmony_ci``` 7565e41f4b71Sopenharmony_ci 7566e41f4b71Sopenharmony_ci### goToFirstRow 7567e41f4b71Sopenharmony_ci 7568e41f4b71Sopenharmony_cigoToFirstRow(): boolean 7569e41f4b71Sopenharmony_ci 7570e41f4b71Sopenharmony_ci 7571e41f4b71Sopenharmony_ci转到结果集的第一行。 7572e41f4b71Sopenharmony_ci 7573e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7574e41f4b71Sopenharmony_ci 7575e41f4b71Sopenharmony_ci**返回值:** 7576e41f4b71Sopenharmony_ci 7577e41f4b71Sopenharmony_ci| 类型 | 说明 | 7578e41f4b71Sopenharmony_ci| ------- | --------------------------------------------- | 7579e41f4b71Sopenharmony_ci| boolean | 如果成功移动结果集,则为true;否则返回false。 | 7580e41f4b71Sopenharmony_ci 7581e41f4b71Sopenharmony_ci**错误码:** 7582e41f4b71Sopenharmony_ci 7583e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7584e41f4b71Sopenharmony_ci 7585e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7586e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7587e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7588e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7589e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7590e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7591e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7592e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7593e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7594e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7595e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7596e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7597e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7598e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7599e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7600e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7601e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7602e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7603e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7604e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7605e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7606e41f4b71Sopenharmony_ci 7607e41f4b71Sopenharmony_ci**示例:** 7608e41f4b71Sopenharmony_ci 7609e41f4b71Sopenharmony_ci```ts 7610e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7611e41f4b71Sopenharmony_ci (resultSet as relationalStore.ResultSet).goToFirstRow(); 7612e41f4b71Sopenharmony_ci} 7613e41f4b71Sopenharmony_ci``` 7614e41f4b71Sopenharmony_ci 7615e41f4b71Sopenharmony_ci### goToLastRow 7616e41f4b71Sopenharmony_ci 7617e41f4b71Sopenharmony_cigoToLastRow(): boolean 7618e41f4b71Sopenharmony_ci 7619e41f4b71Sopenharmony_ci转到结果集的最后一行。 7620e41f4b71Sopenharmony_ci 7621e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7622e41f4b71Sopenharmony_ci 7623e41f4b71Sopenharmony_ci**返回值:** 7624e41f4b71Sopenharmony_ci 7625e41f4b71Sopenharmony_ci| 类型 | 说明 | 7626e41f4b71Sopenharmony_ci| ------- | --------------------------------------------- | 7627e41f4b71Sopenharmony_ci| boolean | 如果成功移动结果集,则为true;否则返回false。 | 7628e41f4b71Sopenharmony_ci 7629e41f4b71Sopenharmony_ci**错误码:** 7630e41f4b71Sopenharmony_ci 7631e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7632e41f4b71Sopenharmony_ci 7633e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7634e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7635e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7636e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7637e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7638e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7639e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7640e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7641e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7642e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7643e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7644e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7645e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7646e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7647e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7648e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7649e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7650e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7651e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7652e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7653e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7654e41f4b71Sopenharmony_ci 7655e41f4b71Sopenharmony_ci**示例:** 7656e41f4b71Sopenharmony_ci 7657e41f4b71Sopenharmony_ci```ts 7658e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7659e41f4b71Sopenharmony_ci (resultSet as relationalStore.ResultSet).goToLastRow(); 7660e41f4b71Sopenharmony_ci} 7661e41f4b71Sopenharmony_ci``` 7662e41f4b71Sopenharmony_ci 7663e41f4b71Sopenharmony_ci### goToNextRow 7664e41f4b71Sopenharmony_ci 7665e41f4b71Sopenharmony_cigoToNextRow(): boolean 7666e41f4b71Sopenharmony_ci 7667e41f4b71Sopenharmony_ci转到结果集的下一行。 7668e41f4b71Sopenharmony_ci 7669e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7670e41f4b71Sopenharmony_ci 7671e41f4b71Sopenharmony_ci**返回值:** 7672e41f4b71Sopenharmony_ci 7673e41f4b71Sopenharmony_ci| 类型 | 说明 | 7674e41f4b71Sopenharmony_ci| ------- | --------------------------------------------- | 7675e41f4b71Sopenharmony_ci| boolean | 如果成功移动结果集,则为true;否则返回false。 | 7676e41f4b71Sopenharmony_ci 7677e41f4b71Sopenharmony_ci**错误码:** 7678e41f4b71Sopenharmony_ci 7679e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7680e41f4b71Sopenharmony_ci 7681e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7682e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7683e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7684e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7685e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7686e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7687e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7688e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7689e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7690e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7691e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7692e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7693e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7694e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7695e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7696e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7697e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7698e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7699e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7700e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7701e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7702e41f4b71Sopenharmony_ci 7703e41f4b71Sopenharmony_ci**示例:** 7704e41f4b71Sopenharmony_ci 7705e41f4b71Sopenharmony_ci```ts 7706e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7707e41f4b71Sopenharmony_ci (resultSet as relationalStore.ResultSet).goToNextRow(); 7708e41f4b71Sopenharmony_ci} 7709e41f4b71Sopenharmony_ci``` 7710e41f4b71Sopenharmony_ci 7711e41f4b71Sopenharmony_ci### goToPreviousRow 7712e41f4b71Sopenharmony_ci 7713e41f4b71Sopenharmony_cigoToPreviousRow(): boolean 7714e41f4b71Sopenharmony_ci 7715e41f4b71Sopenharmony_ci转到结果集的上一行。 7716e41f4b71Sopenharmony_ci 7717e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7718e41f4b71Sopenharmony_ci 7719e41f4b71Sopenharmony_ci**返回值:** 7720e41f4b71Sopenharmony_ci 7721e41f4b71Sopenharmony_ci| 类型 | 说明 | 7722e41f4b71Sopenharmony_ci| ------- | --------------------------------------------- | 7723e41f4b71Sopenharmony_ci| boolean | 如果成功移动结果集,则为true;否则返回false。 | 7724e41f4b71Sopenharmony_ci 7725e41f4b71Sopenharmony_ci**错误码:** 7726e41f4b71Sopenharmony_ci 7727e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7728e41f4b71Sopenharmony_ci 7729e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7730e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7731e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7732e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7733e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7734e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7735e41f4b71Sopenharmony_ci| 14800019 | The SQL must be a query statement. | 7736e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7737e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7738e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7739e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7740e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7741e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7742e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7743e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7744e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7745e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7746e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7747e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7748e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7749e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7750e41f4b71Sopenharmony_ci 7751e41f4b71Sopenharmony_ci**示例:** 7752e41f4b71Sopenharmony_ci 7753e41f4b71Sopenharmony_ci```ts 7754e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7755e41f4b71Sopenharmony_ci (resultSet as relationalStore.ResultSet).goToPreviousRow(); 7756e41f4b71Sopenharmony_ci} 7757e41f4b71Sopenharmony_ci``` 7758e41f4b71Sopenharmony_ci 7759e41f4b71Sopenharmony_ci### getValue<sup>12+</sup> 7760e41f4b71Sopenharmony_ci 7761e41f4b71Sopenharmony_cigetValue(columnIndex: number): ValueType 7762e41f4b71Sopenharmony_ci 7763e41f4b71Sopenharmony_ci获取当前行中指定列的值,值类型如果是ValueType指定的任意类型,则会以对应类型返回指定类的值,否则返回14800000。 7764e41f4b71Sopenharmony_ci 7765e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7766e41f4b71Sopenharmony_ci 7767e41f4b71Sopenharmony_ci**参数:** 7768e41f4b71Sopenharmony_ci 7769e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7770e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ----------------------- | 7771e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 7772e41f4b71Sopenharmony_ci 7773e41f4b71Sopenharmony_ci**返回值:** 7774e41f4b71Sopenharmony_ci 7775e41f4b71Sopenharmony_ci| 类型 | 说明 | 7776e41f4b71Sopenharmony_ci| ---------- | -------------------------------- | 7777e41f4b71Sopenharmony_ci| [ValueType](#valuetype) | 表示允许的数据字段类型。 | 7778e41f4b71Sopenharmony_ci 7779e41f4b71Sopenharmony_ci**错误码:** 7780e41f4b71Sopenharmony_ci 7781e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7782e41f4b71Sopenharmony_ci 7783e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7784e41f4b71Sopenharmony_ci|-----------|---------| 7785e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7786e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7787e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7788e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7789e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 7790e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7791e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7792e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7793e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7794e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7795e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7796e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7797e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7798e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7799e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7800e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7801e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7802e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7803e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7804e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7805e41f4b71Sopenharmony_ci 7806e41f4b71Sopenharmony_ci**示例:** 7807e41f4b71Sopenharmony_ci 7808e41f4b71Sopenharmony_ci```ts 7809e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7810e41f4b71Sopenharmony_ci const codes = (resultSet as relationalStore.ResultSet).getValue((resultSet as relationalStore.ResultSet).getColumnIndex("BIGINT_COLUMN")); 7811e41f4b71Sopenharmony_ci} 7812e41f4b71Sopenharmony_ci``` 7813e41f4b71Sopenharmony_ci 7814e41f4b71Sopenharmony_ci### getBlob 7815e41f4b71Sopenharmony_ci 7816e41f4b71Sopenharmony_cigetBlob(columnIndex: number): Uint8Array 7817e41f4b71Sopenharmony_ci 7818e41f4b71Sopenharmony_ci 7819e41f4b71Sopenharmony_ci以字节数组的形式获取当前行中指定列的值,如果当前列的数据类型为INTEGER、DOUBLE、TEXT、BLOB类型,会转成字节数组类型返回指定值,如果该列内容为空时,会返回空字节数组,其他类型则返回14800000。 7820e41f4b71Sopenharmony_ci 7821e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7822e41f4b71Sopenharmony_ci 7823e41f4b71Sopenharmony_ci**参数:** 7824e41f4b71Sopenharmony_ci 7825e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7826e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ----------------------- | 7827e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 7828e41f4b71Sopenharmony_ci 7829e41f4b71Sopenharmony_ci**返回值:** 7830e41f4b71Sopenharmony_ci 7831e41f4b71Sopenharmony_ci| 类型 | 说明 | 7832e41f4b71Sopenharmony_ci| ---------- | -------------------------------- | 7833e41f4b71Sopenharmony_ci| Uint8Array | 以字节数组的形式返回指定列的值。 | 7834e41f4b71Sopenharmony_ci 7835e41f4b71Sopenharmony_ci**错误码:** 7836e41f4b71Sopenharmony_ci 7837e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7838e41f4b71Sopenharmony_ci 7839e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7840e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7841e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7842e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7843e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7844e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7845e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 7846e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7847e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7848e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7849e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7850e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7851e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7852e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7853e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7854e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7855e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7856e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7857e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7858e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7859e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7860e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7861e41f4b71Sopenharmony_ci 7862e41f4b71Sopenharmony_ci**示例:** 7863e41f4b71Sopenharmony_ci 7864e41f4b71Sopenharmony_ci```ts 7865e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7866e41f4b71Sopenharmony_ci const codes = (resultSet as relationalStore.ResultSet).getBlob((resultSet as relationalStore.ResultSet).getColumnIndex("CODES")); 7867e41f4b71Sopenharmony_ci} 7868e41f4b71Sopenharmony_ci``` 7869e41f4b71Sopenharmony_ci 7870e41f4b71Sopenharmony_ci### getString 7871e41f4b71Sopenharmony_ci 7872e41f4b71Sopenharmony_cigetString(columnIndex: number): string 7873e41f4b71Sopenharmony_ci 7874e41f4b71Sopenharmony_ci以字符串形式获取当前行中指定列的值,如果当前列中的值为INTEGER、DOUBLE、TEXT、BLOB类型,会以字符串形式返回指定值,如果是当前列中的值为INTEGER,并且为空,则会返回空字符串"",其他类型则返回14800000,。 7875e41f4b71Sopenharmony_ci 7876e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7877e41f4b71Sopenharmony_ci 7878e41f4b71Sopenharmony_ci**参数:** 7879e41f4b71Sopenharmony_ci 7880e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7881e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ----------------------- | 7882e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 7883e41f4b71Sopenharmony_ci 7884e41f4b71Sopenharmony_ci**返回值:** 7885e41f4b71Sopenharmony_ci 7886e41f4b71Sopenharmony_ci| 类型 | 说明 | 7887e41f4b71Sopenharmony_ci| ------ | ---------------------------- | 7888e41f4b71Sopenharmony_ci| string | 以字符串形式返回指定列的值。 | 7889e41f4b71Sopenharmony_ci 7890e41f4b71Sopenharmony_ci**错误码:** 7891e41f4b71Sopenharmony_ci 7892e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7893e41f4b71Sopenharmony_ci 7894e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7895e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7896e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7897e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7898e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7899e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7900e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 7901e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7902e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7903e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7904e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7905e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7906e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7907e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7908e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7909e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7910e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7911e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7912e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7913e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7914e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7915e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7916e41f4b71Sopenharmony_ci 7917e41f4b71Sopenharmony_ci**示例:** 7918e41f4b71Sopenharmony_ci 7919e41f4b71Sopenharmony_ci```ts 7920e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7921e41f4b71Sopenharmony_ci const name = (resultSet as relationalStore.ResultSet).getString((resultSet as relationalStore.ResultSet).getColumnIndex("NAME")); 7922e41f4b71Sopenharmony_ci} 7923e41f4b71Sopenharmony_ci``` 7924e41f4b71Sopenharmony_ci 7925e41f4b71Sopenharmony_ci### getLong 7926e41f4b71Sopenharmony_ci 7927e41f4b71Sopenharmony_cigetLong(columnIndex: number): number 7928e41f4b71Sopenharmony_ci 7929e41f4b71Sopenharmony_ci以Long形式获取当前行中指定列的值,如果当前列的数据类型为INTEGER、DOUBLE、TEXT、BLOB类型,会转成Long类型返回指定值,如果该列内容为空时,会返回0,其他类型则返回14800000。 7930e41f4b71Sopenharmony_ci 7931e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7932e41f4b71Sopenharmony_ci 7933e41f4b71Sopenharmony_ci**参数:** 7934e41f4b71Sopenharmony_ci 7935e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7936e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ----------------------- | 7937e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 7938e41f4b71Sopenharmony_ci 7939e41f4b71Sopenharmony_ci**返回值:** 7940e41f4b71Sopenharmony_ci 7941e41f4b71Sopenharmony_ci| 类型 | 说明 | 7942e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | 7943e41f4b71Sopenharmony_ci| number | 以Long形式返回指定列的值。<br>该接口支持的数据范围是:Number.MIN_SAFE_INTEGER ~ Number.MAX_SAFE_INTEGER,若超出该范围,建议使用[getDouble](#getdouble)。 | 7944e41f4b71Sopenharmony_ci 7945e41f4b71Sopenharmony_ci**错误码:** 7946e41f4b71Sopenharmony_ci 7947e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 7948e41f4b71Sopenharmony_ci 7949e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 7950e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 7951e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7952e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 7953e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 7954e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 7955e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 7956e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 7957e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 7958e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 7959e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 7960e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 7961e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 7962e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 7963e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 7964e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 7965e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 7966e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 7967e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 7968e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 7969e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 7970e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 7971e41f4b71Sopenharmony_ci 7972e41f4b71Sopenharmony_ci**示例:** 7973e41f4b71Sopenharmony_ci 7974e41f4b71Sopenharmony_ci```ts 7975e41f4b71Sopenharmony_ciif(resultSet != undefined) { 7976e41f4b71Sopenharmony_ci const age = (resultSet as relationalStore.ResultSet).getLong((resultSet as relationalStore.ResultSet).getColumnIndex("AGE")); 7977e41f4b71Sopenharmony_ci } 7978e41f4b71Sopenharmony_ci``` 7979e41f4b71Sopenharmony_ci 7980e41f4b71Sopenharmony_ci### getDouble 7981e41f4b71Sopenharmony_ci 7982e41f4b71Sopenharmony_cigetDouble(columnIndex: number): number 7983e41f4b71Sopenharmony_ci 7984e41f4b71Sopenharmony_ci以double形式获取当前行中指定列的值,如果当前列的数据类型为INTEGER、DOUBLE、TEXT、BLOB类型,会转成double类型返回指定值,如果该列内容为空时,会返回0.0,其他类型则返回14800000。 7985e41f4b71Sopenharmony_ci 7986e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 7987e41f4b71Sopenharmony_ci 7988e41f4b71Sopenharmony_ci**参数:** 7989e41f4b71Sopenharmony_ci 7990e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7991e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ----------------------- | 7992e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 7993e41f4b71Sopenharmony_ci 7994e41f4b71Sopenharmony_ci**返回值:** 7995e41f4b71Sopenharmony_ci 7996e41f4b71Sopenharmony_ci| 类型 | 说明 | 7997e41f4b71Sopenharmony_ci| ------ | ---------------------------- | 7998e41f4b71Sopenharmony_ci| number | 以double形式返回指定列的值。 | 7999e41f4b71Sopenharmony_ci 8000e41f4b71Sopenharmony_ci**错误码:** 8001e41f4b71Sopenharmony_ci 8002e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 8003e41f4b71Sopenharmony_ci 8004e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 8005e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 8006e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 8007e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 8008e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 8009e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 8010e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 8011e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 8012e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 8013e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 8014e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 8015e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 8016e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 8017e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 8018e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 8019e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 8020e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 8021e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 8022e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 8023e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 8024e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 8025e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 8026e41f4b71Sopenharmony_ci 8027e41f4b71Sopenharmony_ci**示例:** 8028e41f4b71Sopenharmony_ci 8029e41f4b71Sopenharmony_ci```ts 8030e41f4b71Sopenharmony_ciif(resultSet != undefined) { 8031e41f4b71Sopenharmony_ci const salary = (resultSet as relationalStore.ResultSet).getDouble((resultSet as relationalStore.ResultSet).getColumnIndex("SALARY")); 8032e41f4b71Sopenharmony_ci} 8033e41f4b71Sopenharmony_ci``` 8034e41f4b71Sopenharmony_ci 8035e41f4b71Sopenharmony_ci### getAsset<sup>10+</sup> 8036e41f4b71Sopenharmony_ci 8037e41f4b71Sopenharmony_cigetAsset(columnIndex: number): Asset 8038e41f4b71Sopenharmony_ci 8039e41f4b71Sopenharmony_ci以[Asset](#asset10)形式获取当前行中指定列的值,如果当前列的数据类型为Asset类型,会以Asset类型返回指定值,如果当前列中的值为null时,会返回null,其他类型则返回14800000。 8040e41f4b71Sopenharmony_ci 8041e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 8042e41f4b71Sopenharmony_ci 8043e41f4b71Sopenharmony_ci**参数:** 8044e41f4b71Sopenharmony_ci 8045e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8046e41f4b71Sopenharmony_ci| ----------- | ------ | --- | ------------ | 8047e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 8048e41f4b71Sopenharmony_ci 8049e41f4b71Sopenharmony_ci**返回值:** 8050e41f4b71Sopenharmony_ci 8051e41f4b71Sopenharmony_ci| 类型 | 说明 | 8052e41f4b71Sopenharmony_ci| --------------- | -------------------------- | 8053e41f4b71Sopenharmony_ci| [Asset](#asset10) | 以Asset形式返回指定列的值。 | 8054e41f4b71Sopenharmony_ci 8055e41f4b71Sopenharmony_ci**错误码:** 8056e41f4b71Sopenharmony_ci 8057e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 8058e41f4b71Sopenharmony_ci 8059e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 8060e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 8061e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 8062e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 8063e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 8064e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 8065e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 8066e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 8067e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 8068e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 8069e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 8070e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 8071e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 8072e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 8073e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 8074e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 8075e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 8076e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 8077e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 8078e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 8079e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 8080e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 8081e41f4b71Sopenharmony_ci 8082e41f4b71Sopenharmony_ci**示例:** 8083e41f4b71Sopenharmony_ci 8084e41f4b71Sopenharmony_ci```ts 8085e41f4b71Sopenharmony_ciif(resultSet != undefined) { 8086e41f4b71Sopenharmony_ci const doc = (resultSet as relationalStore.ResultSet).getAsset((resultSet as relationalStore.ResultSet).getColumnIndex("DOC")); 8087e41f4b71Sopenharmony_ci} 8088e41f4b71Sopenharmony_ci``` 8089e41f4b71Sopenharmony_ci 8090e41f4b71Sopenharmony_ci### getAssets<sup>10+</sup> 8091e41f4b71Sopenharmony_ci 8092e41f4b71Sopenharmony_cigetAssets(columnIndex: number): Assets 8093e41f4b71Sopenharmony_ci 8094e41f4b71Sopenharmony_ci以[Assets](#assets10)形式获取当前行中指定列的值,如果当前列的数据类型为Assets类型,会以Assets类型返回指定值,如果当前列中的值为null时,会返回null,其他类型则返回14800000。 8095e41f4b71Sopenharmony_ci 8096e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 8097e41f4b71Sopenharmony_ci 8098e41f4b71Sopenharmony_ci**参数:** 8099e41f4b71Sopenharmony_ci 8100e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8101e41f4b71Sopenharmony_ci| ----------- | ------ | --- | ------------ | 8102e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 8103e41f4b71Sopenharmony_ci 8104e41f4b71Sopenharmony_ci**返回值:** 8105e41f4b71Sopenharmony_ci 8106e41f4b71Sopenharmony_ci| 类型 | 说明 | 8107e41f4b71Sopenharmony_ci| ---------------- | ---------------------------- | 8108e41f4b71Sopenharmony_ci| [Assets](#assets10)| 以Assets形式返回指定列的值。 | 8109e41f4b71Sopenharmony_ci 8110e41f4b71Sopenharmony_ci**错误码:** 8111e41f4b71Sopenharmony_ci 8112e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 8113e41f4b71Sopenharmony_ci 8114e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 8115e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 8116e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 8117e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 8118e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 8119e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 8120e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 8121e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 8122e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 8123e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 8124e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 8125e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 8126e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 8127e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 8128e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 8129e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 8130e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 8131e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 8132e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 8133e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 8134e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 8135e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 8136e41f4b71Sopenharmony_ci 8137e41f4b71Sopenharmony_ci**示例:** 8138e41f4b71Sopenharmony_ci 8139e41f4b71Sopenharmony_ci```ts 8140e41f4b71Sopenharmony_ciif(resultSet != undefined) { 8141e41f4b71Sopenharmony_ci const docs = (resultSet as relationalStore.ResultSet).getAssets((resultSet as relationalStore.ResultSet).getColumnIndex("DOCS")); 8142e41f4b71Sopenharmony_ci} 8143e41f4b71Sopenharmony_ci``` 8144e41f4b71Sopenharmony_ci 8145e41f4b71Sopenharmony_ci### getRow<sup>11+</sup> 8146e41f4b71Sopenharmony_ci 8147e41f4b71Sopenharmony_cigetRow(): ValuesBucket 8148e41f4b71Sopenharmony_ci 8149e41f4b71Sopenharmony_ci获取当前行。 8150e41f4b71Sopenharmony_ci 8151e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 8152e41f4b71Sopenharmony_ci 8153e41f4b71Sopenharmony_ci**返回值:** 8154e41f4b71Sopenharmony_ci 8155e41f4b71Sopenharmony_ci| 类型 | 说明 | 8156e41f4b71Sopenharmony_ci| ---------------- | ---------------------------- | 8157e41f4b71Sopenharmony_ci| [ValuesBucket](#valuesbucket) | 返回指定行的值。 | 8158e41f4b71Sopenharmony_ci 8159e41f4b71Sopenharmony_ci**错误码:** 8160e41f4b71Sopenharmony_ci 8161e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 8162e41f4b71Sopenharmony_ci 8163e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 8164e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 8165e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 8166e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 8167e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 8168e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 8169e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 8170e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 8171e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 8172e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 8173e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 8174e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 8175e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 8176e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 8177e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 8178e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 8179e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 8180e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 8181e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 8182e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 8183e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 8184e41f4b71Sopenharmony_ci 8185e41f4b71Sopenharmony_ci**示例:** 8186e41f4b71Sopenharmony_ci 8187e41f4b71Sopenharmony_ci```ts 8188e41f4b71Sopenharmony_ciif(resultSet != undefined) { 8189e41f4b71Sopenharmony_ci const row = (resultSet as relationalStore.ResultSet).getRow(); 8190e41f4b71Sopenharmony_ci} 8191e41f4b71Sopenharmony_ci``` 8192e41f4b71Sopenharmony_ci 8193e41f4b71Sopenharmony_ci### getSendableRow<sup>12+</sup> 8194e41f4b71Sopenharmony_ci 8195e41f4b71Sopenharmony_cigetSendableRow(): sendableRelationalStore.ValuesBucket 8196e41f4b71Sopenharmony_ci 8197e41f4b71Sopenharmony_ci获取当前行数据的sendable形式,用于跨线程传递使用。 8198e41f4b71Sopenharmony_ci 8199e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 8200e41f4b71Sopenharmony_ci 8201e41f4b71Sopenharmony_ci**返回值:** 8202e41f4b71Sopenharmony_ci 8203e41f4b71Sopenharmony_ci| 类型 | 说明 | 8204e41f4b71Sopenharmony_ci| ---------------------------------------------------------------------------------------------- | ---------------------------------------------- | 8205e41f4b71Sopenharmony_ci| [sendableRelationalStore.ValuesBucket](./js-apis-data-sendableRelationalStore.md#valuesbucket) | 当前行数据的sendable形式,用于跨线程传递使用。 | 8206e41f4b71Sopenharmony_ci 8207e41f4b71Sopenharmony_ci**错误码:** 8208e41f4b71Sopenharmony_ci 8209e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 8210e41f4b71Sopenharmony_ci 8211e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 8212e41f4b71Sopenharmony_ci| ------------ | --------------------------------------------- | 8213e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 8214e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 8215e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 8216e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 8217e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 8218e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 8219e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 8220e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 8221e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 8222e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 8223e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 8224e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 8225e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 8226e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 8227e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 8228e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 8229e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 8230e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 8231e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 8232e41f4b71Sopenharmony_ci 8233e41f4b71Sopenharmony_ci**示例:** 8234e41f4b71Sopenharmony_ci 8235e41f4b71Sopenharmony_ci```ts 8236e41f4b71Sopenharmony_ciimport { taskpool } from '@kit.ArkTS'; 8237e41f4b71Sopenharmony_ciimport type ctx from '@ohos.app.ability.common'; 8238e41f4b71Sopenharmony_ciimport { sendableRelationalStore } from '@kit.ArkData'; 8239e41f4b71Sopenharmony_ci 8240e41f4b71Sopenharmony_ci@Concurrent 8241e41f4b71Sopenharmony_ciasync function getDataByName(name: string, context: ctx.UIAbilityContext) { 8242e41f4b71Sopenharmony_ci const STORE_CONFIG: relationalStore.StoreConfig = { 8243e41f4b71Sopenharmony_ci name: "RdbTest.db", 8244e41f4b71Sopenharmony_ci securityLevel: relationalStore.SecurityLevel.S3 8245e41f4b71Sopenharmony_ci }; 8246e41f4b71Sopenharmony_ci const store = await relationalStore.getRdbStore(context, STORE_CONFIG); 8247e41f4b71Sopenharmony_ci const predicates = new relationalStore.RdbPredicates("EMPLOYEE"); 8248e41f4b71Sopenharmony_ci predicates.equalTo("NAME", name); 8249e41f4b71Sopenharmony_ci const resultSet = store.querySync(predicates); 8250e41f4b71Sopenharmony_ci 8251e41f4b71Sopenharmony_ci if (resultSet.rowCount > 0) { 8252e41f4b71Sopenharmony_ci resultSet.goToFirstRow(); 8253e41f4b71Sopenharmony_ci const sendableValuesBucket = resultSet.getSendableRow(); 8254e41f4b71Sopenharmony_ci return sendableValuesBucket; 8255e41f4b71Sopenharmony_ci } else { 8256e41f4b71Sopenharmony_ci return null; 8257e41f4b71Sopenharmony_ci } 8258e41f4b71Sopenharmony_ci} 8259e41f4b71Sopenharmony_ci 8260e41f4b71Sopenharmony_ciconst task = new taskpool.Task(getDataByName, 'Lisa', this.context); 8261e41f4b71Sopenharmony_ciconst sendableValuesBucket = await taskpool.execute(task) as sendableRelationalStore.ValuesBucket; 8262e41f4b71Sopenharmony_ci 8263e41f4b71Sopenharmony_ciif (sendableValuesBucket) { 8264e41f4b71Sopenharmony_ci const columnCount = sendableValuesBucket.size; 8265e41f4b71Sopenharmony_ci const age = sendableValuesBucket.get('age'); 8266e41f4b71Sopenharmony_ci const name = sendableValuesBucket.get('name'); 8267e41f4b71Sopenharmony_ci console.info(`Query data in taskpool succeeded, name is "${name}", age is "${age}"`) 8268e41f4b71Sopenharmony_ci} 8269e41f4b71Sopenharmony_ci``` 8270e41f4b71Sopenharmony_ci 8271e41f4b71Sopenharmony_ci### isColumnNull 8272e41f4b71Sopenharmony_ci 8273e41f4b71Sopenharmony_ciisColumnNull(columnIndex: number): boolean 8274e41f4b71Sopenharmony_ci 8275e41f4b71Sopenharmony_ci检查当前行中指定列的值是否为null。 8276e41f4b71Sopenharmony_ci 8277e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 8278e41f4b71Sopenharmony_ci 8279e41f4b71Sopenharmony_ci**参数:** 8280e41f4b71Sopenharmony_ci 8281e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8282e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ----------------------- | 8283e41f4b71Sopenharmony_ci| columnIndex | number | 是 | 指定的列索引,从0开始。 | 8284e41f4b71Sopenharmony_ci 8285e41f4b71Sopenharmony_ci**返回值:** 8286e41f4b71Sopenharmony_ci 8287e41f4b71Sopenharmony_ci| 类型 | 说明 | 8288e41f4b71Sopenharmony_ci| ------- | --------------------------------------------------------- | 8289e41f4b71Sopenharmony_ci| boolean | 如果当前行中指定列的值为null,则返回true,否则返回false。 | 8290e41f4b71Sopenharmony_ci 8291e41f4b71Sopenharmony_ci**错误码:** 8292e41f4b71Sopenharmony_ci 8293e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[关系型数据库错误码](errorcode-data-rdb.md)。其中,14800011错误码处理可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 8294e41f4b71Sopenharmony_ci 8295e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 8296e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------- | 8297e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 8298e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 8299e41f4b71Sopenharmony_ci| 14800011 | Database corrupted. | 8300e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 8301e41f4b71Sopenharmony_ci| 14800013 | Column out of bounds. | 8302e41f4b71Sopenharmony_ci| 14800014 | Already closed. | 8303e41f4b71Sopenharmony_ci| 14800021 | SQLite: Generic error. | 8304e41f4b71Sopenharmony_ci| 14800022 | SQLite: Callback routine requested an abort. | 8305e41f4b71Sopenharmony_ci| 14800023 | SQLite: Access permission denied. | 8306e41f4b71Sopenharmony_ci| 14800024 | SQLite: The database file is locked. | 8307e41f4b71Sopenharmony_ci| 14800025 | SQLite: A table in the database is locked. | 8308e41f4b71Sopenharmony_ci| 14800026 | SQLite: The database is out of memory. | 8309e41f4b71Sopenharmony_ci| 14800027 | SQLite: Attempt to write a readonly database. | 8310e41f4b71Sopenharmony_ci| 14800028 | SQLite: Some kind of disk I/O error occurred. | 8311e41f4b71Sopenharmony_ci| 14800029 | SQLite: The database is full. | 8312e41f4b71Sopenharmony_ci| 14800030 | SQLite: Unable to open the database file. | 8313e41f4b71Sopenharmony_ci| 14800031 | SQLite: TEXT or BLOB exceeds size limit. | 8314e41f4b71Sopenharmony_ci| 14800032 | SQLite: Abort due to constraint violation. | 8315e41f4b71Sopenharmony_ci| 14800033 | SQLite: Data type mismatch. | 8316e41f4b71Sopenharmony_ci| 14800034 | SQLite: Library used incorrectly. | 8317e41f4b71Sopenharmony_ci 8318e41f4b71Sopenharmony_ci**示例:** 8319e41f4b71Sopenharmony_ci 8320e41f4b71Sopenharmony_ci```ts 8321e41f4b71Sopenharmony_ciif(resultSet != undefined) { 8322e41f4b71Sopenharmony_ci const isColumnNull = (resultSet as relationalStore.ResultSet).isColumnNull((resultSet as relationalStore.ResultSet).getColumnIndex("CODES")); 8323e41f4b71Sopenharmony_ci} 8324e41f4b71Sopenharmony_ci``` 8325e41f4b71Sopenharmony_ci 8326e41f4b71Sopenharmony_ci### close 8327e41f4b71Sopenharmony_ci 8328e41f4b71Sopenharmony_ciclose(): void 8329e41f4b71Sopenharmony_ci 8330e41f4b71Sopenharmony_ci关闭结果集,若不关闭可能会引起fd泄露和内存泄露。 8331e41f4b71Sopenharmony_ci 8332e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 8333e41f4b71Sopenharmony_ci 8334e41f4b71Sopenharmony_ci**示例:** 8335e41f4b71Sopenharmony_ci 8336e41f4b71Sopenharmony_ci```ts 8337e41f4b71Sopenharmony_ciif(resultSet != undefined) { 8338e41f4b71Sopenharmony_ci (resultSet as relationalStore.ResultSet).close(); 8339e41f4b71Sopenharmony_ci} 8340e41f4b71Sopenharmony_ci``` 8341e41f4b71Sopenharmony_ci 8342e41f4b71Sopenharmony_ci**错误码:** 8343e41f4b71Sopenharmony_ci 8344e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。 8345e41f4b71Sopenharmony_ci 8346e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** | 8347e41f4b71Sopenharmony_ci|-----------| ------------------------------------------------------------ | 8348e41f4b71Sopenharmony_ci| 14800000 | Inner error. | 8349e41f4b71Sopenharmony_ci| 14800012 | Row out of bounds. | 8350