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&lt;[RdbStore](#rdbstore)&gt; | 是   | 指定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&lt;RdbStore&gt;
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&lt;[RdbStore](#rdbstore)&gt; | 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&lt;void&gt;): 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&lt;void&gt; | 是   | 指定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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;   | 是   | 指定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&lt;void&gt; | 无返回结果的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&lt;string&gt;            | 是   |   否   | 表示执行的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&lt;string&gt;): 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&lt;string&gt; | 是   | 指定的组网内的远程设备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&lt;string&gt;): 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&lt;string&gt; | 是   | 指定分组依赖的列名。 |
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&lt;ValueType&gt;): 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&lt;[ValueType](#valuetype)&gt; | 是   | 以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&lt;ValueType&gt;): 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&lt;[ValueType](#valuetype)&gt; | 是   | 以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&lt;number&gt;):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&lt;number&gt;   | 是   | 指定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&lt;number&gt;):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&lt;number&gt;                 | 是   | 指定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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;
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&lt;number&gt; | 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&lt;ValuesBucket&gt;, callback: AsyncCallback&lt;number&gt;):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&lt;[ValuesBucket](#valuesbucket)&gt; | 是   | 表示要插入到表中的一组数据。                                 |
2649e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;number&gt;                | 是   | 指定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&lt;ValuesBucket&gt;):Promise&lt;number&gt;
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&lt;[ValuesBucket](#valuesbucket)&gt; | 是   | 表示要插入到表中的一组数据。 |
2740e41f4b71Sopenharmony_ci
2741e41f4b71Sopenharmony_ci**返回值**:
2742e41f4b71Sopenharmony_ci
2743e41f4b71Sopenharmony_ci| 类型                  | 说明                                                        |
2744e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------------------------------- |
2745e41f4b71Sopenharmony_ci| Promise&lt;number&gt; | 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&lt;ValuesBucket&gt;):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&lt;[ValuesBucket](#valuesbucket)&gt; | 是   | 表示要插入到表中的一组数据。 |
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&lt;number&gt;):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&lt;number&gt;          | 是   | 指定的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&lt;number&gt;):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&lt;number&gt;                 | 是   | 指定的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&lt;number&gt;
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&lt;number&gt; | 指定的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&lt;number&gt;
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&lt;number&gt; | 指定的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&lt;number&gt;):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&lt;number&gt;          | 是   | 指定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&lt;number&gt;
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&lt;number&gt; | 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&lt;ResultSet&gt;):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&lt;[ResultSet](#resultset)&gt; | 是   | 指定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&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):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&lt;string&gt;                                          | 是   | 表示要查询的列。如果值为空,则查询应用于所有列。            |
3609e41f4b71Sopenharmony_ci| callback   | AsyncCallback&lt;[ResultSet](#resultset)&gt; | 是   | 指定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&lt;string&gt;):Promise&lt;ResultSet&gt;
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&lt;string&gt;                  | 否   | 表示要查询的列。如果值为空,则查询应用于所有列。 |
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&lt;[ResultSet](#resultset)&gt; | 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&lt;string&gt;):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&lt;string&gt;             | 否   | 表示要查询的列。如果值为空,则查询应用于所有列。默认值为空。 |
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&lt;string&gt; , callback: AsyncCallback&lt;ResultSet&gt;): 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&lt;string&gt;                          | 是   | 表示要查询的列。如果值为空,则查询应用于所有列。          |
3785e41f4b71Sopenharmony_ci| callback   | AsyncCallback&lt;[ResultSet](#resultset)&gt; | 是   | 指定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&lt;string&gt;): Promise&lt;ResultSet&gt;
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&lt;string&gt;                  | 是   | 表示要查询的列。如果值为空,则查询应用于所有列。 |
3860e41f4b71Sopenharmony_ci
3861e41f4b71Sopenharmony_ci**返回值**:
3862e41f4b71Sopenharmony_ci
3863e41f4b71Sopenharmony_ci| 类型                                                         | 说明                                               |
3864e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | -------------------------------------------------- |
3865e41f4b71Sopenharmony_ci| Promise&lt;[ResultSet](#resultset)&gt; | 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&lt;ResultSet&gt;):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&lt;[ResultSet](#resultset)&gt; | 是   | 指定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&lt;ValueType&gt;, callback: AsyncCallback&lt;ResultSet&gt;):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&lt;[ValueType](#valuetype)&gt;         | 是   | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数需为空数组。 |
3984e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;[ResultSet](#resultset)&gt; | 是   | 指定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&lt;ValueType&gt;):Promise&lt;ResultSet&gt;
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&lt;[ValueType](#valuetype)&gt; | 否   | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数不填。 |
4035e41f4b71Sopenharmony_ci
4036e41f4b71Sopenharmony_ci**返回值**:
4037e41f4b71Sopenharmony_ci
4038e41f4b71Sopenharmony_ci| 类型                                                    | 说明                                               |
4039e41f4b71Sopenharmony_ci| ------------------------------------------------------- | -------------------------------------------------- |
4040e41f4b71Sopenharmony_ci| Promise&lt;[ResultSet](#resultset)&gt; | 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&lt;ValueType&gt;):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&lt;[ValueType](#valuetype)&gt; | 否   | 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&lt;void&gt;):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&lt;void&gt;            | 是   | 指定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&lt;ValueType&gt;, callback: AsyncCallback&lt;void&gt;):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&lt;[ValueType](#valuetype)&gt; | 是   | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数需为空数组。 |
4214e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt;            | 是   | 指定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&lt;ValueType&gt;):Promise&lt;void&gt;
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&lt;[ValueType](#valuetype)&gt; | 否   | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数不填。 |
4277e41f4b71Sopenharmony_ci
4278e41f4b71Sopenharmony_ci**返回值**:
4279e41f4b71Sopenharmony_ci
4280e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4281e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4282e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的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&lt;ValueType&gt;):Promise&lt;ValueType&gt;
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&lt;[ValueType](#valuetype)&gt; | 否   | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。当sql参数语句完整时,该参数不填。 |
4347e41f4b71Sopenharmony_ci
4348e41f4b71Sopenharmony_ci**返回值**:
4349e41f4b71Sopenharmony_ci
4350e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4351e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4352e41f4b71Sopenharmony_ci| Promise&lt;[ValueType](#valuetype)&gt; | 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&lt;ValueType&gt;): Promise&lt;ValueType&gt;
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&lt;[ValueType](#valuetype)&gt; | 否   | SQL语句中参数的值。该值与sql参数语句中的占位符相对应。该参数不填,或者填null或undefined,都认为是sql参数语句完整。 |
4440e41f4b71Sopenharmony_ci
4441e41f4b71Sopenharmony_ci**返回值**:
4442e41f4b71Sopenharmony_ci
4443e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4444e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4445e41f4b71Sopenharmony_ci| Promise&lt;[ValueType](#valuetype)&gt; | 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&lt;ValueType&gt;): 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&lt;[ValueType](#valuetype)&gt; | 否   | 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&lt;ModifyTime&gt;): 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&lt;[ModifyTime](#modifytime10)&gt; | 是   | 指定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&lt;ModifyTime&gt;
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&lt;[ModifyTime](#modifytime10)&gt; | 返回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&lt;number&gt;
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&lt;number&gt; | 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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;):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&lt;void&gt; | 是   | 指定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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;void&gt;):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&lt;void&gt; | 是   | 指定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&lt;void&gt;
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&lt;void&gt; | 无返回结果的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&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): 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&lt;string&gt;       | 是   | 要设置的分布式数据库表表名。 |
5342e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 指定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&lt;string&gt;): Promise&lt;void&gt;
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&lt;string&gt; | 是   | 要设置的分布式数据库表表名。 |
5384e41f4b71Sopenharmony_ci
5385e41f4b71Sopenharmony_ci**返回值**:
5386e41f4b71Sopenharmony_ci
5387e41f4b71Sopenharmony_ci| 类型                | 说明                      |
5388e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
5389e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的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&lt;string&gt;, type: DistributedType, callback: AsyncCallback&lt;void&gt;): 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&lt;string&gt;                   | 是   | 要设置的分布式数据库表表名。 |
5431e41f4b71Sopenharmony_ci| type     | [DistributedType](#distributedtype10) | 是   | 表的分布式类型。             |
5432e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt;             | 是   | 指定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&lt;string&gt;, type: DistributedType, config: DistributedConfig, callback: AsyncCallback&lt;void&gt;): 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&lt;string&gt;                 | 是   | 要设置的分布式数据库表表名。     |
5475e41f4b71Sopenharmony_ci| type     | [DistributedType](#distributedtype10) | 是   | 表的分布式类型。 |
5476e41f4b71Sopenharmony_ci| config | [DistributedConfig](#distributedconfig10) | 是 | 表的分布式配置信息。 |
5477e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt;           | 是   | 指定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&lt;string>, type?: DistributedType, config?: DistributedConfig): Promise&lt;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&lt;string&gt;                       | 是   | 要设置的分布式数据库表表名。                                 |
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&lt;void&gt; | 无返回结果的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&lt;string&gt;): 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&lt;string&gt; | 是   | 指定的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&lt;string&gt;
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&lt;string&gt; | 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&lt;Array&lt;[string, number]&gt;&gt;): 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_PUSHrelationalStore.SyncMode.SYNC_MODE_PULL。                               |
5703e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates)               | 是   | 约束同步数据和设备。                                         |
5704e41f4b71Sopenharmony_ci| callback   | AsyncCallback&lt;Array&lt;[string, number]&gt;&gt; | 是   | 指定的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&lt;Array&lt;[string, number]&gt;&gt;
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_PUSHrelationalStore.SyncMode.SYNC_MODE_PULL。 |
5769e41f4b71Sopenharmony_ci| predicates | [RdbPredicates](#rdbpredicates) | 是   | 约束同步数据和设备。           |
5770e41f4b71Sopenharmony_ci
5771e41f4b71Sopenharmony_ci**返回值**:
5772e41f4b71Sopenharmony_ci
5773e41f4b71Sopenharmony_ci| 类型                                         | 说明                                                         |
5774e41f4b71Sopenharmony_ci| -------------------------------------------- | ------------------------------------------------------------ |
5775e41f4b71Sopenharmony_ci| Promise&lt;Array&lt;[string, number]&gt;&gt; | 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&lt;ProgressDetails&gt;, callback: AsyncCallback&lt;void&gt;): 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&lt;[ProgressDetails](#progressdetails10)&gt; | 是   | 用来处理数据库同步详细信息的回调函数。             |
5837e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt;                             | 是   | 指定的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&lt;ProgressDetails&gt;): Promise&lt;void&gt;
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&lt;[ProgressDetails](#progressdetails10)&gt; | 是   | 用来处理数据库同步详细信息的回调函数。 |
5879e41f4b71Sopenharmony_ci
5880e41f4b71Sopenharmony_ci**返回值**:
5881e41f4b71Sopenharmony_ci
5882e41f4b71Sopenharmony_ci| 类型                | 说明                                    |
5883e41f4b71Sopenharmony_ci| ------------------- | --------------------------------------- |
5884e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 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&lt;ProgressDetails&gt;, callback: AsyncCallback&lt;void&gt;): 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&lt;[ProgressDetails](#progressdetails10)&gt; | 是   | 用来处理数据库同步详细信息的回调函数。             |
5927e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt;                             | 是   | 指定的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&lt;ProgressDetails&gt;): Promise&lt;void&gt;
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&lt;[ProgressDetails](#progressdetails10)&gt; | 是   | 用来处理数据库同步详细信息的回调函数。 |
5972e41f4b71Sopenharmony_ci
5973e41f4b71Sopenharmony_ci**返回值**:
5974e41f4b71Sopenharmony_ci
5975e41f4b71Sopenharmony_ci| 类型                | 说明                                    |
5976e41f4b71Sopenharmony_ci| ------------------- | --------------------------------------- |
5977e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 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&lt;Array&lt;string&gt;&gt;): 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&lt;Array&lt;string&gt;&gt;                          | 是   | 指分布式数据库中数据更改事件的观察者。Array&lt;string&gt;为数据库中的数据发生改变的对端设备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&lt;Array&lt;string&gt;&gt;\| Callback&lt;Array&lt;ChangeInfo&gt;&gt;): 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&lt;Array&lt;string&gt;&gt; \| Callback&lt;Array&lt;[ChangeInfo](#changeinfo10)&gt;&gt; | 是   | 回调函数。<br>当type为SUBSCRIBE_TYPE_REMOTE,observer类型需为Callback&lt;Array&lt;string&gt;&gt;,其中Array&lt;string&gt;为数据库中的数据发生改变的对端设备ID。<br> 当type为SUBSCRIBE_TYPE_CLOUD,observer类型需为Callback&lt;Array&lt;string&gt;&gt;,其中Array&lt;string&gt;为数据库中的数据发生改变的云端账号。 <br> 当type为SUBSCRIBE_TYPE_CLOUD_DETAILS,observer类型需为Callback&lt;Array&lt;ChangeInfo&gt;&gt;,其中Array&lt;ChangeInfo&gt;为数据库端云同步过程的详情。<br>当type为SUBSCRIBE_TYPE_LOCAL_DETAILS,observer类型需为Callback&lt;Array&lt;ChangeInfo&gt;&gt;,其中Array&lt;ChangeInfo&gt;为本地数据库中的数据更改的详情。 |
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&lt;ProgressDetails&gt;): 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&lt;[ProgressDetails](#progressdetails10)&gt; | 是   | 回调函数。                             |
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&lt;SqlExecutionInfo&gt;): 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&lt;[SqlExecutionInfo](#sqlexecutioninfo12)&gt; | 是   | 回调函数。用于返回数据库中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&lt;Array&lt;string&gt;&gt;): 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&lt;Array&lt;string&gt;&gt;                          | 是   | 指已注册的数据更改观察者。Array&lt;string&gt;为数据库中的数据发生改变的对端设备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&lt;Array&lt;string&gt;&gt;\| Callback&lt;Array&lt;ChangeInfo&gt;&gt;): 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&lt;Array&lt;string&gt;&gt;\| Callback&lt;Array&lt;[ChangeInfo](#changeinfo10)&gt;&gt; | 否 | 回调函数。<br/>当type为SUBSCRIBE_TYPE_REMOTE,observer类型需为Callback&lt;Array&lt;string&gt;&gt;,其中Array&lt;string&gt;为数据库中的数据发生改变的对端设备ID。<br/> 当type为SUBSCRIBE_TYPE_CLOUD,observer类型需为Callback&lt;Array&lt;string&gt;&gt;,其中Array&lt;string&gt;为数据库中的数据发生改变的云端账号。 <br/> 当type为SUBSCRIBE_TYPE_CLOUD_DETAILS,observer类型需为Callback&lt;Array&lt;ChangeInfo&gt;&gt;,其中Array&lt;ChangeInfo&gt;为数据库端云同步过程的详情。<br>当type为SUBSCRIBE_TYPE_LOCAL_DETAILS,observer类型需为Callback&lt;Array&lt;ChangeInfo&gt;&gt;,其中Array&lt;ChangeInfo&gt;为本地数据库中的数据更改的详情。<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&lt;ProgressDetails&gt;): 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&lt;[ProgressDetails](#progressdetails10)&gt; | 否   | 指已注册的自动同步进度观察者。该参数存在,则取消订阅指定回调,该参数为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&lt;SqlExecutionInfo&gt;): 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&lt;[SqlExecutionInfo](#sqlexecutioninfo12)&gt; | 否   | 回调函数。该参数存在,则取消指定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&lt;void&gt;): 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&lt;void&gt;     | 是   | 指定的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&lt;void&gt;): 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&lt;void&gt;     | 是   | 指定的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&lt;void&gt;
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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;
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&lt;number&gt; | 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&lt;void&gt;
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&lt;void&gt;   | 无返回结果的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&lt;void&gt;
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&lt;void&gt;   | 无返回结果的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&lt;string&gt;):Promise&lt;ResultSet&gt;
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&lt;string&gt;                  | 否   | 表示要查询的列。如果值为空,则查询应用于所有列。 |
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&lt;[ResultSet](#resultset)&gt; | 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&lt;void&gt;
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&lt;void&gt; | 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&lt;string&gt; | 是   | 获取结果集中所有列的名称。       |
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