1e41f4b71Sopenharmony_ci# @ohos.data.distributedKVStore (分布式键值数据库)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci分布式键值数据库为应用程序提供不同设备间数据库的分布式协同能力。通过调用分布式键值数据库各个接口,应用程序可将数据保存到分布式键值数据库中,并可对分布式键值数据库中的数据进行增加、删除、修改、查询、同步等操作。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci该模块提供以下分布式键值数据库相关的常用功能:
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci- [KVManager](#kvmanager):分布式键值数据库管理实例,用于获取数据库的相关信息。
8e41f4b71Sopenharmony_ci- [KVStoreResultSet](#kvstoreresultset):提供获取数据库结果集的相关方法,包括查询和移动数据读取位置等。
9e41f4b71Sopenharmony_ci- [Query](#query):使用谓词表示数据库查询,提供创建Query实例、查询数据库中的数据和添加谓词的方法。
10e41f4b71Sopenharmony_ci- [SingleKVStore](#singlekvstore):单版本分布式键值数据库,不对数据所属设备进行区分,提供查询数据和同步数据的方法。
11e41f4b71Sopenharmony_ci- [DeviceKVStore](#devicekvstore):设备协同数据库,继承自[SingleKVStore](#singlekvstore),以设备维度对数据进行区分,提供查询数据和同步数据的方法。
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci> **说明:** 
14e41f4b71Sopenharmony_ci>
15e41f4b71Sopenharmony_ci> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## 导入模块
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci```ts
20e41f4b71Sopenharmony_ciimport { distributedKVStore } from '@kit.ArkData';
21e41f4b71Sopenharmony_ci```
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci## KVManagerConfig
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci提供KVManager实例的配置信息,包括调用方的包名和应用的上下文。
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci| 名称     | 类型              | 必填 | 说明                                                         |
30e41f4b71Sopenharmony_ci| ---------- | --------------------- | ---- | ------------------------------------------------------------ |
31e41f4b71Sopenharmony_ci| context    | BaseContext           | 是   |应用的上下文。 <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)。<br>从API version 10开始,context的参数类型为[BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md)。 |
32e41f4b71Sopenharmony_ci| bundleName | string                | 是   | 调用方的包名。                                               |
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci## Constants
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci分布式键值数据库常量。
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci| 名称                  | 值      | 说明                                    |
41e41f4b71Sopenharmony_ci| --------------------- | ------- | --------------------------------------- |
42e41f4b71Sopenharmony_ci| MAX_KEY_LENGTH        | 1024    | 数据库中Key允许的最大长度,单位字节。   |
43e41f4b71Sopenharmony_ci| MAX_VALUE_LENGTH      | 4194303 | 数据库中Value允许的最大长度,单位字节。 |
44e41f4b71Sopenharmony_ci| MAX_KEY_LENGTH_DEVICE | 896     | 设备协同数据库中Key允许的最大长度,单位字节。 |
45e41f4b71Sopenharmony_ci| MAX_STORE_ID_LENGTH   | 128     | 数据库标识符允许的最大长度,单位字节。  |
46e41f4b71Sopenharmony_ci| MAX_QUERY_LENGTH      | 512000  | 最大查询长度,单位字节。                |
47e41f4b71Sopenharmony_ci| MAX_BATCH_SIZE        | 128     | 最大批处理操作数量。                    |
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci## ValueType
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci数据类型枚举。
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci| 名称       | 说明                   |
56e41f4b71Sopenharmony_ci| ---------- | ---------------------- |
57e41f4b71Sopenharmony_ci| STRING     | 表示值类型为字符串。   |
58e41f4b71Sopenharmony_ci| INTEGER    | 表示值类型为整数。     |
59e41f4b71Sopenharmony_ci| FLOAT      | 表示值类型为浮点数。   |
60e41f4b71Sopenharmony_ci| BYTE_ARRAY | 表示值类型为字节数组。 |
61e41f4b71Sopenharmony_ci| BOOLEAN    | 表示值类型为布尔值。   |
62e41f4b71Sopenharmony_ci| DOUBLE     | 表示值类型为双浮点数。 |
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci## Value
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci存储在数据库中的值对象。
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci| 名称  | 类型   |必填  | 说明                    |
71e41f4b71Sopenharmony_ci| ----- | -------   |-----|------------------------ |
72e41f4b71Sopenharmony_ci| type | [ValueType](#valuetype) | 是|值类型。   |
73e41f4b71Sopenharmony_ci| value | Uint8Array \| string \| number \| boolean| 是|值。   |
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci## Entry
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci存储在数据库中的键值对。
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| 名称  | 类型        | 必填 | 说明     |
82e41f4b71Sopenharmony_ci| ----- | --------------- | ---- | -------- |
83e41f4b71Sopenharmony_ci| key   | string          | 是   | 键值。   |
84e41f4b71Sopenharmony_ci| value | [Value](#value) | 是   | 值对象。 |
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci## ChangeNotification
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci数据变更时通知的对象,包括数据插入的数据、更新的数据、删除的数据和设备ID。
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci| 名称          | 类型          | 必填       | 说明                     |
93e41f4b71Sopenharmony_ci| ------------- | ----------------- | ---- | ------------------------ |
94e41f4b71Sopenharmony_ci| insertEntries | [Entry](#entry)[] | 是   | 数据添加记录。           |
95e41f4b71Sopenharmony_ci| updateEntries | [Entry](#entry)[] | 是   | 数据更新记录。           |
96e41f4b71Sopenharmony_ci| deleteEntries | [Entry](#entry)[] | 是    | 数据删除记录。           |
97e41f4b71Sopenharmony_ci| deviceId      | string            | 是    | 设备ID,此处为设备UUID。 |
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci## SyncMode
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci同步模式枚举。
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci| 名称      | 说明                                                 |
106e41f4b71Sopenharmony_ci| --------- | ---------------------------------------------------- |
107e41f4b71Sopenharmony_ci| PULL_ONLY | 表示只能从远端拉取数据到本端。                       |
108e41f4b71Sopenharmony_ci| PUSH_ONLY | 表示只能从本端推送数据到远端。                       |
109e41f4b71Sopenharmony_ci| PUSH_PULL | 表示从本端推送数据到远端,然后从远端拉取数据到本端。 |
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci## SubscribeType
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci订阅类型枚举。
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci| 名称                  | 说明                         |
118e41f4b71Sopenharmony_ci| --------------------- | ---------------------------- |
119e41f4b71Sopenharmony_ci| SUBSCRIBE_TYPE_LOCAL  | 表示订阅本地数据变更。       |
120e41f4b71Sopenharmony_ci| SUBSCRIBE_TYPE_REMOTE | 表示订阅远端数据变更。       |
121e41f4b71Sopenharmony_ci| SUBSCRIBE_TYPE_ALL    | 表示订阅远端和本地数据变更。 |
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci## KVStoreType
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci分布式键值数据库类型枚举。
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci| 名称                 | 说明                                                         |
128e41f4b71Sopenharmony_ci| -------------------- | ------------------------------------------------------------ |
129e41f4b71Sopenharmony_ci| DEVICE_COLLABORATION | 表示多设备协同数据库。<br> **数据库特点:** 数据以设备的维度管理,不存在冲突;支持按照设备的维度查询数据。<br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
130e41f4b71Sopenharmony_ci| SINGLE_VERSION       | 表示单版本数据库。<br> **数据库特点:** 数据不分设备,设备之间修改相同的Key会覆盖。 <br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core |
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci## SecurityLevel
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci数据库的安全级别枚举。
135e41f4b71Sopenharmony_ci> **说明**:
136e41f4b71Sopenharmony_ci>
137e41f4b71Sopenharmony_ci> 在单设备使用场景下,KV数据库支持修改securityLevel开库参数进行安全等级升级。数据库安全等级升级操作需要注意以下几点:
138e41f4b71Sopenharmony_ci> * 该操作不支持需要进行跨设备同步的数据库,不同安全等级的数据库之间不能进行数据同步,需要跨设备同步的数据库如果要升级安全等级,建议重新创建更高安全等级的数据库。
139e41f4b71Sopenharmony_ci> * 该操作需在关闭当前数据库之后,通过修改securityLevel开库参数重新设置数据库的安全等级,再进行开库操作。
140e41f4b71Sopenharmony_ci> * 该操作只支持升级,不支持降级。例如支持S2->S3的升级,不支持S3->S2的降级。
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci| 名称        | 说明                                                         |
145e41f4b71Sopenharmony_ci| -------:   | ------------------------------------------------------------ |
146e41f4b71Sopenharmony_ci| S1         | 表示数据库的安全级别为低级别,数据的泄露、篡改、破坏、销毁可能会给个人或组织导致有限的不利影响。<br>例如,性别、国籍,用户申请记录等。 |
147e41f4b71Sopenharmony_ci| S2         | 表示数据库的安全级别为中级别,数据的泄露、篡改、破坏、销毁可能会给个人或组织导致严重的不利影响。<br>例如,个人详细通信地址,姓名昵称等。 |
148e41f4b71Sopenharmony_ci| S3         | 表示数据库的安全级别为高级别,数据的泄露、篡改、破坏、销毁可能会给个人或组织导致严峻的不利影响。<br>例如,个人实时精确定位信息、运动轨迹等。 |
149e41f4b71Sopenharmony_ci| S4         | 表示数据库的安全级别为关键级别,业界法律法规中定义的特殊数据类型,涉及个人的最私密领域的信息或者一旦泄露、篡改、破坏、销毁可能会给个人或组织造成重大的不利影响数据。<br>例如,政治观点、宗教、和哲学信仰、工会成员资格、基因数据、生物信息、健康和性生活状况、性取向等或设备认证鉴权、个人的信用卡等财务信息。 |
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci## Options
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci用于提供创建数据库的配置信息。
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci| 名称          | 类型                        | 必填 | 说明                                                         |
156e41f4b71Sopenharmony_ci| --------------- | -------------- | ---- | -------------------------|
157e41f4b71Sopenharmony_ci| createIfMissing | boolean                         | 否  | 当数据库文件不存在时是否创建数据库,默认为true,即创建。<br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core |
158e41f4b71Sopenharmony_ci| encrypt         | boolean                         | 否   | 设置数据库文件是否加密,默认为false,即不加密。<br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core |
159e41f4b71Sopenharmony_ci| backup          | boolean                         | 否   | 设置数据库文件是否备份,默认为true,即备份。 <br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core |
160e41f4b71Sopenharmony_ci| autoSync        | boolean                         | 否   | 设置数据库是否支持跨设备自动同步。默认为false,即只支持手动同步。配置为true,<!--RP1-->即只支持在[跨设备Call调用实现的多端协同](../../application-models/hop-multi-device-collaboration.md#通过跨设备call调用实现多端协同)中生效,其他场景无法生效。<!--RP1End--><br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core<br>**需要权限**: ohos.permission.DISTRIBUTED_DATASYNC |
161e41f4b71Sopenharmony_ci| kvStoreType     | [KVStoreType](#kvstoretype)     | 否   | 设置要创建的数据库类型,默认为DEVICE_COLLABORATION,即多设备协同数据库。<br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core |
162e41f4b71Sopenharmony_ci| securityLevel   | [SecurityLevel](#securitylevel) | 是   | 设置数据库安全级别。<br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core |
163e41f4b71Sopenharmony_ci| schema          | [Schema](#schema)               | 否   | 设置定义存储在数据库中的值,默认为undefined,即不使用Schema。<br>**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci## Schema
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci表示数据库模式,可以在创建或打开数据库时创建Schema对象并将它们放入[Options](#options)中。
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci| 名称    | 类型                    | 可读 | 可写 | 说明                       |
172e41f4b71Sopenharmony_ci| ------- | ----------------------- | ---- | ---- | -------------------------- |
173e41f4b71Sopenharmony_ci| root    | [FieldNode](#fieldnode) | 是   | 是   | 存放了Value中所有字段的定义。 |
174e41f4b71Sopenharmony_ci| indexes | Array\<string>          | 是   | 是   | 索引字段定义,只有通过此字段指定的FieldNode才会创建索引,如果不需要创建任何索引,则此indexes字段可以不定义。格式为:`'$.field1'`, `'$.field2'`。|
175e41f4b71Sopenharmony_ci| mode    | number                  | 是   | 是   | Schema的模式,可以取值0或1,0表示COMPATIBLE模式,1表示STRICT模式。|
176e41f4b71Sopenharmony_ci| skip    | number                  | 是   | 是   | 支持在检查Value时,跳过skip指定的字节数,且取值范围为[0,4M-2]。|
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ciSTRICT:意味着严格模式,在此模式用户插入的Value格式与Schema定义必须严格匹配,字段不能多也不能少,如果不匹配则插入数据时数据库会返回错误。
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ciCOMPATIBLE:选择为COMPATIBLE模式则数据库检查Value格式时比较宽松,只需要Value具有Schema描述的特征即可,允许有多出的字段,例如:定义了id、name字段可以插入id、name、age等多个字段。
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci### constructor
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ciconstructor()
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci用于创建Schema实例的构造函数。
187e41f4b71Sopenharmony_ci
188e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**示例:**
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci```ts
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_cilet child1 = new distributedKVStore.FieldNode('id');
195e41f4b71Sopenharmony_cichild1.type = distributedKVStore.ValueType.INTEGER;
196e41f4b71Sopenharmony_cichild1.nullable = false;
197e41f4b71Sopenharmony_cichild1.default = '1';
198e41f4b71Sopenharmony_cilet child2 = new distributedKVStore.FieldNode('name');
199e41f4b71Sopenharmony_cichild2.type = distributedKVStore.ValueType.STRING;
200e41f4b71Sopenharmony_cichild2.nullable = false;
201e41f4b71Sopenharmony_cichild2.default = 'zhangsan';
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_cilet schema = new distributedKVStore.Schema();
204e41f4b71Sopenharmony_cischema.root.appendChild(child1);
205e41f4b71Sopenharmony_cischema.root.appendChild(child2);
206e41f4b71Sopenharmony_cischema.indexes = ['$.id', '$.name'];
207e41f4b71Sopenharmony_cischema.mode = 1;
208e41f4b71Sopenharmony_cischema.skip = 0;
209e41f4b71Sopenharmony_ci```
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci## FieldNode
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci表示 Schema 实例的节点,提供定义存储在数据库中的值的方法。
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci| 名称     | 类型    | 可读 | 可写 | 说明                           |
218e41f4b71Sopenharmony_ci| -------- | ------- | ---- | ---- | ------------------------------ |
219e41f4b71Sopenharmony_ci| nullable | boolean | 是   | 是   | 表示数据库字段是否可以为空。true表示此节点数据可以为空,false表示此节点数据不能为空。|
220e41f4b71Sopenharmony_ci| default  | string  | 是   | 是   | 表示Fieldnode的默认值。        |
221e41f4b71Sopenharmony_ci| type     | number  | 是   | 是   | 表示指定节点对应的数据类型,取值为[ValueType](#valuetype)对应的枚举值。暂不支持BYTE_ARRAY,使用此类型会导致[getKVStore](#getkvstore)失败。|
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci### constructor
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ciconstructor(name: string)
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci用于创建带有string字段FieldNode实例的构造函数。
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci**参数:**
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明            |
234e41f4b71Sopenharmony_ci| ------ | -------- | ---- | --------------- |
235e41f4b71Sopenharmony_ci| name   | string   | 是   | FieldNode的值, 不能为空。 |
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci**错误码:**
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                |
242e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------- |
243e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci### appendChild
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ciappendChild(child: FieldNode): boolean
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci在当前 FieldNode 中添加一个子节点。
250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ci**参数:**
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci| 参数名 | 类型                | 必填 | 说明             |
256e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ---------------- |
257e41f4b71Sopenharmony_ci| child  | [FieldNode](#fieldnode) | 是   | 要附加的域节点。 |
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**返回值:**
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci| 类型    | 说明                                                         |
262e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ |
263e41f4b71Sopenharmony_ci| boolean | 返回true表示子节点成功添加到FieldNode;返回false则表示操作失败。 |
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci**错误码:**
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                |
270e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------- |
271e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci**示例:**
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci```ts
276e41f4b71Sopenharmony_ci
277e41f4b71Sopenharmony_citry {
278e41f4b71Sopenharmony_ci  let node: distributedKVStore.FieldNode | null = new distributedKVStore.FieldNode("root");
279e41f4b71Sopenharmony_ci  let child1: distributedKVStore.FieldNode | null = new distributedKVStore.FieldNode("child1");
280e41f4b71Sopenharmony_ci  let child2: distributedKVStore.FieldNode | null = new distributedKVStore.FieldNode("child2");
281e41f4b71Sopenharmony_ci  let child3: distributedKVStore.FieldNode | null = new distributedKVStore.FieldNode("child3");
282e41f4b71Sopenharmony_ci  node.appendChild(child1);
283e41f4b71Sopenharmony_ci  node.appendChild(child2);
284e41f4b71Sopenharmony_ci  node.appendChild(child3);
285e41f4b71Sopenharmony_ci  console.info("appendNode " + JSON.stringify(node));
286e41f4b71Sopenharmony_ci  child1 = null;
287e41f4b71Sopenharmony_ci  child2 = null;
288e41f4b71Sopenharmony_ci  child3 = null;
289e41f4b71Sopenharmony_ci  node = null;
290e41f4b71Sopenharmony_ci} catch (e) {
291e41f4b71Sopenharmony_ci  console.error("AppendChild " + e);
292e41f4b71Sopenharmony_ci}
293e41f4b71Sopenharmony_ci```
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ci## distributedKVStore.createKVManager
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_cicreateKVManager(config: KVManagerConfig): KVManager
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_ci创建一个KVManager对象实例,用于管理数据库对象。
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci**参数:**
304e41f4b71Sopenharmony_ci
305e41f4b71Sopenharmony_ci| 参数名 | 类型                      | 必填 | 说明                                                      |
306e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | --------------------------------------------------------- |
307e41f4b71Sopenharmony_ci| config | [KVManagerConfig](#kvmanagerconfig) | 是   | 提供KVManager实例的配置信息,包括调用方的包名(不能为空)和用户信息。 |
308e41f4b71Sopenharmony_ci
309e41f4b71Sopenharmony_ci**返回值:**
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ci| 类型                                   | 说明                                       |
312e41f4b71Sopenharmony_ci| -------------------------------------- | ------------------------------------------ |
313e41f4b71Sopenharmony_ci| [KVManager](#kvmanager) | 返回创建的KVManager对象实例。 |
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_ci**错误码:**
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                |
320e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------- |
321e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci**示例:**
324e41f4b71Sopenharmony_ci
325e41f4b71Sopenharmony_ciStage模型下的示例:
326e41f4b71Sopenharmony_ci
327e41f4b71Sopenharmony_ci```ts
328e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
329e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_cilet kvManager: distributedKVStore.KVManager;
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility {
334e41f4b71Sopenharmony_ci  onCreate() {
335e41f4b71Sopenharmony_ci    console.info("MyAbilityStage onCreate")
336e41f4b71Sopenharmony_ci    let context = this.context
337e41f4b71Sopenharmony_ci    const kvManagerConfig: distributedKVStore.KVManagerConfig = {
338e41f4b71Sopenharmony_ci      context: context,
339e41f4b71Sopenharmony_ci      bundleName: 'com.example.datamanagertest',
340e41f4b71Sopenharmony_ci    }
341e41f4b71Sopenharmony_ci    try {
342e41f4b71Sopenharmony_ci      kvManager = distributedKVStore.createKVManager(kvManagerConfig);
343e41f4b71Sopenharmony_ci      console.info("Succeeded in creating KVManager");
344e41f4b71Sopenharmony_ci    } catch (e) {
345e41f4b71Sopenharmony_ci      let error = e as BusinessError;
346e41f4b71Sopenharmony_ci      console.error(`Failed to create KVManager.code is ${error.code},message is ${error.message}`);
347e41f4b71Sopenharmony_ci    }
348e41f4b71Sopenharmony_ci    if (kvManager !== undefined) {
349e41f4b71Sopenharmony_ci      kvManager = kvManager as distributedKVStore.KVManager;
350e41f4b71Sopenharmony_ci      // 进行后续创建数据库等相关操作
351e41f4b71Sopenharmony_ci      // ...
352e41f4b71Sopenharmony_ci    }
353e41f4b71Sopenharmony_ci  }
354e41f4b71Sopenharmony_ci}
355e41f4b71Sopenharmony_ci```
356e41f4b71Sopenharmony_ci
357e41f4b71Sopenharmony_ciFA模型下的示例:
358e41f4b71Sopenharmony_ci
359e41f4b71Sopenharmony_ci<!--code_no_check_fa-->
360e41f4b71Sopenharmony_ci```ts
361e41f4b71Sopenharmony_ciimport { featureAbility } from '@kit.AbilityKit';
362e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_cilet kvManager: distributedKVStore.KVManager;
365e41f4b71Sopenharmony_cilet context = featureAbility.getContext()
366e41f4b71Sopenharmony_ciconst kvManagerConfig: distributedKVStore.KVManagerConfig = {
367e41f4b71Sopenharmony_ci  context: context,
368e41f4b71Sopenharmony_ci  bundleName: 'com.example.datamanagertest',
369e41f4b71Sopenharmony_ci}
370e41f4b71Sopenharmony_citry {
371e41f4b71Sopenharmony_ci  kvManager = distributedKVStore.createKVManager(kvManagerConfig);
372e41f4b71Sopenharmony_ci  console.info("Succeeded in creating KVManager");
373e41f4b71Sopenharmony_ci} catch (e) {
374e41f4b71Sopenharmony_ci  let error = e as BusinessError;
375e41f4b71Sopenharmony_ci  console.error(`Failed to create KVManager.code is ${error.code},message is ${error.message}`);
376e41f4b71Sopenharmony_ci}
377e41f4b71Sopenharmony_ciif (kvManager !== undefined) {
378e41f4b71Sopenharmony_ci  kvManager = kvManager as distributedKVStore.KVManager;
379e41f4b71Sopenharmony_ci  // 进行后续创建数据库等相关操作
380e41f4b71Sopenharmony_ci  // ...
381e41f4b71Sopenharmony_ci}
382e41f4b71Sopenharmony_ci```
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci## KVManager
385e41f4b71Sopenharmony_ci
386e41f4b71Sopenharmony_ci分布式键值数据库管理实例,用于获取分布式键值数据库的相关信息。在调用KVManager的方法前,需要先通过[createKVManager](#distributedkvstorecreatekvmanager)构建一个KVManager实例。
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci### getKVStore
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_cigetKVStore&lt;T&gt;(storeId: string, options: Options, callback: AsyncCallback&lt;T&gt;): void
391e41f4b71Sopenharmony_ci
392e41f4b71Sopenharmony_ci通过指定options和storeId,创建并获取分布式键值数据库,使用callback异步回调。
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_ci> 注意:
395e41f4b71Sopenharmony_ci>
396e41f4b71Sopenharmony_ci> 在获取已有的分布式键值数据库时,若该数据库文件已损坏,将触发自动重建逻辑,并返回新创建的分布式键值数据库实例。开发者可观测异常查询行为识别该现象,并进行备份数据恢复,异常查询行为例如数据被清空、已有数据无法查询等。
397e41f4b71Sopenharmony_ci
398e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
399e41f4b71Sopenharmony_ci
400e41f4b71Sopenharmony_ci**参数:**
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_ci| 参数名   | 类型               | 必填 | 说明                                                         |
403e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
404e41f4b71Sopenharmony_ci| storeId  | string                 | 是   | 数据库唯一标识符,长度不大于[MAX_STORE_ID_LENGTH](#constants),且只能包含字母数字或下划线_。|
405e41f4b71Sopenharmony_ci| options  | [Options](#options)    | 是   | 创建分布式键值实例的配置信息。                               |
406e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;T&gt; | 是   | 回调函数。返回创建的分布式键值数据库实例(根据kvStoreType的不同,可以创建SingleKVStore实例和DeviceKVStore实例)。 |
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_ci**错误码:**
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                |
413e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------- |
414e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
415e41f4b71Sopenharmony_ci| 15100002     | Open existed database with changed options. |
416e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                         |
417e41f4b71Sopenharmony_ci
418e41f4b71Sopenharmony_ci**示例:**
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_ci```ts
421e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
422e41f4b71Sopenharmony_ci
423e41f4b71Sopenharmony_cilet kvStore: distributedKVStore.SingleKVStore | null = null;
424e41f4b71Sopenharmony_citry {
425e41f4b71Sopenharmony_ci  const options: distributedKVStore.Options = {
426e41f4b71Sopenharmony_ci    createIfMissing: true,
427e41f4b71Sopenharmony_ci    encrypt: false,
428e41f4b71Sopenharmony_ci    backup: false,
429e41f4b71Sopenharmony_ci    autoSync: false,
430e41f4b71Sopenharmony_ci    kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
431e41f4b71Sopenharmony_ci    securityLevel: distributedKVStore.SecurityLevel.S3,
432e41f4b71Sopenharmony_ci  };
433e41f4b71Sopenharmony_ci  kvManager.getKVStore('storeId', options, (err: BusinessError, store: distributedKVStore.SingleKVStore) => {
434e41f4b71Sopenharmony_ci    if (err) {
435e41f4b71Sopenharmony_ci      console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
436e41f4b71Sopenharmony_ci      return;
437e41f4b71Sopenharmony_ci    }
438e41f4b71Sopenharmony_ci    console.info("Succeeded in getting KVStore");
439e41f4b71Sopenharmony_ci    kvStore = store;
440e41f4b71Sopenharmony_ci  });
441e41f4b71Sopenharmony_ci} catch (e) {
442e41f4b71Sopenharmony_ci  let error = e as BusinessError;
443e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
444e41f4b71Sopenharmony_ci}
445e41f4b71Sopenharmony_ciif (kvStore !== null) {
446e41f4b71Sopenharmony_ci     kvStore = kvStore as distributedKVStore.SingleKVStore;
447e41f4b71Sopenharmony_ci       // 进行后续相关数据操作,包括数据的增、删、改、查、订阅数据变化等操作
448e41f4b71Sopenharmony_ci       // ...
449e41f4b71Sopenharmony_ci}
450e41f4b71Sopenharmony_ci```
451e41f4b71Sopenharmony_ci
452e41f4b71Sopenharmony_ci### getKVStore
453e41f4b71Sopenharmony_ci
454e41f4b71Sopenharmony_cigetKVStore&lt;T&gt;(storeId: string, options: Options): Promise&lt;T&gt;
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci通过指定options和storeId,创建并获取分布式键值数据库,使用Promise异步回调。
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ci> 注意:
459e41f4b71Sopenharmony_ci>
460e41f4b71Sopenharmony_ci> 在获取已有的分布式键值数据库时,若该数据库文件已损坏,将触发自动重建逻辑,并返回新创建的分布式键值数据库实例。开发者可观测异常查询行为识别该现象,并进行备份数据恢复,异常查询行为例如数据被清空、已有数据无法查询等。
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_ci**参数:**
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_ci| 参数名  | 类型            | 必填 | 说明                                                         |
467e41f4b71Sopenharmony_ci| ------- | ------------------- | ---- | ------------------------------------------------------------ |
468e41f4b71Sopenharmony_ci| storeId | string              | 是   | 数据库唯一标识符,长度不大于[MAX_STORE_ID_LENGTH](#constants),且只能包含字母数字或下划线_。|
469e41f4b71Sopenharmony_ci| options | [Options](#options) | 是   | 创建分布式键值实例的配置信息。                               |
470e41f4b71Sopenharmony_ci
471e41f4b71Sopenharmony_ci**返回值:**
472e41f4b71Sopenharmony_ci
473e41f4b71Sopenharmony_ci| 类型             | 说明                                                         |
474e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ |
475e41f4b71Sopenharmony_ci| Promise&lt;T&gt; | Promise对象。返回创建的分布式键值数据库实例(根据kvStoreType的不同,可以创建SingleKVStore实例和DeviceKVStore实例。 |
476e41f4b71Sopenharmony_ci
477e41f4b71Sopenharmony_ci**错误码:**
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                |
482e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------- |
483e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.|
484e41f4b71Sopenharmony_ci| 15100002     | Open existed database with changed options. |
485e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                         |
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci**示例:**
488e41f4b71Sopenharmony_ci
489e41f4b71Sopenharmony_ci```ts
490e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
491e41f4b71Sopenharmony_ci
492e41f4b71Sopenharmony_cilet kvStore: distributedKVStore.SingleKVStore | null = null;
493e41f4b71Sopenharmony_citry {
494e41f4b71Sopenharmony_ci  const options: distributedKVStore.Options = {
495e41f4b71Sopenharmony_ci    createIfMissing: true,
496e41f4b71Sopenharmony_ci    encrypt: false,
497e41f4b71Sopenharmony_ci    backup: false,
498e41f4b71Sopenharmony_ci    autoSync: false,
499e41f4b71Sopenharmony_ci    kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
500e41f4b71Sopenharmony_ci    securityLevel: distributedKVStore.SecurityLevel.S3,
501e41f4b71Sopenharmony_ci  };
502e41f4b71Sopenharmony_ci  kvManager.getKVStore<distributedKVStore.SingleKVStore>('storeId', options).then((store: distributedKVStore.SingleKVStore) => {
503e41f4b71Sopenharmony_ci    console.info("Succeeded in getting KVStore");
504e41f4b71Sopenharmony_ci    kvStore = store;
505e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
506e41f4b71Sopenharmony_ci    console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
507e41f4b71Sopenharmony_ci  });
508e41f4b71Sopenharmony_ci} catch (e) {
509e41f4b71Sopenharmony_ci  let error = e as BusinessError;
510e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
511e41f4b71Sopenharmony_ci}
512e41f4b71Sopenharmony_ci```
513e41f4b71Sopenharmony_ci
514e41f4b71Sopenharmony_ci### closeKVStore
515e41f4b71Sopenharmony_ci
516e41f4b71Sopenharmony_cicloseKVStore(appId: string, storeId: string, callback: AsyncCallback&lt;void&gt;): void
517e41f4b71Sopenharmony_ci
518e41f4b71Sopenharmony_ci通过storeId的值关闭指定的分布式键值数据库,使用callback异步回调。
519e41f4b71Sopenharmony_ci
520e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
521e41f4b71Sopenharmony_ci
522e41f4b71Sopenharmony_ci**参数:**
523e41f4b71Sopenharmony_ci
524e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                                                         |
525e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
526e41f4b71Sopenharmony_ci| appId    | string                    | 是   | 应用的BundleName,不可为空且长度不大于256。                                      |
527e41f4b71Sopenharmony_ci| storeId  | string                    | 是   | 要关闭的数据库唯一标识符,长度不大于[MAX_STORE_ID_LENGTH](#constants),且只能包含字母数字或下划线_。 |
528e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当要关闭的数据库成功关闭,err为undefined,否则为错误对象。     |
529e41f4b71Sopenharmony_ci
530e41f4b71Sopenharmony_ci**错误码:**
531e41f4b71Sopenharmony_ci
532e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
533e41f4b71Sopenharmony_ci
534e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                |
535e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------- |
536e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.|
537e41f4b71Sopenharmony_ci
538e41f4b71Sopenharmony_ci**示例:**
539e41f4b71Sopenharmony_ci
540e41f4b71Sopenharmony_ci```ts
541e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
542e41f4b71Sopenharmony_ci
543e41f4b71Sopenharmony_cilet kvStore: distributedKVStore.SingleKVStore | null = null;
544e41f4b71Sopenharmony_ciconst options: distributedKVStore.Options = {
545e41f4b71Sopenharmony_ci  createIfMissing: true,
546e41f4b71Sopenharmony_ci  encrypt: false,
547e41f4b71Sopenharmony_ci  backup: false,
548e41f4b71Sopenharmony_ci  autoSync: false,
549e41f4b71Sopenharmony_ci  kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
550e41f4b71Sopenharmony_ci  schema: undefined,
551e41f4b71Sopenharmony_ci  securityLevel: distributedKVStore.SecurityLevel.S3,
552e41f4b71Sopenharmony_ci}
553e41f4b71Sopenharmony_citry {
554e41f4b71Sopenharmony_ci  kvManager.getKVStore('storeId', options, async (err: BusinessError, store: distributedKVStore.SingleKVStore | null) => {
555e41f4b71Sopenharmony_ci    if (err != undefined) {
556e41f4b71Sopenharmony_ci      console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
557e41f4b71Sopenharmony_ci      return;
558e41f4b71Sopenharmony_ci    }
559e41f4b71Sopenharmony_ci    console.info('Succeeded in getting KVStore');
560e41f4b71Sopenharmony_ci    kvStore = store;
561e41f4b71Sopenharmony_ci    kvStore = null;
562e41f4b71Sopenharmony_ci    store = null;
563e41f4b71Sopenharmony_ci    kvManager.closeKVStore('appId', 'storeId', (err: BusinessError)=> {
564e41f4b71Sopenharmony_ci      if (err != undefined) {
565e41f4b71Sopenharmony_ci        console.error(`Failed to close KVStore.code is ${err.code},message is ${err.message}`);
566e41f4b71Sopenharmony_ci        return;
567e41f4b71Sopenharmony_ci      }
568e41f4b71Sopenharmony_ci      console.info('Succeeded in closing KVStore');
569e41f4b71Sopenharmony_ci    });
570e41f4b71Sopenharmony_ci  });
571e41f4b71Sopenharmony_ci} catch (e) {
572e41f4b71Sopenharmony_ci  let error = e as BusinessError;
573e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
574e41f4b71Sopenharmony_ci}
575e41f4b71Sopenharmony_ci```
576e41f4b71Sopenharmony_ci
577e41f4b71Sopenharmony_ci### closeKVStore
578e41f4b71Sopenharmony_ci
579e41f4b71Sopenharmony_cicloseKVStore(appId: string, storeId: string): Promise&lt;void&gt;
580e41f4b71Sopenharmony_ci
581e41f4b71Sopenharmony_ci通过storeId的值关闭指定的分布式键值数据库,使用Promise异步回调。
582e41f4b71Sopenharmony_ci
583e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
584e41f4b71Sopenharmony_ci
585e41f4b71Sopenharmony_ci**参数:**
586e41f4b71Sopenharmony_ci
587e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填 | 说明                                                         |
588e41f4b71Sopenharmony_ci| ------- | -------- | ---- | ------------------------------------------------------------ |
589e41f4b71Sopenharmony_ci| appId   | string   | 是   | 应用的BundleName,不可为空且长度不大于256。                           |
590e41f4b71Sopenharmony_ci| storeId | string   | 是   | 要关闭的数据库唯一标识符,长度不大于[MAX_STORE_ID_LENGTH](#constants),且只能包含字母数字或下划线_。 |
591e41f4b71Sopenharmony_ci
592e41f4b71Sopenharmony_ci**返回值:**
593e41f4b71Sopenharmony_ci
594e41f4b71Sopenharmony_ci| 类型           | 说明                      |
595e41f4b71Sopenharmony_ci| -------------- | ------------------------- |
596e41f4b71Sopenharmony_ci| Promise\<void> | 无返回结果的Promise对象。 |
597e41f4b71Sopenharmony_ci
598e41f4b71Sopenharmony_ci**错误码:**
599e41f4b71Sopenharmony_ci
600e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
601e41f4b71Sopenharmony_ci
602e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                |
603e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------- |
604e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.|
605e41f4b71Sopenharmony_ci
606e41f4b71Sopenharmony_ci**示例:**
607e41f4b71Sopenharmony_ci
608e41f4b71Sopenharmony_ci```ts
609e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
610e41f4b71Sopenharmony_ci
611e41f4b71Sopenharmony_cilet kvStore: distributedKVStore.SingleKVStore | null = null;
612e41f4b71Sopenharmony_ci
613e41f4b71Sopenharmony_ciconst options: distributedKVStore.Options = {
614e41f4b71Sopenharmony_ci  createIfMissing: true,
615e41f4b71Sopenharmony_ci  encrypt: false,
616e41f4b71Sopenharmony_ci  backup: false,
617e41f4b71Sopenharmony_ci  autoSync: false,
618e41f4b71Sopenharmony_ci  kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
619e41f4b71Sopenharmony_ci  schema: undefined,
620e41f4b71Sopenharmony_ci  securityLevel: distributedKVStore.SecurityLevel.S3,
621e41f4b71Sopenharmony_ci}
622e41f4b71Sopenharmony_citry {
623e41f4b71Sopenharmony_ci  kvManager.getKVStore<distributedKVStore.SingleKVStore>('storeId', options).then(async (store: distributedKVStore.SingleKVStore | null) => {
624e41f4b71Sopenharmony_ci    console.info('Succeeded in getting KVStore');
625e41f4b71Sopenharmony_ci    kvStore = store;
626e41f4b71Sopenharmony_ci    kvStore = null;
627e41f4b71Sopenharmony_ci    store = null;
628e41f4b71Sopenharmony_ci    kvManager.closeKVStore('appId', 'storeId').then(() => {
629e41f4b71Sopenharmony_ci      console.info('Succeeded in closing KVStore');
630e41f4b71Sopenharmony_ci    }).catch((err: BusinessError) => {
631e41f4b71Sopenharmony_ci      console.error(`Failed to close KVStore.code is ${err.code},message is ${err.message}`);
632e41f4b71Sopenharmony_ci    });
633e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
634e41f4b71Sopenharmony_ci    console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
635e41f4b71Sopenharmony_ci  });
636e41f4b71Sopenharmony_ci} catch (e) {
637e41f4b71Sopenharmony_ci  let error = e as BusinessError;
638e41f4b71Sopenharmony_ci  console.error(`Failed to close KVStore.code is ${error.code},message is ${error.message}`);
639e41f4b71Sopenharmony_ci}
640e41f4b71Sopenharmony_ci```
641e41f4b71Sopenharmony_ci
642e41f4b71Sopenharmony_ci### deleteKVStore
643e41f4b71Sopenharmony_ci
644e41f4b71Sopenharmony_cideleteKVStore(appId: string, storeId: string, callback: AsyncCallback&lt;void&gt;): void
645e41f4b71Sopenharmony_ci
646e41f4b71Sopenharmony_ci通过storeId的值删除指定的分布式键值数据库,使用callback异步回调。
647e41f4b71Sopenharmony_ci
648e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
649e41f4b71Sopenharmony_ci
650e41f4b71Sopenharmony_ci**参数:**
651e41f4b71Sopenharmony_ci
652e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                                                         |
653e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
654e41f4b71Sopenharmony_ci| appId    | string                    | 是   | 应用的BundleName,不可为空且长度不大于256。                                      |
655e41f4b71Sopenharmony_ci| storeId  | string                    | 是   | 要删除的数据库唯一标识符,长度不大于[MAX_STORE_ID_LENGTH](#constants),且只能包含字母数字或下划线_。 |
656e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当要删除的数据库成功删除,err为undefined,否则为错误对象。     |
657e41f4b71Sopenharmony_ci
658e41f4b71Sopenharmony_ci**错误码:**
659e41f4b71Sopenharmony_ci
660e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
661e41f4b71Sopenharmony_ci
662e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
663e41f4b71Sopenharmony_ci| ------------ | ------------ |
664e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.|
665e41f4b71Sopenharmony_ci| 15100004     | Not found.   |
666e41f4b71Sopenharmony_ci
667e41f4b71Sopenharmony_ci**示例:**
668e41f4b71Sopenharmony_ci
669e41f4b71Sopenharmony_ci```ts
670e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
671e41f4b71Sopenharmony_ci
672e41f4b71Sopenharmony_cilet kvStore: distributedKVStore.SingleKVStore | null = null;
673e41f4b71Sopenharmony_ci
674e41f4b71Sopenharmony_ciconst options: distributedKVStore.Options = {
675e41f4b71Sopenharmony_ci  createIfMissing: true,
676e41f4b71Sopenharmony_ci  encrypt: false,
677e41f4b71Sopenharmony_ci  backup: false,
678e41f4b71Sopenharmony_ci  autoSync: false,
679e41f4b71Sopenharmony_ci  kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
680e41f4b71Sopenharmony_ci  schema: undefined,
681e41f4b71Sopenharmony_ci  securityLevel: distributedKVStore.SecurityLevel.S3,
682e41f4b71Sopenharmony_ci}
683e41f4b71Sopenharmony_citry {
684e41f4b71Sopenharmony_ci  kvManager.getKVStore('store', options, async (err: BusinessError, store: distributedKVStore.SingleKVStore | null) => {
685e41f4b71Sopenharmony_ci    if (err != undefined) {
686e41f4b71Sopenharmony_ci      console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
687e41f4b71Sopenharmony_ci      return;
688e41f4b71Sopenharmony_ci    }
689e41f4b71Sopenharmony_ci    console.info('Succeeded in getting KVStore');
690e41f4b71Sopenharmony_ci    kvStore = store;
691e41f4b71Sopenharmony_ci    kvStore = null;
692e41f4b71Sopenharmony_ci    store = null;
693e41f4b71Sopenharmony_ci    kvManager.deleteKVStore('appId', 'storeId', (err: BusinessError) => {
694e41f4b71Sopenharmony_ci      if (err != undefined) {
695e41f4b71Sopenharmony_ci        console.error(`Failed to delete KVStore.code is ${err.code},message is ${err.message}`);
696e41f4b71Sopenharmony_ci        return;
697e41f4b71Sopenharmony_ci      }
698e41f4b71Sopenharmony_ci      console.info(`Succeeded in deleting KVStore`);
699e41f4b71Sopenharmony_ci    });
700e41f4b71Sopenharmony_ci  });
701e41f4b71Sopenharmony_ci} catch (e) {
702e41f4b71Sopenharmony_ci  let error = e as BusinessError;
703e41f4b71Sopenharmony_ci  console.error(`Failed to delete KVStore.code is ${error.code},message is ${error.message}`);
704e41f4b71Sopenharmony_ci}
705e41f4b71Sopenharmony_ci```
706e41f4b71Sopenharmony_ci
707e41f4b71Sopenharmony_ci### deleteKVStore
708e41f4b71Sopenharmony_ci
709e41f4b71Sopenharmony_cideleteKVStore(appId: string, storeId: string): Promise&lt;void&gt;
710e41f4b71Sopenharmony_ci
711e41f4b71Sopenharmony_ci通过storeId的值删除指定的分布式键值数据库,使用Promise异步回调。
712e41f4b71Sopenharmony_ci
713e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
714e41f4b71Sopenharmony_ci
715e41f4b71Sopenharmony_ci**参数:**
716e41f4b71Sopenharmony_ci
717e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填 | 说明                                                         |
718e41f4b71Sopenharmony_ci| ------- | -------- | ---- | ------------------------------------------------------------ |
719e41f4b71Sopenharmony_ci| appId   | string   | 是   | 应用的BundleName,不可为空且长度不大于256。                           |
720e41f4b71Sopenharmony_ci| storeId | string   | 是   | 要删除的数据库唯一标识符,长度不大于[MAX_STORE_ID_LENGTH](#constants),且只能包含字母数字或下划线_。 |
721e41f4b71Sopenharmony_ci
722e41f4b71Sopenharmony_ci**返回值:**
723e41f4b71Sopenharmony_ci
724e41f4b71Sopenharmony_ci| 类型                | 说明                      |
725e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
726e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
727e41f4b71Sopenharmony_ci
728e41f4b71Sopenharmony_ci**错误码:**
729e41f4b71Sopenharmony_ci
730e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
731e41f4b71Sopenharmony_ci
732e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
733e41f4b71Sopenharmony_ci| ------------ | ------------ |
734e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.|
735e41f4b71Sopenharmony_ci| 15100004     | Not found.   |
736e41f4b71Sopenharmony_ci
737e41f4b71Sopenharmony_ci**示例:**
738e41f4b71Sopenharmony_ci
739e41f4b71Sopenharmony_ci```ts
740e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
741e41f4b71Sopenharmony_ci
742e41f4b71Sopenharmony_cilet kvStore: distributedKVStore.SingleKVStore | null = null;
743e41f4b71Sopenharmony_ci
744e41f4b71Sopenharmony_ciconst options: distributedKVStore.Options = {
745e41f4b71Sopenharmony_ci  createIfMissing: true,
746e41f4b71Sopenharmony_ci  encrypt: false,
747e41f4b71Sopenharmony_ci  backup: false,
748e41f4b71Sopenharmony_ci  autoSync: false,
749e41f4b71Sopenharmony_ci  kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
750e41f4b71Sopenharmony_ci  schema: undefined,
751e41f4b71Sopenharmony_ci  securityLevel: distributedKVStore.SecurityLevel.S3,
752e41f4b71Sopenharmony_ci}
753e41f4b71Sopenharmony_citry {
754e41f4b71Sopenharmony_ci  kvManager.getKVStore<distributedKVStore.SingleKVStore>('storeId', options).then(async (store: distributedKVStore.SingleKVStore | null) => {
755e41f4b71Sopenharmony_ci    console.info('Succeeded in getting KVStore');
756e41f4b71Sopenharmony_ci    kvStore = store;
757e41f4b71Sopenharmony_ci    kvStore = null;
758e41f4b71Sopenharmony_ci    store = null;
759e41f4b71Sopenharmony_ci    kvManager.deleteKVStore('appId', 'storeId').then(() => {
760e41f4b71Sopenharmony_ci      console.info('Succeeded in deleting KVStore');
761e41f4b71Sopenharmony_ci    }).catch((err: BusinessError) => {
762e41f4b71Sopenharmony_ci      console.error(`Failed to delete KVStore.code is ${err.code},message is ${err.message}`);
763e41f4b71Sopenharmony_ci    });
764e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
765e41f4b71Sopenharmony_ci    console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
766e41f4b71Sopenharmony_ci  });
767e41f4b71Sopenharmony_ci} catch (e) {
768e41f4b71Sopenharmony_ci  let error = e as BusinessError;
769e41f4b71Sopenharmony_ci  console.error(`Failed to delete KVStore.code is ${error.code},message is ${error.message}`);
770e41f4b71Sopenharmony_ci}
771e41f4b71Sopenharmony_ci```
772e41f4b71Sopenharmony_ci
773e41f4b71Sopenharmony_ci### getAllKVStoreId
774e41f4b71Sopenharmony_ci
775e41f4b71Sopenharmony_cigetAllKVStoreId(appId: string, callback: AsyncCallback&lt;string[]&gt;): void
776e41f4b71Sopenharmony_ci
777e41f4b71Sopenharmony_ci获取所有通过[getKVStore](#getkvstore)方法创建的且没有调用[deleteKVStore](#deletekvstore)方法删除的分布式键值数据库的storeId,使用callback异步回调。
778e41f4b71Sopenharmony_ci
779e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
780e41f4b71Sopenharmony_ci
781e41f4b71Sopenharmony_ci**参数:**
782e41f4b71Sopenharmony_ci
783e41f4b71Sopenharmony_ci| 参数名   | 类型                      | 必填 | 说明                                                |
784e41f4b71Sopenharmony_ci| -------- | ----------------------------- | ---- | --------------------------------------------------- |
785e41f4b71Sopenharmony_ci| appId    | string                        | 是   | 应用的BundleName,不可为空且长度不大于256。                              |
786e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;string[]&gt; | 是   | 回调函数。返回所有创建的分布式键值数据库的storeId。 |
787e41f4b71Sopenharmony_ci
788e41f4b71Sopenharmony_ci**错误码:**
789e41f4b71Sopenharmony_ci
790e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
791e41f4b71Sopenharmony_ci
792e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
793e41f4b71Sopenharmony_ci| ------------ | ------------ |
794e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.|
795e41f4b71Sopenharmony_ci
796e41f4b71Sopenharmony_ci**示例:**
797e41f4b71Sopenharmony_ci
798e41f4b71Sopenharmony_ci```ts
799e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
800e41f4b71Sopenharmony_ci
801e41f4b71Sopenharmony_citry {
802e41f4b71Sopenharmony_ci  kvManager.getAllKVStoreId('appId', (err: BusinessError, data: string[]) => {
803e41f4b71Sopenharmony_ci    if (err != undefined) {
804e41f4b71Sopenharmony_ci      console.error(`Failed to get AllKVStoreId.code is ${err.code},message is ${err.message}`);
805e41f4b71Sopenharmony_ci      return;
806e41f4b71Sopenharmony_ci    }
807e41f4b71Sopenharmony_ci    console.info('Succeeded in getting AllKVStoreId');
808e41f4b71Sopenharmony_ci    console.info(`GetAllKVStoreId size = ${data.length}`);
809e41f4b71Sopenharmony_ci  });
810e41f4b71Sopenharmony_ci} catch (e) {
811e41f4b71Sopenharmony_ci  let error = e as BusinessError;
812e41f4b71Sopenharmony_ci  console.error(`Failed to get AllKVStoreId.code is ${error.code},message is ${error.message}`);
813e41f4b71Sopenharmony_ci}
814e41f4b71Sopenharmony_ci```
815e41f4b71Sopenharmony_ci
816e41f4b71Sopenharmony_ci### getAllKVStoreId
817e41f4b71Sopenharmony_ci
818e41f4b71Sopenharmony_cigetAllKVStoreId(appId: string): Promise&lt;string[]&gt;
819e41f4b71Sopenharmony_ci
820e41f4b71Sopenharmony_ci获取所有通过[getKVStore](#getkvstore)方法创建的且没有调用[deleteKVStore](#deletekvstore)方法删除的分布式键值数据库的storeId,使用Promise异步回调。
821e41f4b71Sopenharmony_ci
822e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
823e41f4b71Sopenharmony_ci
824e41f4b71Sopenharmony_ci**参数:**
825e41f4b71Sopenharmony_ci
826e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                   |
827e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ---------------------- |
828e41f4b71Sopenharmony_ci| appId  | string   | 是   | 应用的BundleName,不可为空且长度不大于256。 |
829e41f4b71Sopenharmony_ci
830e41f4b71Sopenharmony_ci**返回值:**
831e41f4b71Sopenharmony_ci
832e41f4b71Sopenharmony_ci| 类型                    | 说明                                                   |
833e41f4b71Sopenharmony_ci| ----------------------- | ------------------------------------------------------ |
834e41f4b71Sopenharmony_ci| Promise&lt;string[]&gt; | Promise对象。返回所有创建的分布式键值数据库的storeId。 |
835e41f4b71Sopenharmony_ci
836e41f4b71Sopenharmony_ci**错误码:**
837e41f4b71Sopenharmony_ci
838e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
839e41f4b71Sopenharmony_ci
840e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
841e41f4b71Sopenharmony_ci| ------------ | ------------ |
842e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.|
843e41f4b71Sopenharmony_ci
844e41f4b71Sopenharmony_ci**示例:**
845e41f4b71Sopenharmony_ci
846e41f4b71Sopenharmony_ci```ts
847e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
848e41f4b71Sopenharmony_ci
849e41f4b71Sopenharmony_citry {
850e41f4b71Sopenharmony_ci  console.info('GetAllKVStoreId');
851e41f4b71Sopenharmony_ci  kvManager.getAllKVStoreId('appId').then((data: string[]) => {
852e41f4b71Sopenharmony_ci    console.info('Succeeded in getting AllKVStoreId');
853e41f4b71Sopenharmony_ci    console.info(`GetAllKVStoreId size = ${data.length}`);
854e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
855e41f4b71Sopenharmony_ci    console.error(`Failed to get AllKVStoreId.code is ${err.code},message is ${err.message}`);
856e41f4b71Sopenharmony_ci  });
857e41f4b71Sopenharmony_ci} catch (e) {
858e41f4b71Sopenharmony_ci  let error = e as BusinessError;
859e41f4b71Sopenharmony_ci  console.error(`Failed to get AllKVStoreId.code is ${error.code},message is ${error.message}`);
860e41f4b71Sopenharmony_ci}
861e41f4b71Sopenharmony_ci```
862e41f4b71Sopenharmony_ci
863e41f4b71Sopenharmony_ci### on('distributedDataServiceDie')
864e41f4b71Sopenharmony_ci
865e41f4b71Sopenharmony_cion(event: 'distributedDataServiceDie', deathCallback: Callback&lt;void&gt;): void
866e41f4b71Sopenharmony_ci
867e41f4b71Sopenharmony_ci订阅服务状态变更通知。如果服务终止,需要重新注册数据变更通知和同步完成事件回调通知,并且同步操作会返回失败。
868e41f4b71Sopenharmony_ci
869e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
870e41f4b71Sopenharmony_ci
871e41f4b71Sopenharmony_ci**参数:**
872e41f4b71Sopenharmony_ci
873e41f4b71Sopenharmony_ci| 参数名        | 类型             | 必填 | 说明                                                         |
874e41f4b71Sopenharmony_ci| ------------- | -------------------- | ---- | ------------------------------------------------------------ |
875e41f4b71Sopenharmony_ci| event         | string               | 是   | 订阅的事件名,固定为'distributedDataServiceDie',即服务状态变更事件。 |
876e41f4b71Sopenharmony_ci| deathCallback | Callback&lt;void&gt; | 是   | 回调函数。订阅成功,err为undefined,否则为错误对象。     |
877e41f4b71Sopenharmony_ci
878e41f4b71Sopenharmony_ci**错误码:**
879e41f4b71Sopenharmony_ci
880e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
881e41f4b71Sopenharmony_ci
882e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
883e41f4b71Sopenharmony_ci| ------------ | ------------ |
884e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.|
885e41f4b71Sopenharmony_ci
886e41f4b71Sopenharmony_ci**示例:**
887e41f4b71Sopenharmony_ci
888e41f4b71Sopenharmony_ci```ts
889e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
890e41f4b71Sopenharmony_ci
891e41f4b71Sopenharmony_citry {
892e41f4b71Sopenharmony_ci  console.info('KVManagerOn');
893e41f4b71Sopenharmony_ci  const deathCallback = () => {
894e41f4b71Sopenharmony_ci    console.info('death callback call');
895e41f4b71Sopenharmony_ci  }
896e41f4b71Sopenharmony_ci  kvManager.on('distributedDataServiceDie', deathCallback);
897e41f4b71Sopenharmony_ci} catch (e) {
898e41f4b71Sopenharmony_ci  let error = e as BusinessError;
899e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
900e41f4b71Sopenharmony_ci}
901e41f4b71Sopenharmony_ci```
902e41f4b71Sopenharmony_ci
903e41f4b71Sopenharmony_ci### off('distributedDataServiceDie')
904e41f4b71Sopenharmony_ci
905e41f4b71Sopenharmony_cioff(event: 'distributedDataServiceDie', deathCallback?: Callback&lt;void&gt;): void
906e41f4b71Sopenharmony_ci
907e41f4b71Sopenharmony_ci取消订阅服务状态变更通知。参数中的deathCallback必须是已经订阅过的deathCallback,否则会取消订阅失败。
908e41f4b71Sopenharmony_ci
909e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
910e41f4b71Sopenharmony_ci
911e41f4b71Sopenharmony_ci**参数:**
912e41f4b71Sopenharmony_ci
913e41f4b71Sopenharmony_ci| 参数名        | 类型             | 必填 | 说明                                                         |
914e41f4b71Sopenharmony_ci| ------------- | -------------------- | ---- | ------------------------------------------------------------ |
915e41f4b71Sopenharmony_ci| event         | string               | 是   | 取消订阅的事件名,固定为'distributedDataServiceDie',即服务状态变更事件。 |
916e41f4b71Sopenharmony_ci| deathCallback | Callback&lt;void&gt; | 否   | 回调函数。如果该参数不填,那么会将之前订阅过的所有的deathCallback取消订阅。                                          |
917e41f4b71Sopenharmony_ci
918e41f4b71Sopenharmony_ci**错误码:**
919e41f4b71Sopenharmony_ci
920e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
921e41f4b71Sopenharmony_ci
922e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
923e41f4b71Sopenharmony_ci| ------------ | ------------ |
924e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
925e41f4b71Sopenharmony_ci
926e41f4b71Sopenharmony_ci**示例:**
927e41f4b71Sopenharmony_ci
928e41f4b71Sopenharmony_ci```ts
929e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
930e41f4b71Sopenharmony_ci
931e41f4b71Sopenharmony_citry {
932e41f4b71Sopenharmony_ci  console.info('KVManagerOff');
933e41f4b71Sopenharmony_ci  const deathCallback = () => {
934e41f4b71Sopenharmony_ci    console.info('death callback call');
935e41f4b71Sopenharmony_ci  }
936e41f4b71Sopenharmony_ci  kvManager.off('distributedDataServiceDie', deathCallback);
937e41f4b71Sopenharmony_ci} catch (e) {
938e41f4b71Sopenharmony_ci  let error = e as BusinessError;
939e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
940e41f4b71Sopenharmony_ci}
941e41f4b71Sopenharmony_ci```
942e41f4b71Sopenharmony_ci
943e41f4b71Sopenharmony_ci## KVStoreResultSet
944e41f4b71Sopenharmony_ci
945e41f4b71Sopenharmony_ci提供获取数据库结果集的相关方法,包括查询和移动数据读取位置等。同时允许打开的结果集的最大数量为8个。
946e41f4b71Sopenharmony_ci
947e41f4b71Sopenharmony_ci在调用KVStoreResultSet的方法前,需要先通过[getKVStore](#getkvstore)构建一个SingleKVStore或者DeviceKVStore实例。
948e41f4b71Sopenharmony_ci
949e41f4b71Sopenharmony_ci### getCount
950e41f4b71Sopenharmony_ci
951e41f4b71Sopenharmony_cigetCount(): number
952e41f4b71Sopenharmony_ci
953e41f4b71Sopenharmony_ci获取结果集中的总行数。
954e41f4b71Sopenharmony_ci
955e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
956e41f4b71Sopenharmony_ci
957e41f4b71Sopenharmony_ci**返回值:**
958e41f4b71Sopenharmony_ci
959e41f4b71Sopenharmony_ci| 类型   | 说明               |
960e41f4b71Sopenharmony_ci| ------ | ------------------ |
961e41f4b71Sopenharmony_ci| number | 返回数据的总行数。 |
962e41f4b71Sopenharmony_ci
963e41f4b71Sopenharmony_ci**示例:**
964e41f4b71Sopenharmony_ci
965e41f4b71Sopenharmony_ci```ts
966e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
967e41f4b71Sopenharmony_ci
968e41f4b71Sopenharmony_citry {
969e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
970e41f4b71Sopenharmony_ci  let count: number;
971e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
972e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
973e41f4b71Sopenharmony_ci    resultSet = result;
974e41f4b71Sopenharmony_ci    count = resultSet.getCount();
975e41f4b71Sopenharmony_ci    console.info("getCount succeed:" + count);
976e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
977e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
978e41f4b71Sopenharmony_ci  });
979e41f4b71Sopenharmony_ci} catch (e) {
980e41f4b71Sopenharmony_ci  console.error("getCount failed: " + e);
981e41f4b71Sopenharmony_ci}
982e41f4b71Sopenharmony_ci```
983e41f4b71Sopenharmony_ci
984e41f4b71Sopenharmony_ci### getPosition
985e41f4b71Sopenharmony_ci
986e41f4b71Sopenharmony_cigetPosition(): number
987e41f4b71Sopenharmony_ci
988e41f4b71Sopenharmony_ci获取结果集中当前的读取位置。读取位置会因[moveToFirst](#movetofirst)、[moveToLast](#movetolast)等操作而发生变化。
989e41f4b71Sopenharmony_ci
990e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
991e41f4b71Sopenharmony_ci
992e41f4b71Sopenharmony_ci**返回值:**
993e41f4b71Sopenharmony_ci
994e41f4b71Sopenharmony_ci| 类型   | 说明               |
995e41f4b71Sopenharmony_ci| ------ | ------------------ |
996e41f4b71Sopenharmony_ci| number | 返回当前读取位置。取值范围>= -1,值为 -1 时表示还未开始读取,值为 0 时表示第一行。 |
997e41f4b71Sopenharmony_ci
998e41f4b71Sopenharmony_ci**示例:**
999e41f4b71Sopenharmony_ci
1000e41f4b71Sopenharmony_ci```ts
1001e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1002e41f4b71Sopenharmony_ci
1003e41f4b71Sopenharmony_citry {
1004e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1005e41f4b71Sopenharmony_ci  let position: number;
1006e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1007e41f4b71Sopenharmony_ci    console.info('getResultSet succeeded.');
1008e41f4b71Sopenharmony_ci    resultSet = result;
1009e41f4b71Sopenharmony_ci    position = resultSet.getPosition();
1010e41f4b71Sopenharmony_ci    console.info("getPosition succeed:" + position);
1011e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1012e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1013e41f4b71Sopenharmony_ci  });
1014e41f4b71Sopenharmony_ci} catch (e) {
1015e41f4b71Sopenharmony_ci  console.error("getPosition failed: " + e);
1016e41f4b71Sopenharmony_ci}
1017e41f4b71Sopenharmony_ci```
1018e41f4b71Sopenharmony_ci
1019e41f4b71Sopenharmony_ci### moveToFirst
1020e41f4b71Sopenharmony_ci
1021e41f4b71Sopenharmony_cimoveToFirst(): boolean
1022e41f4b71Sopenharmony_ci
1023e41f4b71Sopenharmony_ci将读取位置移动到第一行。如果结果集为空,则返回false。
1024e41f4b71Sopenharmony_ci
1025e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1026e41f4b71Sopenharmony_ci
1027e41f4b71Sopenharmony_ci**返回值:**
1028e41f4b71Sopenharmony_ci
1029e41f4b71Sopenharmony_ci| 类型    | 说明                                            |
1030e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------- |
1031e41f4b71Sopenharmony_ci| boolean | 返回true表示操作成功;返回false则表示操作失败。 |
1032e41f4b71Sopenharmony_ci
1033e41f4b71Sopenharmony_ci**示例:**
1034e41f4b71Sopenharmony_ci
1035e41f4b71Sopenharmony_ci```ts
1036e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1037e41f4b71Sopenharmony_ci
1038e41f4b71Sopenharmony_citry {
1039e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1040e41f4b71Sopenharmony_ci  let moved: boolean;
1041e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1042e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1043e41f4b71Sopenharmony_ci    resultSet = result;
1044e41f4b71Sopenharmony_ci    moved = resultSet.moveToFirst();
1045e41f4b71Sopenharmony_ci    console.info("moveToFirst succeed: " + moved);
1046e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1047e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1048e41f4b71Sopenharmony_ci  });
1049e41f4b71Sopenharmony_ci} catch (e) {
1050e41f4b71Sopenharmony_ci  console.error("moveToFirst failed " + e);
1051e41f4b71Sopenharmony_ci}
1052e41f4b71Sopenharmony_ci```
1053e41f4b71Sopenharmony_ci
1054e41f4b71Sopenharmony_ci### moveToLast
1055e41f4b71Sopenharmony_ci
1056e41f4b71Sopenharmony_cimoveToLast(): boolean
1057e41f4b71Sopenharmony_ci
1058e41f4b71Sopenharmony_ci将读取位置移动到最后一行。如果结果集为空,则返回false。
1059e41f4b71Sopenharmony_ci
1060e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1061e41f4b71Sopenharmony_ci
1062e41f4b71Sopenharmony_ci**返回值:**
1063e41f4b71Sopenharmony_ci
1064e41f4b71Sopenharmony_ci| 类型    | 说明                                            |
1065e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------- |
1066e41f4b71Sopenharmony_ci| boolean | 返回true表示操作成功;返回false则表示操作失败。 |
1067e41f4b71Sopenharmony_ci
1068e41f4b71Sopenharmony_ci**示例:**
1069e41f4b71Sopenharmony_ci
1070e41f4b71Sopenharmony_ci```ts
1071e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1072e41f4b71Sopenharmony_ci
1073e41f4b71Sopenharmony_citry {
1074e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1075e41f4b71Sopenharmony_ci  let moved: boolean;
1076e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1077e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1078e41f4b71Sopenharmony_ci    resultSet = result;
1079e41f4b71Sopenharmony_ci    moved = resultSet.moveToLast();
1080e41f4b71Sopenharmony_ci    console.info("moveToLast succeed:" + moved);
1081e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1082e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1083e41f4b71Sopenharmony_ci  });
1084e41f4b71Sopenharmony_ci} catch (e) {
1085e41f4b71Sopenharmony_ci  console.error("moveToLast failed: " + e);
1086e41f4b71Sopenharmony_ci}
1087e41f4b71Sopenharmony_ci```
1088e41f4b71Sopenharmony_ci
1089e41f4b71Sopenharmony_ci### moveToNext
1090e41f4b71Sopenharmony_ci
1091e41f4b71Sopenharmony_cimoveToNext(): boolean
1092e41f4b71Sopenharmony_ci
1093e41f4b71Sopenharmony_ci将读取位置移动到下一行。如果结果集为空,则返回false。适用于全量获取数据库结果集的场景。
1094e41f4b71Sopenharmony_ci
1095e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1096e41f4b71Sopenharmony_ci
1097e41f4b71Sopenharmony_ci**返回值:**
1098e41f4b71Sopenharmony_ci
1099e41f4b71Sopenharmony_ci| 类型    | 说明                                            |
1100e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------- |
1101e41f4b71Sopenharmony_ci| boolean | 返回true表示操作成功;返回false则表示操作失败。 |
1102e41f4b71Sopenharmony_ci
1103e41f4b71Sopenharmony_ci**示例:**
1104e41f4b71Sopenharmony_ci
1105e41f4b71Sopenharmony_ci```ts
1106e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1107e41f4b71Sopenharmony_ci
1108e41f4b71Sopenharmony_citry {
1109e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1110e41f4b71Sopenharmony_ci  let moved: boolean;
1111e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1112e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1113e41f4b71Sopenharmony_ci    resultSet = result;
1114e41f4b71Sopenharmony_ci    do {
1115e41f4b71Sopenharmony_ci      moved = resultSet.moveToNext();
1116e41f4b71Sopenharmony_ci      console.info("moveToNext succeed: " + moved);
1117e41f4b71Sopenharmony_ci    } while (moved)
1118e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1119e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1120e41f4b71Sopenharmony_ci  });
1121e41f4b71Sopenharmony_ci} catch (e) {
1122e41f4b71Sopenharmony_ci  console.error("moveToNext failed: " + e);
1123e41f4b71Sopenharmony_ci}
1124e41f4b71Sopenharmony_ci```
1125e41f4b71Sopenharmony_ci
1126e41f4b71Sopenharmony_ci### moveToPrevious
1127e41f4b71Sopenharmony_ci
1128e41f4b71Sopenharmony_cimoveToPrevious(): boolean
1129e41f4b71Sopenharmony_ci
1130e41f4b71Sopenharmony_ci将读取位置移动到上一行。如果结果集为空,则返回false。适用于全量获取数据库结果集的场景。
1131e41f4b71Sopenharmony_ci
1132e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1133e41f4b71Sopenharmony_ci
1134e41f4b71Sopenharmony_ci**返回值:**
1135e41f4b71Sopenharmony_ci
1136e41f4b71Sopenharmony_ci| 类型    | 说明                                            |
1137e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------- |
1138e41f4b71Sopenharmony_ci| boolean | 返回true表示操作成功;返回false则表示操作失败。 |
1139e41f4b71Sopenharmony_ci
1140e41f4b71Sopenharmony_ci**示例:**
1141e41f4b71Sopenharmony_ci
1142e41f4b71Sopenharmony_ci```ts
1143e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1144e41f4b71Sopenharmony_ci
1145e41f4b71Sopenharmony_citry {
1146e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1147e41f4b71Sopenharmony_ci  let moved: boolean;
1148e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1149e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1150e41f4b71Sopenharmony_ci    resultSet = result;
1151e41f4b71Sopenharmony_ci    moved = resultSet.moveToLast();
1152e41f4b71Sopenharmony_ci    moved = resultSet.moveToPrevious();
1153e41f4b71Sopenharmony_ci    console.info("moveToPrevious succeed:" + moved);
1154e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1155e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1156e41f4b71Sopenharmony_ci  });
1157e41f4b71Sopenharmony_ci} catch (e) {
1158e41f4b71Sopenharmony_ci  console.error("moveToPrevious failed: " + e);
1159e41f4b71Sopenharmony_ci}
1160e41f4b71Sopenharmony_ci```
1161e41f4b71Sopenharmony_ci
1162e41f4b71Sopenharmony_ci### move
1163e41f4b71Sopenharmony_ci
1164e41f4b71Sopenharmony_cimove(offset: number): boolean
1165e41f4b71Sopenharmony_ci
1166e41f4b71Sopenharmony_ci将读取位置移动到当前位置的相对偏移量。即当前游标位置向下偏移 offset 行。
1167e41f4b71Sopenharmony_ci
1168e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1169e41f4b71Sopenharmony_ci
1170e41f4b71Sopenharmony_ci**参数:**
1171e41f4b71Sopenharmony_ci
1172e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                                                         |
1173e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------------------------------------------------ |
1174e41f4b71Sopenharmony_ci| offset | number   | 是   | 表示与当前位置的相对偏移量,负偏移表示向后移动,正偏移表示向前移动。 |
1175e41f4b71Sopenharmony_ci
1176e41f4b71Sopenharmony_ci**返回值:**
1177e41f4b71Sopenharmony_ci
1178e41f4b71Sopenharmony_ci| 类型    | 说明                                            |
1179e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------- |
1180e41f4b71Sopenharmony_ci| boolean | 返回true表示操作成功;返回false则表示操作失败。 |
1181e41f4b71Sopenharmony_ci
1182e41f4b71Sopenharmony_ci**错误码:**
1183e41f4b71Sopenharmony_ci
1184e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1185e41f4b71Sopenharmony_ci
1186e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1187e41f4b71Sopenharmony_ci| ------------ | ------------ |
1188e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
1189e41f4b71Sopenharmony_ci
1190e41f4b71Sopenharmony_ci**示例:**
1191e41f4b71Sopenharmony_ci
1192e41f4b71Sopenharmony_ci```ts
1193e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1194e41f4b71Sopenharmony_ci
1195e41f4b71Sopenharmony_citry {
1196e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1197e41f4b71Sopenharmony_ci  let moved: boolean;
1198e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1199e41f4b71Sopenharmony_ci    console.info('Succeeded in getting resultSet');
1200e41f4b71Sopenharmony_ci    resultSet = result;
1201e41f4b71Sopenharmony_ci    moved = resultSet.move(2); //若当前位置为0,将读取位置从绝对位置为0的位置移动2行,即移动到绝对位置为2,行数为3的位置
1202e41f4b71Sopenharmony_ci    console.info(`Succeeded in moving.moved = ${moved}`);
1203e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1204e41f4b71Sopenharmony_ci    console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
1205e41f4b71Sopenharmony_ci  });
1206e41f4b71Sopenharmony_ci} catch (e) {
1207e41f4b71Sopenharmony_ci  let error = e as BusinessError;
1208e41f4b71Sopenharmony_ci  console.error(`Failed to move.code is ${error.code},message is ${error.message}`);
1209e41f4b71Sopenharmony_ci}
1210e41f4b71Sopenharmony_ci```
1211e41f4b71Sopenharmony_ci
1212e41f4b71Sopenharmony_ci### moveToPosition
1213e41f4b71Sopenharmony_ci
1214e41f4b71Sopenharmony_cimoveToPosition(position: number): boolean
1215e41f4b71Sopenharmony_ci
1216e41f4b71Sopenharmony_ci将读取位置从 0 移动到绝对位置。
1217e41f4b71Sopenharmony_ci
1218e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1219e41f4b71Sopenharmony_ci
1220e41f4b71Sopenharmony_ci**参数:**
1221e41f4b71Sopenharmony_ci
1222e41f4b71Sopenharmony_ci| 参数名   | 类型 | 必填 | 说明           |
1223e41f4b71Sopenharmony_ci| -------- | -------- | ---- | -------------- |
1224e41f4b71Sopenharmony_ci| position | number   | 是   | 表示绝对位置。 |
1225e41f4b71Sopenharmony_ci
1226e41f4b71Sopenharmony_ci**返回值:**
1227e41f4b71Sopenharmony_ci
1228e41f4b71Sopenharmony_ci| 类型    | 说明                                            |
1229e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------- |
1230e41f4b71Sopenharmony_ci| boolean | 返回true表示操作成功;返回false则表示操作失败。 |
1231e41f4b71Sopenharmony_ci
1232e41f4b71Sopenharmony_ci**错误码:**
1233e41f4b71Sopenharmony_ci
1234e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1235e41f4b71Sopenharmony_ci
1236e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1237e41f4b71Sopenharmony_ci| ------------ | ------------ |
1238e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
1239e41f4b71Sopenharmony_ci
1240e41f4b71Sopenharmony_ci**示例**
1241e41f4b71Sopenharmony_ci
1242e41f4b71Sopenharmony_ci```ts
1243e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1244e41f4b71Sopenharmony_ci
1245e41f4b71Sopenharmony_citry {
1246e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1247e41f4b71Sopenharmony_ci  let moved: boolean;
1248e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1249e41f4b71Sopenharmony_ci    console.info('Succeeded in getting resultSet');
1250e41f4b71Sopenharmony_ci    resultSet = result;
1251e41f4b71Sopenharmony_ci    moved = resultSet.moveToPosition(1);
1252e41f4b71Sopenharmony_ci    console.info(`Succeeded in moving to position.moved=${moved}`);
1253e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1254e41f4b71Sopenharmony_ci    console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
1255e41f4b71Sopenharmony_ci  });
1256e41f4b71Sopenharmony_ci} catch (e) {
1257e41f4b71Sopenharmony_ci  let error = e as BusinessError;
1258e41f4b71Sopenharmony_ci  console.error(`Failed to move to position.code is ${error.code},message is ${error.message}`);
1259e41f4b71Sopenharmony_ci}
1260e41f4b71Sopenharmony_ci```
1261e41f4b71Sopenharmony_ci
1262e41f4b71Sopenharmony_ci### isFirst
1263e41f4b71Sopenharmony_ci
1264e41f4b71Sopenharmony_ciisFirst(): boolean
1265e41f4b71Sopenharmony_ci
1266e41f4b71Sopenharmony_ci检查读取位置是否为第一行。
1267e41f4b71Sopenharmony_ci
1268e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1269e41f4b71Sopenharmony_ci
1270e41f4b71Sopenharmony_ci**返回值:**
1271e41f4b71Sopenharmony_ci
1272e41f4b71Sopenharmony_ci| 类型    | 说明                                                         |
1273e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ |
1274e41f4b71Sopenharmony_ci| boolean | 返回true表示读取位置为第一行;返回false表示读取位置不是第一行。 |
1275e41f4b71Sopenharmony_ci
1276e41f4b71Sopenharmony_ci**示例:**
1277e41f4b71Sopenharmony_ci
1278e41f4b71Sopenharmony_ci```ts
1279e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1280e41f4b71Sopenharmony_ci
1281e41f4b71Sopenharmony_citry {
1282e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1283e41f4b71Sopenharmony_ci  let isfirst: boolean;
1284e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1285e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1286e41f4b71Sopenharmony_ci    resultSet = result;
1287e41f4b71Sopenharmony_ci    isfirst = resultSet.isFirst();
1288e41f4b71Sopenharmony_ci    console.info("Check isFirst succeed:" + isfirst);
1289e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1290e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1291e41f4b71Sopenharmony_ci  });
1292e41f4b71Sopenharmony_ci} catch (e) {
1293e41f4b71Sopenharmony_ci  console.error("Check isFirst failed: " + e);
1294e41f4b71Sopenharmony_ci}
1295e41f4b71Sopenharmony_ci```
1296e41f4b71Sopenharmony_ci
1297e41f4b71Sopenharmony_ci### isLast
1298e41f4b71Sopenharmony_ci
1299e41f4b71Sopenharmony_ciisLast(): boolean
1300e41f4b71Sopenharmony_ci
1301e41f4b71Sopenharmony_ci检查读取位置是否为最后一行。
1302e41f4b71Sopenharmony_ci
1303e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1304e41f4b71Sopenharmony_ci
1305e41f4b71Sopenharmony_ci**返回值:**
1306e41f4b71Sopenharmony_ci
1307e41f4b71Sopenharmony_ci| 类型    | 说明                                                         |
1308e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ |
1309e41f4b71Sopenharmony_ci| boolean | 返回true表示读取位置为最后一行;返回false表示读取位置不是最后一行。 |
1310e41f4b71Sopenharmony_ci
1311e41f4b71Sopenharmony_ci**示例:**
1312e41f4b71Sopenharmony_ci
1313e41f4b71Sopenharmony_ci```ts
1314e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1315e41f4b71Sopenharmony_ci
1316e41f4b71Sopenharmony_citry {
1317e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1318e41f4b71Sopenharmony_ci  let islast: boolean;
1319e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1320e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1321e41f4b71Sopenharmony_ci    resultSet = result;
1322e41f4b71Sopenharmony_ci    islast = resultSet.isLast();
1323e41f4b71Sopenharmony_ci    console.info("Check isLast succeed: " + islast);
1324e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1325e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1326e41f4b71Sopenharmony_ci  });
1327e41f4b71Sopenharmony_ci} catch (e) {
1328e41f4b71Sopenharmony_ci  console.error("Check isLast failed: " + e);
1329e41f4b71Sopenharmony_ci}
1330e41f4b71Sopenharmony_ci```
1331e41f4b71Sopenharmony_ci
1332e41f4b71Sopenharmony_ci### isBeforeFirst
1333e41f4b71Sopenharmony_ci
1334e41f4b71Sopenharmony_ciisBeforeFirst(): boolean
1335e41f4b71Sopenharmony_ci
1336e41f4b71Sopenharmony_ci检查读取位置是否在第一行之前。
1337e41f4b71Sopenharmony_ci
1338e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1339e41f4b71Sopenharmony_ci
1340e41f4b71Sopenharmony_ci**返回值:**
1341e41f4b71Sopenharmony_ci
1342e41f4b71Sopenharmony_ci| 类型    | 说明                                                         |
1343e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ |
1344e41f4b71Sopenharmony_ci| boolean | 返回true表示读取位置在第一行之前;返回false表示读取位置不在第一行之前。 |
1345e41f4b71Sopenharmony_ci
1346e41f4b71Sopenharmony_ci**示例:**
1347e41f4b71Sopenharmony_ci
1348e41f4b71Sopenharmony_ci```ts
1349e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1350e41f4b71Sopenharmony_ci
1351e41f4b71Sopenharmony_citry {
1352e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1353e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1354e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1355e41f4b71Sopenharmony_ci    resultSet = result;
1356e41f4b71Sopenharmony_ci    let isbeforefirst = resultSet.isBeforeFirst();
1357e41f4b71Sopenharmony_ci    console.info("Check isBeforeFirst succeed: " + isbeforefirst);
1358e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1359e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1360e41f4b71Sopenharmony_ci  });
1361e41f4b71Sopenharmony_ci} catch (e) {
1362e41f4b71Sopenharmony_ci  console.error("Check isBeforeFirst failed: " + e);
1363e41f4b71Sopenharmony_ci}
1364e41f4b71Sopenharmony_ci```
1365e41f4b71Sopenharmony_ci
1366e41f4b71Sopenharmony_ci### isAfterLast
1367e41f4b71Sopenharmony_ci
1368e41f4b71Sopenharmony_ciisAfterLast(): boolean
1369e41f4b71Sopenharmony_ci
1370e41f4b71Sopenharmony_ci检查读取位置是否在最后一行之后。
1371e41f4b71Sopenharmony_ci
1372e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1373e41f4b71Sopenharmony_ci
1374e41f4b71Sopenharmony_ci**返回值:**
1375e41f4b71Sopenharmony_ci
1376e41f4b71Sopenharmony_ci| 类型    | 说明                                                         |
1377e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ |
1378e41f4b71Sopenharmony_ci| boolean | 返回true表示读取位置在最后一行之后;返回false表示读取位置不在最后一行之后。 |
1379e41f4b71Sopenharmony_ci
1380e41f4b71Sopenharmony_ci**示例:**
1381e41f4b71Sopenharmony_ci
1382e41f4b71Sopenharmony_ci```ts
1383e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1384e41f4b71Sopenharmony_ci
1385e41f4b71Sopenharmony_citry {
1386e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1387e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1388e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1389e41f4b71Sopenharmony_ci    resultSet = result;
1390e41f4b71Sopenharmony_ci    let isafterlast = resultSet.isAfterLast();
1391e41f4b71Sopenharmony_ci    console.info("Check isAfterLast succeed:" + isafterlast);
1392e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1393e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1394e41f4b71Sopenharmony_ci  });
1395e41f4b71Sopenharmony_ci} catch (e) {
1396e41f4b71Sopenharmony_ci  console.error("Check isAfterLast failed: " + e);
1397e41f4b71Sopenharmony_ci}
1398e41f4b71Sopenharmony_ci```
1399e41f4b71Sopenharmony_ci
1400e41f4b71Sopenharmony_ci### getEntry
1401e41f4b71Sopenharmony_ci
1402e41f4b71Sopenharmony_cigetEntry(): Entry
1403e41f4b71Sopenharmony_ci
1404e41f4b71Sopenharmony_ci从当前位置获取对应的键值对。
1405e41f4b71Sopenharmony_ci
1406e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1407e41f4b71Sopenharmony_ci
1408e41f4b71Sopenharmony_ci**返回值:**
1409e41f4b71Sopenharmony_ci
1410e41f4b71Sopenharmony_ci| 类型            | 说明         |
1411e41f4b71Sopenharmony_ci| --------------- | ------------ |
1412e41f4b71Sopenharmony_ci| [Entry](#entry) | 返回键值对。 |
1413e41f4b71Sopenharmony_ci
1414e41f4b71Sopenharmony_ci**示例:**
1415e41f4b71Sopenharmony_ci
1416e41f4b71Sopenharmony_ci```ts
1417e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1418e41f4b71Sopenharmony_ci
1419e41f4b71Sopenharmony_citry {
1420e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
1421e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
1422e41f4b71Sopenharmony_ci    console.info('getResultSet succeed.');
1423e41f4b71Sopenharmony_ci    resultSet = result;
1424e41f4b71Sopenharmony_ci    let entry = resultSet.getEntry();
1425e41f4b71Sopenharmony_ci    console.info("getEntry succeed:" + JSON.stringify(entry));
1426e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
1427e41f4b71Sopenharmony_ci    console.error('getResultSet failed: ' + err);
1428e41f4b71Sopenharmony_ci  });
1429e41f4b71Sopenharmony_ci} catch (e) {
1430e41f4b71Sopenharmony_ci  console.error("getEntry failed: " + e);
1431e41f4b71Sopenharmony_ci}
1432e41f4b71Sopenharmony_ci```
1433e41f4b71Sopenharmony_ci
1434e41f4b71Sopenharmony_ci## Query
1435e41f4b71Sopenharmony_ci
1436e41f4b71Sopenharmony_ci使用谓词表示数据库查询,提供创建Query实例、查询数据库中的数据和添加谓词的方法。一个Query对象中谓词数量上限为256个。
1437e41f4b71Sopenharmony_ci
1438e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1439e41f4b71Sopenharmony_ci
1440e41f4b71Sopenharmony_ci### constructor
1441e41f4b71Sopenharmony_ci
1442e41f4b71Sopenharmony_ciconstructor()
1443e41f4b71Sopenharmony_ci
1444e41f4b71Sopenharmony_ci用于创建Query实例的构造函数。
1445e41f4b71Sopenharmony_ci
1446e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1447e41f4b71Sopenharmony_ci
1448e41f4b71Sopenharmony_ci### reset
1449e41f4b71Sopenharmony_ci
1450e41f4b71Sopenharmony_cireset(): Query
1451e41f4b71Sopenharmony_ci
1452e41f4b71Sopenharmony_ci重置Query对象。
1453e41f4b71Sopenharmony_ci
1454e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1455e41f4b71Sopenharmony_ci
1456e41f4b71Sopenharmony_ci**返回值:**
1457e41f4b71Sopenharmony_ci
1458e41f4b71Sopenharmony_ci| 类型           | 说明                  |
1459e41f4b71Sopenharmony_ci| -------------- | --------------------- |
1460e41f4b71Sopenharmony_ci| [Query](#query) | 返回重置的Query对象。 |
1461e41f4b71Sopenharmony_ci
1462e41f4b71Sopenharmony_ci**示例:**
1463e41f4b71Sopenharmony_ci
1464e41f4b71Sopenharmony_ci```ts
1465e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1466e41f4b71Sopenharmony_ci
1467e41f4b71Sopenharmony_citry {
1468e41f4b71Sopenharmony_ci  let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1469e41f4b71Sopenharmony_ci  query.equalTo("key", "value");
1470e41f4b71Sopenharmony_ci  console.info("query is " + query.getSqlLike());
1471e41f4b71Sopenharmony_ci  query.reset();
1472e41f4b71Sopenharmony_ci  console.info("query is " + query.getSqlLike());
1473e41f4b71Sopenharmony_ci  query = null;
1474e41f4b71Sopenharmony_ci} catch (e) {
1475e41f4b71Sopenharmony_ci  console.error("simply calls should be ok :" + e);
1476e41f4b71Sopenharmony_ci}
1477e41f4b71Sopenharmony_ci```
1478e41f4b71Sopenharmony_ci
1479e41f4b71Sopenharmony_ci### equalTo
1480e41f4b71Sopenharmony_ci
1481e41f4b71Sopenharmony_ciequalTo(field: string, value: number|string|boolean): Query
1482e41f4b71Sopenharmony_ci
1483e41f4b71Sopenharmony_ci构造一个Query对象来查询具有指定字段的条目,其值等于指定的值。
1484e41f4b71Sopenharmony_ci
1485e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1486e41f4b71Sopenharmony_ci
1487e41f4b71Sopenharmony_ci**参数:**
1488e41f4b71Sopenharmony_ci
1489e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
1490e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
1491e41f4b71Sopenharmony_ci| field  | string  | 是    |表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
1492e41f4b71Sopenharmony_ci| value  | number\|string\|boolean  | 是    | 表示指定的值。|
1493e41f4b71Sopenharmony_ci
1494e41f4b71Sopenharmony_ci**返回值:**
1495e41f4b71Sopenharmony_ci
1496e41f4b71Sopenharmony_ci| 类型           | 说明            |
1497e41f4b71Sopenharmony_ci| -------------- | --------------- |
1498e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
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 parameters types; 3. Parameter verification failed.  |
1507e41f4b71Sopenharmony_ci
1508e41f4b71Sopenharmony_ci**示例:**
1509e41f4b71Sopenharmony_ci
1510e41f4b71Sopenharmony_ci```ts
1511e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1512e41f4b71Sopenharmony_ci
1513e41f4b71Sopenharmony_citry {
1514e41f4b71Sopenharmony_ci  let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1515e41f4b71Sopenharmony_ci  query.equalTo("field", "value");
1516e41f4b71Sopenharmony_ci  console.info(`query is ${query.getSqlLike()}`);
1517e41f4b71Sopenharmony_ci  query = null;
1518e41f4b71Sopenharmony_ci} catch (e) {
1519e41f4b71Sopenharmony_ci  let error = e as BusinessError;
1520e41f4b71Sopenharmony_ci  console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1521e41f4b71Sopenharmony_ci}
1522e41f4b71Sopenharmony_ci```
1523e41f4b71Sopenharmony_ci
1524e41f4b71Sopenharmony_ci### notEqualTo
1525e41f4b71Sopenharmony_ci
1526e41f4b71Sopenharmony_cinotEqualTo(field: string, value: number|string|boolean): Query
1527e41f4b71Sopenharmony_ci
1528e41f4b71Sopenharmony_ci构造一个Query对象以查询具有指定字段且值不等于指定值的条目。
1529e41f4b71Sopenharmony_ci
1530e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1531e41f4b71Sopenharmony_ci
1532e41f4b71Sopenharmony_ci**参数:**
1533e41f4b71Sopenharmony_ci
1534e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
1535e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
1536e41f4b71Sopenharmony_ci| field  | string  | 是    |表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。  |
1537e41f4b71Sopenharmony_ci| value  | number\|string\|boolean  | 是    | 表示指定的值。|
1538e41f4b71Sopenharmony_ci
1539e41f4b71Sopenharmony_ci**返回值:**
1540e41f4b71Sopenharmony_ci
1541e41f4b71Sopenharmony_ci| 类型           | 说明            |
1542e41f4b71Sopenharmony_ci| -------------- | --------------- |
1543e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1544e41f4b71Sopenharmony_ci
1545e41f4b71Sopenharmony_ci**错误码:**
1546e41f4b71Sopenharmony_ci
1547e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1548e41f4b71Sopenharmony_ci
1549e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1550e41f4b71Sopenharmony_ci| ------------ | ------------ |
1551e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1552e41f4b71Sopenharmony_ci
1553e41f4b71Sopenharmony_ci**示例:**
1554e41f4b71Sopenharmony_ci
1555e41f4b71Sopenharmony_ci```ts
1556e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1557e41f4b71Sopenharmony_ci
1558e41f4b71Sopenharmony_citry {
1559e41f4b71Sopenharmony_ci  let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1560e41f4b71Sopenharmony_ci  query.notEqualTo("field", "value");
1561e41f4b71Sopenharmony_ci  console.info(`query is ${query.getSqlLike()}`);
1562e41f4b71Sopenharmony_ci  query = null;
1563e41f4b71Sopenharmony_ci} catch (e) {
1564e41f4b71Sopenharmony_ci  let error = e as BusinessError;
1565e41f4b71Sopenharmony_ci  console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1566e41f4b71Sopenharmony_ci}
1567e41f4b71Sopenharmony_ci```
1568e41f4b71Sopenharmony_ci
1569e41f4b71Sopenharmony_ci### greaterThan
1570e41f4b71Sopenharmony_ci
1571e41f4b71Sopenharmony_cigreaterThan(field: string, value: number|string|boolean): Query
1572e41f4b71Sopenharmony_ci
1573e41f4b71Sopenharmony_ci构造一个Query对象以查询具有大于指定值的指定字段的条目。
1574e41f4b71Sopenharmony_ci
1575e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1576e41f4b71Sopenharmony_ci
1577e41f4b71Sopenharmony_ci**参数:**
1578e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
1579e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
1580e41f4b71Sopenharmony_ci| field  | string  | 是    |表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。  |
1581e41f4b71Sopenharmony_ci| value  | number\|string\|boolean  | 是    | 表示指定的值。|
1582e41f4b71Sopenharmony_ci
1583e41f4b71Sopenharmony_ci**返回值:**
1584e41f4b71Sopenharmony_ci
1585e41f4b71Sopenharmony_ci| 类型           | 说明            |
1586e41f4b71Sopenharmony_ci| -------------- | --------------- |
1587e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1588e41f4b71Sopenharmony_ci
1589e41f4b71Sopenharmony_ci**错误码:**
1590e41f4b71Sopenharmony_ci
1591e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1592e41f4b71Sopenharmony_ci
1593e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1594e41f4b71Sopenharmony_ci| ------------ | ------------ |
1595e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1596e41f4b71Sopenharmony_ci
1597e41f4b71Sopenharmony_ci**示例:**
1598e41f4b71Sopenharmony_ci
1599e41f4b71Sopenharmony_ci```ts
1600e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1601e41f4b71Sopenharmony_ci
1602e41f4b71Sopenharmony_citry {
1603e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1604e41f4b71Sopenharmony_ci    query.greaterThan("field", "value");
1605e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1606e41f4b71Sopenharmony_ci    query = null;
1607e41f4b71Sopenharmony_ci} catch (e) {
1608e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1609e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1610e41f4b71Sopenharmony_ci}
1611e41f4b71Sopenharmony_ci```
1612e41f4b71Sopenharmony_ci
1613e41f4b71Sopenharmony_ci### lessThan
1614e41f4b71Sopenharmony_ci
1615e41f4b71Sopenharmony_cilessThan(field: string, value: number|string): Query
1616e41f4b71Sopenharmony_ci
1617e41f4b71Sopenharmony_ci构造一个Query对象以查询具有小于指定值的指定字段的条目。
1618e41f4b71Sopenharmony_ci
1619e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1620e41f4b71Sopenharmony_ci
1621e41f4b71Sopenharmony_ci**参数:**
1622e41f4b71Sopenharmony_ci
1623e41f4b71Sopenharmony_ci
1624e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
1625e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
1626e41f4b71Sopenharmony_ci| field  | string  | 是    |表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。  |
1627e41f4b71Sopenharmony_ci| value  | number\|string  | 是    | 表示指定的值。|
1628e41f4b71Sopenharmony_ci
1629e41f4b71Sopenharmony_ci**返回值:**
1630e41f4b71Sopenharmony_ci
1631e41f4b71Sopenharmony_ci| 类型           | 说明            |
1632e41f4b71Sopenharmony_ci| -------------- | --------------- |
1633e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1634e41f4b71Sopenharmony_ci
1635e41f4b71Sopenharmony_ci**错误码:**
1636e41f4b71Sopenharmony_ci
1637e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1638e41f4b71Sopenharmony_ci
1639e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1640e41f4b71Sopenharmony_ci| ------------ | ------------ |
1641e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1642e41f4b71Sopenharmony_ci
1643e41f4b71Sopenharmony_ci**示例:**
1644e41f4b71Sopenharmony_ci
1645e41f4b71Sopenharmony_ci```ts
1646e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1647e41f4b71Sopenharmony_ci
1648e41f4b71Sopenharmony_citry {
1649e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1650e41f4b71Sopenharmony_ci    query.lessThan("field", "value");
1651e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1652e41f4b71Sopenharmony_ci    query = null;
1653e41f4b71Sopenharmony_ci} catch (e) {
1654e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1655e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1656e41f4b71Sopenharmony_ci}
1657e41f4b71Sopenharmony_ci```
1658e41f4b71Sopenharmony_ci
1659e41f4b71Sopenharmony_ci### greaterThanOrEqualTo
1660e41f4b71Sopenharmony_ci
1661e41f4b71Sopenharmony_cigreaterThanOrEqualTo(field: string, value: number|string): Query
1662e41f4b71Sopenharmony_ci
1663e41f4b71Sopenharmony_ci构造一个Query对象以查询具有指定字段且值大于或等于指定值的条目。
1664e41f4b71Sopenharmony_ci
1665e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1666e41f4b71Sopenharmony_ci
1667e41f4b71Sopenharmony_ci**参数:**
1668e41f4b71Sopenharmony_ci
1669e41f4b71Sopenharmony_ci
1670e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
1671e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
1672e41f4b71Sopenharmony_ci| field  | string  | 是    |表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。  |
1673e41f4b71Sopenharmony_ci| value  | number\|string  | 是    | 表示指定的值。|
1674e41f4b71Sopenharmony_ci
1675e41f4b71Sopenharmony_ci**返回值:**
1676e41f4b71Sopenharmony_ci
1677e41f4b71Sopenharmony_ci| 类型           | 说明            |
1678e41f4b71Sopenharmony_ci| -------------- | --------------- |
1679e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1680e41f4b71Sopenharmony_ci
1681e41f4b71Sopenharmony_ci**错误码:**
1682e41f4b71Sopenharmony_ci
1683e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1684e41f4b71Sopenharmony_ci
1685e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1686e41f4b71Sopenharmony_ci| ------------ | ------------ |
1687e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1688e41f4b71Sopenharmony_ci
1689e41f4b71Sopenharmony_ci**示例:**
1690e41f4b71Sopenharmony_ci
1691e41f4b71Sopenharmony_ci```ts
1692e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1693e41f4b71Sopenharmony_ci
1694e41f4b71Sopenharmony_citry {
1695e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1696e41f4b71Sopenharmony_ci    query.greaterThanOrEqualTo("field", "value");
1697e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1698e41f4b71Sopenharmony_ci    query = null;
1699e41f4b71Sopenharmony_ci} catch (e) {
1700e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1701e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1702e41f4b71Sopenharmony_ci}
1703e41f4b71Sopenharmony_ci```
1704e41f4b71Sopenharmony_ci
1705e41f4b71Sopenharmony_ci### lessThanOrEqualTo
1706e41f4b71Sopenharmony_ci
1707e41f4b71Sopenharmony_cilessThanOrEqualTo(field: string, value: number|string): Query
1708e41f4b71Sopenharmony_ci
1709e41f4b71Sopenharmony_ci构造一个Query对象以查询具有指定字段且值小于或等于指定值的条目。
1710e41f4b71Sopenharmony_ci
1711e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1712e41f4b71Sopenharmony_ci
1713e41f4b71Sopenharmony_ci**参数:**
1714e41f4b71Sopenharmony_ci
1715e41f4b71Sopenharmony_ci
1716e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
1717e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
1718e41f4b71Sopenharmony_ci| field  | string  | 是    |表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。  |
1719e41f4b71Sopenharmony_ci| value  | number\|string  | 是    | 表示指定的值。|
1720e41f4b71Sopenharmony_ci
1721e41f4b71Sopenharmony_ci**返回值:**
1722e41f4b71Sopenharmony_ci
1723e41f4b71Sopenharmony_ci| 类型           | 说明            |
1724e41f4b71Sopenharmony_ci| -------------- | --------------- |
1725e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1726e41f4b71Sopenharmony_ci
1727e41f4b71Sopenharmony_ci**错误码:**
1728e41f4b71Sopenharmony_ci
1729e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1730e41f4b71Sopenharmony_ci
1731e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1732e41f4b71Sopenharmony_ci| ------------ | ------------ |
1733e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1734e41f4b71Sopenharmony_ci
1735e41f4b71Sopenharmony_ci**示例:**
1736e41f4b71Sopenharmony_ci
1737e41f4b71Sopenharmony_ci```ts
1738e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1739e41f4b71Sopenharmony_ci
1740e41f4b71Sopenharmony_citry {
1741e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1742e41f4b71Sopenharmony_ci    query.lessThanOrEqualTo("field", "value");
1743e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1744e41f4b71Sopenharmony_ci    query = null;
1745e41f4b71Sopenharmony_ci} catch (e) {
1746e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1747e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1748e41f4b71Sopenharmony_ci}
1749e41f4b71Sopenharmony_ci```
1750e41f4b71Sopenharmony_ci
1751e41f4b71Sopenharmony_ci### isNull
1752e41f4b71Sopenharmony_ci
1753e41f4b71Sopenharmony_ciisNull(field: string): Query
1754e41f4b71Sopenharmony_ci
1755e41f4b71Sopenharmony_ci构造一个Query对象以查询具有值为null的指定字段的条目。
1756e41f4b71Sopenharmony_ci
1757e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1758e41f4b71Sopenharmony_ci
1759e41f4b71Sopenharmony_ci**参数:**
1760e41f4b71Sopenharmony_ci
1761e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                          |
1762e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ----------------------------- |
1763e41f4b71Sopenharmony_ci| field  | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
1764e41f4b71Sopenharmony_ci
1765e41f4b71Sopenharmony_ci**返回值:**
1766e41f4b71Sopenharmony_ci
1767e41f4b71Sopenharmony_ci| 类型           | 说明            |
1768e41f4b71Sopenharmony_ci| -------------- | --------------- |
1769e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1770e41f4b71Sopenharmony_ci
1771e41f4b71Sopenharmony_ci**错误码:**
1772e41f4b71Sopenharmony_ci
1773e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1774e41f4b71Sopenharmony_ci
1775e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1776e41f4b71Sopenharmony_ci| ------------ | ------------ |
1777e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1778e41f4b71Sopenharmony_ci
1779e41f4b71Sopenharmony_ci**示例:**
1780e41f4b71Sopenharmony_ci
1781e41f4b71Sopenharmony_ci```ts
1782e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1783e41f4b71Sopenharmony_ci
1784e41f4b71Sopenharmony_citry {
1785e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1786e41f4b71Sopenharmony_ci    query.isNull("field");
1787e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1788e41f4b71Sopenharmony_ci    query = null;
1789e41f4b71Sopenharmony_ci} catch (e) {
1790e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1791e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1792e41f4b71Sopenharmony_ci}
1793e41f4b71Sopenharmony_ci```
1794e41f4b71Sopenharmony_ci
1795e41f4b71Sopenharmony_ci### inNumber
1796e41f4b71Sopenharmony_ci
1797e41f4b71Sopenharmony_ciinNumber(field: string, valueList: number[]): Query
1798e41f4b71Sopenharmony_ci
1799e41f4b71Sopenharmony_ci构造一个Query对象以查询具有指定字段的条目,其值在指定的值列表中。
1800e41f4b71Sopenharmony_ci
1801e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1802e41f4b71Sopenharmony_ci
1803e41f4b71Sopenharmony_ci**参数:**
1804e41f4b71Sopenharmony_ci
1805e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                          |
1806e41f4b71Sopenharmony_ci| --------- | -------- | ---- | ----------------------------- |
1807e41f4b71Sopenharmony_ci| field     | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
1808e41f4b71Sopenharmony_ci| valueList | number[] | 是   | 表示指定的值列表。            |
1809e41f4b71Sopenharmony_ci
1810e41f4b71Sopenharmony_ci**返回值:**
1811e41f4b71Sopenharmony_ci
1812e41f4b71Sopenharmony_ci| 类型           | 说明            |
1813e41f4b71Sopenharmony_ci| -------------- | --------------- |
1814e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1815e41f4b71Sopenharmony_ci
1816e41f4b71Sopenharmony_ci**错误码:**
1817e41f4b71Sopenharmony_ci
1818e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1819e41f4b71Sopenharmony_ci
1820e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1821e41f4b71Sopenharmony_ci| ------------ | ------------ |
1822e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1823e41f4b71Sopenharmony_ci
1824e41f4b71Sopenharmony_ci**示例:**
1825e41f4b71Sopenharmony_ci
1826e41f4b71Sopenharmony_ci```ts
1827e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1828e41f4b71Sopenharmony_ci
1829e41f4b71Sopenharmony_citry {
1830e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1831e41f4b71Sopenharmony_ci    query.inNumber("field", [0, 1]);
1832e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1833e41f4b71Sopenharmony_ci    query = null;
1834e41f4b71Sopenharmony_ci} catch (e) {
1835e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1836e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1837e41f4b71Sopenharmony_ci}
1838e41f4b71Sopenharmony_ci```
1839e41f4b71Sopenharmony_ci
1840e41f4b71Sopenharmony_ci### inString
1841e41f4b71Sopenharmony_ci
1842e41f4b71Sopenharmony_ciinString(field: string, valueList: string[]): Query
1843e41f4b71Sopenharmony_ci
1844e41f4b71Sopenharmony_ci构造一个Query对象以查询具有指定字段的条目,其值在指定的字符串值列表中。
1845e41f4b71Sopenharmony_ci
1846e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1847e41f4b71Sopenharmony_ci
1848e41f4b71Sopenharmony_ci**参数:**
1849e41f4b71Sopenharmony_ci
1850e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                          |
1851e41f4b71Sopenharmony_ci| --------- | -------- | ---- | ----------------------------- |
1852e41f4b71Sopenharmony_ci| field     | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
1853e41f4b71Sopenharmony_ci| valueList | string[] | 是   | 表示指定的字符串值列表。      |
1854e41f4b71Sopenharmony_ci
1855e41f4b71Sopenharmony_ci**返回值:**
1856e41f4b71Sopenharmony_ci
1857e41f4b71Sopenharmony_ci| 类型           | 说明            |
1858e41f4b71Sopenharmony_ci| -------------- | --------------- |
1859e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1860e41f4b71Sopenharmony_ci
1861e41f4b71Sopenharmony_ci**错误码:**
1862e41f4b71Sopenharmony_ci
1863e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1864e41f4b71Sopenharmony_ci
1865e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1866e41f4b71Sopenharmony_ci| ------------ | ------------ |
1867e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1868e41f4b71Sopenharmony_ci
1869e41f4b71Sopenharmony_ci**示例:**
1870e41f4b71Sopenharmony_ci
1871e41f4b71Sopenharmony_ci```ts
1872e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1873e41f4b71Sopenharmony_ci
1874e41f4b71Sopenharmony_citry {
1875e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1876e41f4b71Sopenharmony_ci    query.inString("field", ['test1', 'test2']);
1877e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1878e41f4b71Sopenharmony_ci    query = null;
1879e41f4b71Sopenharmony_ci} catch (e) {
1880e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1881e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1882e41f4b71Sopenharmony_ci}
1883e41f4b71Sopenharmony_ci```
1884e41f4b71Sopenharmony_ci
1885e41f4b71Sopenharmony_ci### notInNumber
1886e41f4b71Sopenharmony_ci
1887e41f4b71Sopenharmony_cinotInNumber(field: string, valueList: number[]): Query
1888e41f4b71Sopenharmony_ci
1889e41f4b71Sopenharmony_ci构造一个Query对象以查询具有指定字段的条目,该字段的值不在指定的值列表中。
1890e41f4b71Sopenharmony_ci
1891e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1892e41f4b71Sopenharmony_ci
1893e41f4b71Sopenharmony_ci**参数:**
1894e41f4b71Sopenharmony_ci
1895e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                          |
1896e41f4b71Sopenharmony_ci| --------- | -------- | ---- | ----------------------------- |
1897e41f4b71Sopenharmony_ci| field     | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
1898e41f4b71Sopenharmony_ci| valueList | number[] | 是   | 表示指定的值列表。            |
1899e41f4b71Sopenharmony_ci
1900e41f4b71Sopenharmony_ci**返回值:**
1901e41f4b71Sopenharmony_ci
1902e41f4b71Sopenharmony_ci| 类型           | 说明            |
1903e41f4b71Sopenharmony_ci| -------------- | --------------- |
1904e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1905e41f4b71Sopenharmony_ci
1906e41f4b71Sopenharmony_ci**错误码:**
1907e41f4b71Sopenharmony_ci
1908e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1909e41f4b71Sopenharmony_ci
1910e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1911e41f4b71Sopenharmony_ci| ------------ | ------------ |
1912e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1913e41f4b71Sopenharmony_ci
1914e41f4b71Sopenharmony_ci**示例:**
1915e41f4b71Sopenharmony_ci
1916e41f4b71Sopenharmony_ci```ts
1917e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1918e41f4b71Sopenharmony_ci
1919e41f4b71Sopenharmony_citry {
1920e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1921e41f4b71Sopenharmony_ci    query.notInNumber("field", [0, 1]);
1922e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1923e41f4b71Sopenharmony_ci    query = null;
1924e41f4b71Sopenharmony_ci} catch (e) {
1925e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1926e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1927e41f4b71Sopenharmony_ci}
1928e41f4b71Sopenharmony_ci```
1929e41f4b71Sopenharmony_ci
1930e41f4b71Sopenharmony_ci### notInString
1931e41f4b71Sopenharmony_ci
1932e41f4b71Sopenharmony_cinotInString(field: string, valueList: string[]): Query
1933e41f4b71Sopenharmony_ci
1934e41f4b71Sopenharmony_ci构造一个Query对象以查询具有指定字段且值不在指定字符串值列表中的条目。
1935e41f4b71Sopenharmony_ci
1936e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1937e41f4b71Sopenharmony_ci
1938e41f4b71Sopenharmony_ci**参数:**
1939e41f4b71Sopenharmony_ci
1940e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                          |
1941e41f4b71Sopenharmony_ci| --------- | -------- | ---- | ----------------------------- |
1942e41f4b71Sopenharmony_ci| field     | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
1943e41f4b71Sopenharmony_ci| valueList | string[] | 是   | 表示指定的字符串值列表。      |
1944e41f4b71Sopenharmony_ci
1945e41f4b71Sopenharmony_ci**返回值:**
1946e41f4b71Sopenharmony_ci
1947e41f4b71Sopenharmony_ci| 类型           | 说明            |
1948e41f4b71Sopenharmony_ci| -------------- | --------------- |
1949e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1950e41f4b71Sopenharmony_ci
1951e41f4b71Sopenharmony_ci**错误码:**
1952e41f4b71Sopenharmony_ci
1953e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1954e41f4b71Sopenharmony_ci
1955e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
1956e41f4b71Sopenharmony_ci| ------------ | ------------ |
1957e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
1958e41f4b71Sopenharmony_ci
1959e41f4b71Sopenharmony_ci**示例:**
1960e41f4b71Sopenharmony_ci
1961e41f4b71Sopenharmony_ci```ts
1962e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
1963e41f4b71Sopenharmony_ci
1964e41f4b71Sopenharmony_citry {
1965e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
1966e41f4b71Sopenharmony_ci    query.notInString("field", ['test1', 'test2']);
1967e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
1968e41f4b71Sopenharmony_ci    query = null;
1969e41f4b71Sopenharmony_ci} catch (e) {
1970e41f4b71Sopenharmony_ci    let error = e as BusinessError;
1971e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
1972e41f4b71Sopenharmony_ci}
1973e41f4b71Sopenharmony_ci```
1974e41f4b71Sopenharmony_ci
1975e41f4b71Sopenharmony_ci### like
1976e41f4b71Sopenharmony_ci
1977e41f4b71Sopenharmony_cilike(field: string, value: string): Query
1978e41f4b71Sopenharmony_ci
1979e41f4b71Sopenharmony_ci构造一个Query对象以查询具有与指定字符串值相似的指定字段的条目。
1980e41f4b71Sopenharmony_ci
1981e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
1982e41f4b71Sopenharmony_ci
1983e41f4b71Sopenharmony_ci**参数:**
1984e41f4b71Sopenharmony_ci
1985e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                          |
1986e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ----------------------------- |
1987e41f4b71Sopenharmony_ci| field  | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
1988e41f4b71Sopenharmony_ci| value  | string   | 是   | 表示指定的字符串值。          |
1989e41f4b71Sopenharmony_ci
1990e41f4b71Sopenharmony_ci**返回值:**
1991e41f4b71Sopenharmony_ci
1992e41f4b71Sopenharmony_ci| 类型           | 说明            |
1993e41f4b71Sopenharmony_ci| -------------- | --------------- |
1994e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
1995e41f4b71Sopenharmony_ci
1996e41f4b71Sopenharmony_ci**错误码:**
1997e41f4b71Sopenharmony_ci
1998e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1999e41f4b71Sopenharmony_ci
2000e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2001e41f4b71Sopenharmony_ci| ------------ | ------------ |
2002e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2003e41f4b71Sopenharmony_ci
2004e41f4b71Sopenharmony_ci**示例:**
2005e41f4b71Sopenharmony_ci
2006e41f4b71Sopenharmony_ci```ts
2007e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2008e41f4b71Sopenharmony_ci
2009e41f4b71Sopenharmony_citry {
2010e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2011e41f4b71Sopenharmony_ci    query.like("field", "value");
2012e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
2013e41f4b71Sopenharmony_ci    query = null;
2014e41f4b71Sopenharmony_ci} catch (e) {
2015e41f4b71Sopenharmony_ci    let error = e as BusinessError;
2016e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2017e41f4b71Sopenharmony_ci}
2018e41f4b71Sopenharmony_ci```
2019e41f4b71Sopenharmony_ci
2020e41f4b71Sopenharmony_ci### unlike
2021e41f4b71Sopenharmony_ci
2022e41f4b71Sopenharmony_ciunlike(field: string, value: string): Query
2023e41f4b71Sopenharmony_ci
2024e41f4b71Sopenharmony_ci构造一个Query对象以查询具有与指定字符串值不相似的指定字段的条目。
2025e41f4b71Sopenharmony_ci
2026e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2027e41f4b71Sopenharmony_ci
2028e41f4b71Sopenharmony_ci**参数:**
2029e41f4b71Sopenharmony_ci
2030e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                          |
2031e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ----------------------------- |
2032e41f4b71Sopenharmony_ci| field  | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
2033e41f4b71Sopenharmony_ci| value  | string   | 是   | 表示指定的字符串值。          |
2034e41f4b71Sopenharmony_ci
2035e41f4b71Sopenharmony_ci**返回值:**
2036e41f4b71Sopenharmony_ci
2037e41f4b71Sopenharmony_ci| 类型           | 说明            |
2038e41f4b71Sopenharmony_ci| -------------- | --------------- |
2039e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2040e41f4b71Sopenharmony_ci
2041e41f4b71Sopenharmony_ci**错误码:**
2042e41f4b71Sopenharmony_ci
2043e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2044e41f4b71Sopenharmony_ci
2045e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2046e41f4b71Sopenharmony_ci| ------------ | ------------ |
2047e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2048e41f4b71Sopenharmony_ci
2049e41f4b71Sopenharmony_ci**示例:**
2050e41f4b71Sopenharmony_ci
2051e41f4b71Sopenharmony_ci```ts
2052e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2053e41f4b71Sopenharmony_ci
2054e41f4b71Sopenharmony_citry {
2055e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2056e41f4b71Sopenharmony_ci    query.unlike("field", "value");
2057e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
2058e41f4b71Sopenharmony_ci    query = null;
2059e41f4b71Sopenharmony_ci} catch (e) {
2060e41f4b71Sopenharmony_ci    let error = e as BusinessError;
2061e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2062e41f4b71Sopenharmony_ci}
2063e41f4b71Sopenharmony_ci```
2064e41f4b71Sopenharmony_ci
2065e41f4b71Sopenharmony_ci### and
2066e41f4b71Sopenharmony_ci
2067e41f4b71Sopenharmony_ciand(): Query
2068e41f4b71Sopenharmony_ci
2069e41f4b71Sopenharmony_ci构造一个带有与条件的查询对象。
2070e41f4b71Sopenharmony_ci
2071e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2072e41f4b71Sopenharmony_ci
2073e41f4b71Sopenharmony_ci**返回值:**
2074e41f4b71Sopenharmony_ci
2075e41f4b71Sopenharmony_ci| 类型           | 说明           |
2076e41f4b71Sopenharmony_ci| -------------- | -------------- |
2077e41f4b71Sopenharmony_ci| [Query](#query) | 返回查询对象。 |
2078e41f4b71Sopenharmony_ci
2079e41f4b71Sopenharmony_ci**示例:**
2080e41f4b71Sopenharmony_ci
2081e41f4b71Sopenharmony_ci```ts
2082e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2083e41f4b71Sopenharmony_ci
2084e41f4b71Sopenharmony_citry {
2085e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2086e41f4b71Sopenharmony_ci    query.notEqualTo("field", "value1");
2087e41f4b71Sopenharmony_ci    query.and();
2088e41f4b71Sopenharmony_ci    query.notEqualTo("field", "value2");
2089e41f4b71Sopenharmony_ci    console.info("query is " + query.getSqlLike());
2090e41f4b71Sopenharmony_ci    query = null;
2091e41f4b71Sopenharmony_ci} catch (e) {
2092e41f4b71Sopenharmony_ci    console.error("duplicated calls should be ok :" + e);
2093e41f4b71Sopenharmony_ci}
2094e41f4b71Sopenharmony_ci```
2095e41f4b71Sopenharmony_ci
2096e41f4b71Sopenharmony_ci### or
2097e41f4b71Sopenharmony_ci
2098e41f4b71Sopenharmony_cior(): Query
2099e41f4b71Sopenharmony_ci
2100e41f4b71Sopenharmony_ci构造一个带有或条件的Query对象。
2101e41f4b71Sopenharmony_ci
2102e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2103e41f4b71Sopenharmony_ci
2104e41f4b71Sopenharmony_ci**返回值:**
2105e41f4b71Sopenharmony_ci
2106e41f4b71Sopenharmony_ci| 类型           | 说明           |
2107e41f4b71Sopenharmony_ci| -------------- | -------------- |
2108e41f4b71Sopenharmony_ci| [Query](#query) | 返回查询对象。 |
2109e41f4b71Sopenharmony_ci
2110e41f4b71Sopenharmony_ci**示例:**
2111e41f4b71Sopenharmony_ci
2112e41f4b71Sopenharmony_ci```ts
2113e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2114e41f4b71Sopenharmony_ci
2115e41f4b71Sopenharmony_citry {
2116e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2117e41f4b71Sopenharmony_ci    query.notEqualTo("field", "value1");
2118e41f4b71Sopenharmony_ci    query.or();
2119e41f4b71Sopenharmony_ci    query.notEqualTo("field", "value2");
2120e41f4b71Sopenharmony_ci    console.info("query is " + query.getSqlLike());
2121e41f4b71Sopenharmony_ci    query = null;
2122e41f4b71Sopenharmony_ci} catch (e) {
2123e41f4b71Sopenharmony_ci    console.error("duplicated calls should be ok :" + e);
2124e41f4b71Sopenharmony_ci}
2125e41f4b71Sopenharmony_ci```
2126e41f4b71Sopenharmony_ci
2127e41f4b71Sopenharmony_ci### orderByAsc
2128e41f4b71Sopenharmony_ci
2129e41f4b71Sopenharmony_ciorderByAsc(field: string): Query
2130e41f4b71Sopenharmony_ci
2131e41f4b71Sopenharmony_ci构造一个Query对象,将查询结果按升序排序。
2132e41f4b71Sopenharmony_ci
2133e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2134e41f4b71Sopenharmony_ci
2135e41f4b71Sopenharmony_ci**参数:**
2136e41f4b71Sopenharmony_ci
2137e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                          |
2138e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ----------------------------- |
2139e41f4b71Sopenharmony_ci| field  | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
2140e41f4b71Sopenharmony_ci
2141e41f4b71Sopenharmony_ci**返回值:**
2142e41f4b71Sopenharmony_ci
2143e41f4b71Sopenharmony_ci| 类型           | 说明            |
2144e41f4b71Sopenharmony_ci| -------------- | --------------- |
2145e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2146e41f4b71Sopenharmony_ci
2147e41f4b71Sopenharmony_ci**错误码:**
2148e41f4b71Sopenharmony_ci
2149e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2150e41f4b71Sopenharmony_ci
2151e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2152e41f4b71Sopenharmony_ci| ------------ | ------------ |
2153e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2154e41f4b71Sopenharmony_ci
2155e41f4b71Sopenharmony_ci**示例:**
2156e41f4b71Sopenharmony_ci
2157e41f4b71Sopenharmony_ci```ts
2158e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2159e41f4b71Sopenharmony_ci
2160e41f4b71Sopenharmony_citry {
2161e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2162e41f4b71Sopenharmony_ci    query.notEqualTo("field", "value");
2163e41f4b71Sopenharmony_ci    query.orderByAsc("field");
2164e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
2165e41f4b71Sopenharmony_ci    query = null;
2166e41f4b71Sopenharmony_ci} catch (e) {
2167e41f4b71Sopenharmony_ci    let error = e as BusinessError;
2168e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2169e41f4b71Sopenharmony_ci}
2170e41f4b71Sopenharmony_ci```
2171e41f4b71Sopenharmony_ci
2172e41f4b71Sopenharmony_ci### orderByDesc
2173e41f4b71Sopenharmony_ci
2174e41f4b71Sopenharmony_ciorderByDesc(field: string): Query
2175e41f4b71Sopenharmony_ci
2176e41f4b71Sopenharmony_ci构造一个Query对象,将查询结果按降序排序。
2177e41f4b71Sopenharmony_ci
2178e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2179e41f4b71Sopenharmony_ci
2180e41f4b71Sopenharmony_ci**参数:**
2181e41f4b71Sopenharmony_ci
2182e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                          |
2183e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ----------------------------- |
2184e41f4b71Sopenharmony_ci| field  | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
2185e41f4b71Sopenharmony_ci
2186e41f4b71Sopenharmony_ci**返回值:**
2187e41f4b71Sopenharmony_ci
2188e41f4b71Sopenharmony_ci| 类型           | 说明            |
2189e41f4b71Sopenharmony_ci| -------------- | --------------- |
2190e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2191e41f4b71Sopenharmony_ci
2192e41f4b71Sopenharmony_ci**错误码:**
2193e41f4b71Sopenharmony_ci
2194e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2195e41f4b71Sopenharmony_ci
2196e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2197e41f4b71Sopenharmony_ci| ------------ | ------------ |
2198e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2199e41f4b71Sopenharmony_ci
2200e41f4b71Sopenharmony_ci**示例:**
2201e41f4b71Sopenharmony_ci
2202e41f4b71Sopenharmony_ci```ts
2203e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2204e41f4b71Sopenharmony_ci
2205e41f4b71Sopenharmony_citry {
2206e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2207e41f4b71Sopenharmony_ci    query.notEqualTo("field", "value");
2208e41f4b71Sopenharmony_ci    query.orderByDesc("field");
2209e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
2210e41f4b71Sopenharmony_ci    query = null;
2211e41f4b71Sopenharmony_ci} catch (e) {
2212e41f4b71Sopenharmony_ci    let error = e as BusinessError;
2213e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2214e41f4b71Sopenharmony_ci}
2215e41f4b71Sopenharmony_ci```
2216e41f4b71Sopenharmony_ci
2217e41f4b71Sopenharmony_ci### limit
2218e41f4b71Sopenharmony_ci
2219e41f4b71Sopenharmony_cilimit(total: number, offset: number): Query
2220e41f4b71Sopenharmony_ci
2221e41f4b71Sopenharmony_ci构造一个Query对象来指定结果的数量和开始位置。该接口必须要在Query对象查询和升降序等操作之后调用,调用limit接口后,不可再对Query对象进行查询和升降序等操作。
2222e41f4b71Sopenharmony_ci
2223e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2224e41f4b71Sopenharmony_ci
2225e41f4b71Sopenharmony_ci**参数:**
2226e41f4b71Sopenharmony_ci
2227e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明               |
2228e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------ |
2229e41f4b71Sopenharmony_ci| total  | number   | 是   | 表示指定的结果数。 |
2230e41f4b71Sopenharmony_ci| offset | number   | 是   | 表示起始位置。     |
2231e41f4b71Sopenharmony_ci
2232e41f4b71Sopenharmony_ci**返回值:**
2233e41f4b71Sopenharmony_ci
2234e41f4b71Sopenharmony_ci| 类型           | 说明            |
2235e41f4b71Sopenharmony_ci| -------------- | --------------- |
2236e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2237e41f4b71Sopenharmony_ci
2238e41f4b71Sopenharmony_ci**错误码:**
2239e41f4b71Sopenharmony_ci
2240e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2241e41f4b71Sopenharmony_ci
2242e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2243e41f4b71Sopenharmony_ci| ------------ | ------------ |
2244e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
2245e41f4b71Sopenharmony_ci
2246e41f4b71Sopenharmony_ci**示例:**
2247e41f4b71Sopenharmony_ci
2248e41f4b71Sopenharmony_ci```ts
2249e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2250e41f4b71Sopenharmony_ci
2251e41f4b71Sopenharmony_cilet total = 10;
2252e41f4b71Sopenharmony_cilet offset = 1;
2253e41f4b71Sopenharmony_citry {
2254e41f4b71Sopenharmony_ci  let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2255e41f4b71Sopenharmony_ci  query.notEqualTo("field", "value");
2256e41f4b71Sopenharmony_ci  query.limit(total, offset);
2257e41f4b71Sopenharmony_ci  console.info(`query is ${query.getSqlLike()}`);
2258e41f4b71Sopenharmony_ci  query = null;
2259e41f4b71Sopenharmony_ci} catch (e) {
2260e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2261e41f4b71Sopenharmony_ci  console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2262e41f4b71Sopenharmony_ci}
2263e41f4b71Sopenharmony_ci```
2264e41f4b71Sopenharmony_ci
2265e41f4b71Sopenharmony_ci### isNotNull
2266e41f4b71Sopenharmony_ci
2267e41f4b71Sopenharmony_ciisNotNull(field: string): Query
2268e41f4b71Sopenharmony_ci
2269e41f4b71Sopenharmony_ci构造一个Query对象以查询具有值不为null的指定字段的条目。
2270e41f4b71Sopenharmony_ci
2271e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2272e41f4b71Sopenharmony_ci
2273e41f4b71Sopenharmony_ci**参数:**
2274e41f4b71Sopenharmony_ci
2275e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                          |
2276e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ----------------------------- |
2277e41f4b71Sopenharmony_ci| field  | string   | 是   | 表示指定字段,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
2278e41f4b71Sopenharmony_ci
2279e41f4b71Sopenharmony_ci**返回值:**
2280e41f4b71Sopenharmony_ci
2281e41f4b71Sopenharmony_ci| 类型           | 说明            |
2282e41f4b71Sopenharmony_ci| -------------- | --------------- |
2283e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2284e41f4b71Sopenharmony_ci
2285e41f4b71Sopenharmony_ci**错误码:**
2286e41f4b71Sopenharmony_ci
2287e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2288e41f4b71Sopenharmony_ci
2289e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2290e41f4b71Sopenharmony_ci| ------------ | ------------ |
2291e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2292e41f4b71Sopenharmony_ci
2293e41f4b71Sopenharmony_ci**示例:**
2294e41f4b71Sopenharmony_ci
2295e41f4b71Sopenharmony_ci```ts
2296e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2297e41f4b71Sopenharmony_ci
2298e41f4b71Sopenharmony_citry {
2299e41f4b71Sopenharmony_ci  let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2300e41f4b71Sopenharmony_ci  query.isNotNull("field");
2301e41f4b71Sopenharmony_ci  console.info(`query is ${query.getSqlLike()}`);
2302e41f4b71Sopenharmony_ci  query = null;
2303e41f4b71Sopenharmony_ci} catch (e) {
2304e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2305e41f4b71Sopenharmony_ci  console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2306e41f4b71Sopenharmony_ci}
2307e41f4b71Sopenharmony_ci```
2308e41f4b71Sopenharmony_ci
2309e41f4b71Sopenharmony_ci### beginGroup
2310e41f4b71Sopenharmony_ci
2311e41f4b71Sopenharmony_cibeginGroup(): Query
2312e41f4b71Sopenharmony_ci
2313e41f4b71Sopenharmony_ci创建一个带有左括号的查询条件组。
2314e41f4b71Sopenharmony_ci
2315e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2316e41f4b71Sopenharmony_ci
2317e41f4b71Sopenharmony_ci**返回值:**
2318e41f4b71Sopenharmony_ci
2319e41f4b71Sopenharmony_ci| 类型           | 说明            |
2320e41f4b71Sopenharmony_ci| -------------- | --------------- |
2321e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2322e41f4b71Sopenharmony_ci
2323e41f4b71Sopenharmony_ci**示例:**
2324e41f4b71Sopenharmony_ci
2325e41f4b71Sopenharmony_ci```ts
2326e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2327e41f4b71Sopenharmony_ci
2328e41f4b71Sopenharmony_citry {
2329e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2330e41f4b71Sopenharmony_ci    query.beginGroup();
2331e41f4b71Sopenharmony_ci    query.isNotNull("field");
2332e41f4b71Sopenharmony_ci    query.endGroup();
2333e41f4b71Sopenharmony_ci    console.info("query is " + query.getSqlLike());
2334e41f4b71Sopenharmony_ci    query = null;
2335e41f4b71Sopenharmony_ci} catch (e) {
2336e41f4b71Sopenharmony_ci    console.error("duplicated calls should be ok :" + e);
2337e41f4b71Sopenharmony_ci}
2338e41f4b71Sopenharmony_ci```
2339e41f4b71Sopenharmony_ci
2340e41f4b71Sopenharmony_ci### endGroup
2341e41f4b71Sopenharmony_ci
2342e41f4b71Sopenharmony_ciendGroup(): Query
2343e41f4b71Sopenharmony_ci
2344e41f4b71Sopenharmony_ci创建一个带有右括号的查询条件组。
2345e41f4b71Sopenharmony_ci
2346e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2347e41f4b71Sopenharmony_ci
2348e41f4b71Sopenharmony_ci**返回值:**
2349e41f4b71Sopenharmony_ci
2350e41f4b71Sopenharmony_ci| 类型           | 说明            |
2351e41f4b71Sopenharmony_ci| -------------- | --------------- |
2352e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2353e41f4b71Sopenharmony_ci
2354e41f4b71Sopenharmony_ci**示例:**
2355e41f4b71Sopenharmony_ci
2356e41f4b71Sopenharmony_ci```ts
2357e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2358e41f4b71Sopenharmony_ci
2359e41f4b71Sopenharmony_citry {
2360e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2361e41f4b71Sopenharmony_ci    query.beginGroup();
2362e41f4b71Sopenharmony_ci    query.isNotNull("field");
2363e41f4b71Sopenharmony_ci    query.endGroup();
2364e41f4b71Sopenharmony_ci    console.info("query is " + query.getSqlLike());
2365e41f4b71Sopenharmony_ci    query = null;
2366e41f4b71Sopenharmony_ci} catch (e) {
2367e41f4b71Sopenharmony_ci    console.error("duplicated calls should be ok :" + e);
2368e41f4b71Sopenharmony_ci}
2369e41f4b71Sopenharmony_ci```
2370e41f4b71Sopenharmony_ci
2371e41f4b71Sopenharmony_ci### prefixKey
2372e41f4b71Sopenharmony_ci
2373e41f4b71Sopenharmony_ciprefixKey(prefix: string): Query
2374e41f4b71Sopenharmony_ci
2375e41f4b71Sopenharmony_ci创建具有指定键前缀的查询条件。
2376e41f4b71Sopenharmony_ci
2377e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2378e41f4b71Sopenharmony_ci
2379e41f4b71Sopenharmony_ci**参数:**
2380e41f4b71Sopenharmony_ci
2381e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明               |
2382e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------ |
2383e41f4b71Sopenharmony_ci| prefix | string   | 是   | 表示指定的键前缀,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
2384e41f4b71Sopenharmony_ci
2385e41f4b71Sopenharmony_ci**返回值:**
2386e41f4b71Sopenharmony_ci
2387e41f4b71Sopenharmony_ci| 类型           | 说明            |
2388e41f4b71Sopenharmony_ci| -------------- | --------------- |
2389e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2390e41f4b71Sopenharmony_ci
2391e41f4b71Sopenharmony_ci**错误码:**
2392e41f4b71Sopenharmony_ci
2393e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2394e41f4b71Sopenharmony_ci
2395e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2396e41f4b71Sopenharmony_ci| ------------ | ------------ |
2397e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
2398e41f4b71Sopenharmony_ci
2399e41f4b71Sopenharmony_ci**示例:**
2400e41f4b71Sopenharmony_ci
2401e41f4b71Sopenharmony_ci```ts
2402e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2403e41f4b71Sopenharmony_ci
2404e41f4b71Sopenharmony_citry {
2405e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2406e41f4b71Sopenharmony_ci    query.prefixKey("$.name");
2407e41f4b71Sopenharmony_ci    query.prefixKey("0");
2408e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
2409e41f4b71Sopenharmony_ci    query = null;
2410e41f4b71Sopenharmony_ci} catch (e) {
2411e41f4b71Sopenharmony_ci    let error = e as BusinessError;
2412e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2413e41f4b71Sopenharmony_ci}
2414e41f4b71Sopenharmony_ci```
2415e41f4b71Sopenharmony_ci
2416e41f4b71Sopenharmony_ci### setSuggestIndex
2417e41f4b71Sopenharmony_ci
2418e41f4b71Sopenharmony_cisetSuggestIndex(index: string): Query
2419e41f4b71Sopenharmony_ci
2420e41f4b71Sopenharmony_ci设置一个指定的索引,将优先用于查询。
2421e41f4b71Sopenharmony_ci
2422e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2423e41f4b71Sopenharmony_ci
2424e41f4b71Sopenharmony_ci**参数:**
2425e41f4b71Sopenharmony_ci
2426e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明               |
2427e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------ |
2428e41f4b71Sopenharmony_ci| index  | string   | 是   | 指示要设置的索引,不能包含'^'。包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
2429e41f4b71Sopenharmony_ci
2430e41f4b71Sopenharmony_ci**返回值:**
2431e41f4b71Sopenharmony_ci
2432e41f4b71Sopenharmony_ci| 类型           | 说明            |
2433e41f4b71Sopenharmony_ci| -------------- | --------------- |
2434e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2435e41f4b71Sopenharmony_ci
2436e41f4b71Sopenharmony_ci**错误码:**
2437e41f4b71Sopenharmony_ci
2438e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2439e41f4b71Sopenharmony_ci
2440e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2441e41f4b71Sopenharmony_ci| ------------ | ------------ |
2442e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
2443e41f4b71Sopenharmony_ci
2444e41f4b71Sopenharmony_ci**示例:**
2445e41f4b71Sopenharmony_ci
2446e41f4b71Sopenharmony_ci```ts
2447e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2448e41f4b71Sopenharmony_ci
2449e41f4b71Sopenharmony_citry {
2450e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2451e41f4b71Sopenharmony_ci    query.setSuggestIndex("$.name");
2452e41f4b71Sopenharmony_ci    query.setSuggestIndex("0");
2453e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
2454e41f4b71Sopenharmony_ci    query = null;
2455e41f4b71Sopenharmony_ci} catch (e) {
2456e41f4b71Sopenharmony_ci    let error = e as BusinessError;
2457e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2458e41f4b71Sopenharmony_ci}
2459e41f4b71Sopenharmony_ci```
2460e41f4b71Sopenharmony_ci
2461e41f4b71Sopenharmony_ci### deviceId
2462e41f4b71Sopenharmony_ci
2463e41f4b71Sopenharmony_cideviceId(deviceId:string):Query
2464e41f4b71Sopenharmony_ci
2465e41f4b71Sopenharmony_ci添加设备ID作为Key的前缀。
2466e41f4b71Sopenharmony_ci> **说明:** 
2467e41f4b71Sopenharmony_ci>
2468e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
2469e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)
2470e41f4b71Sopenharmony_ci
2471e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2472e41f4b71Sopenharmony_ci
2473e41f4b71Sopenharmony_ci**参数:**
2474e41f4b71Sopenharmony_ci
2475e41f4b71Sopenharmony_ci| 参数名   | 类型 | 必填 | 说明               |
2476e41f4b71Sopenharmony_ci| -------- | -------- | ---- | ------------------ |
2477e41f4b71Sopenharmony_ci| deviceId | string   | 是   | 指示查询的设备ID,不能为空。 |
2478e41f4b71Sopenharmony_ci
2479e41f4b71Sopenharmony_ci**返回值:**
2480e41f4b71Sopenharmony_ci
2481e41f4b71Sopenharmony_ci| 类型           | 说明            |
2482e41f4b71Sopenharmony_ci| -------------- | --------------- |
2483e41f4b71Sopenharmony_ci| [Query](#query) | 返回Query对象。 |
2484e41f4b71Sopenharmony_ci
2485e41f4b71Sopenharmony_ci**错误码:**
2486e41f4b71Sopenharmony_ci
2487e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2488e41f4b71Sopenharmony_ci
2489e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
2490e41f4b71Sopenharmony_ci| ------------ | ------------ |
2491e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2492e41f4b71Sopenharmony_ci
2493e41f4b71Sopenharmony_ci**示例:**
2494e41f4b71Sopenharmony_ci
2495e41f4b71Sopenharmony_ci```ts
2496e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2497e41f4b71Sopenharmony_ci
2498e41f4b71Sopenharmony_citry {
2499e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2500e41f4b71Sopenharmony_ci    query.deviceId("deviceId");
2501e41f4b71Sopenharmony_ci    console.info(`query is ${query.getSqlLike()}`);
2502e41f4b71Sopenharmony_ci} catch (e) {
2503e41f4b71Sopenharmony_ci    let error = e as BusinessError;
2504e41f4b71Sopenharmony_ci    console.error(`duplicated calls should be ok.code is ${error.code},message is ${error.message}`);
2505e41f4b71Sopenharmony_ci}
2506e41f4b71Sopenharmony_ci```
2507e41f4b71Sopenharmony_ci
2508e41f4b71Sopenharmony_ci### getSqlLike
2509e41f4b71Sopenharmony_ci
2510e41f4b71Sopenharmony_cigetSqlLike():string
2511e41f4b71Sopenharmony_ci
2512e41f4b71Sopenharmony_ci获取Query对象的查询语句。
2513e41f4b71Sopenharmony_ci
2514e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2515e41f4b71Sopenharmony_ci
2516e41f4b71Sopenharmony_ci**返回值:**
2517e41f4b71Sopenharmony_ci
2518e41f4b71Sopenharmony_ci| 类型   | 说明                                 |
2519e41f4b71Sopenharmony_ci| ------ | ------------------------------------ |
2520e41f4b71Sopenharmony_ci| string | 返回一个字段列中包含对应子串的结果。 |
2521e41f4b71Sopenharmony_ci
2522e41f4b71Sopenharmony_ci**示例:**
2523e41f4b71Sopenharmony_ci
2524e41f4b71Sopenharmony_ci```ts
2525e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2526e41f4b71Sopenharmony_ci
2527e41f4b71Sopenharmony_citry {
2528e41f4b71Sopenharmony_ci    let query: distributedKVStore.Query | null = new distributedKVStore.Query();
2529e41f4b71Sopenharmony_ci    let sql1 = query.getSqlLike();
2530e41f4b71Sopenharmony_ci    console.info(`GetSqlLike sql= ${sql1}`);
2531e41f4b71Sopenharmony_ci} catch (e) {
2532e41f4b71Sopenharmony_ci    console.error("duplicated calls should be ok : " + e);
2533e41f4b71Sopenharmony_ci}
2534e41f4b71Sopenharmony_ci```
2535e41f4b71Sopenharmony_ci
2536e41f4b71Sopenharmony_ci## SingleKVStore
2537e41f4b71Sopenharmony_ci
2538e41f4b71Sopenharmony_ciSingleKVStore数据库实例,提供增加数据、删除数据和订阅数据变更、订阅数据同步完成的方法。
2539e41f4b71Sopenharmony_ci
2540e41f4b71Sopenharmony_ci在调用SingleKVStore的方法前,需要先通过[getKVStore](#getkvstore)构建一个SingleKVStore实例。
2541e41f4b71Sopenharmony_ci
2542e41f4b71Sopenharmony_ci### put
2543e41f4b71Sopenharmony_ci
2544e41f4b71Sopenharmony_ciput(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback&lt;void&gt;): void
2545e41f4b71Sopenharmony_ci
2546e41f4b71Sopenharmony_ci添加指定类型键值对到数据库,使用callback异步回调。
2547e41f4b71Sopenharmony_ci
2548e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2549e41f4b71Sopenharmony_ci
2550e41f4b71Sopenharmony_ci**参数:**
2551e41f4b71Sopenharmony_ci
2552e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
2553e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
2554e41f4b71Sopenharmony_ci| key    | string  | 是    |要添加数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。   |
2555e41f4b71Sopenharmony_ci| value  | Uint8Array \| string \| number \| boolean | 是    |要添加数据的value,支持Uint8Array、number 、 string 、boolean,Uint8Array、string 的长度不大于[MAX_VALUE_LENGTH](#constants)。   |
2556e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是    |回调函数。数据添加成功,err为undefined,否则为错误对象。   |
2557e41f4b71Sopenharmony_ci
2558e41f4b71Sopenharmony_ci**错误码:**
2559e41f4b71Sopenharmony_ci
2560e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
2561e41f4b71Sopenharmony_ci
2562e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
2563e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
2564e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2565e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                      |
2566e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
2567e41f4b71Sopenharmony_ci
2568e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
2569e41f4b71Sopenharmony_ci
2570e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
2571e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
2572e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
2573e41f4b71Sopenharmony_ci
2574e41f4b71Sopenharmony_ci**示例:**
2575e41f4b71Sopenharmony_ci
2576e41f4b71Sopenharmony_ci```ts
2577e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2578e41f4b71Sopenharmony_ci
2579e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
2580e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
2581e41f4b71Sopenharmony_citry {
2582e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, (err: BusinessError) => {
2583e41f4b71Sopenharmony_ci    if (err != undefined) {
2584e41f4b71Sopenharmony_ci      console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
2585e41f4b71Sopenharmony_ci      return;
2586e41f4b71Sopenharmony_ci    }
2587e41f4b71Sopenharmony_ci    console.info("Succeeded in putting");
2588e41f4b71Sopenharmony_ci  });
2589e41f4b71Sopenharmony_ci} catch (e) {
2590e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2591e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
2592e41f4b71Sopenharmony_ci}
2593e41f4b71Sopenharmony_ci```
2594e41f4b71Sopenharmony_ci
2595e41f4b71Sopenharmony_ci### put
2596e41f4b71Sopenharmony_ci
2597e41f4b71Sopenharmony_ciput(key: string, value: Uint8Array | string | number | boolean): Promise&lt;void&gt;
2598e41f4b71Sopenharmony_ci
2599e41f4b71Sopenharmony_ci添加指定类型键值对到数据库,使用Promise异步回调。
2600e41f4b71Sopenharmony_ci
2601e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2602e41f4b71Sopenharmony_ci
2603e41f4b71Sopenharmony_ci**参数:**
2604e41f4b71Sopenharmony_ci
2605e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
2606e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
2607e41f4b71Sopenharmony_ci| key    | string  | 是    |要添加数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。   |
2608e41f4b71Sopenharmony_ci| value  | Uint8Array \| string \| number \| boolean | 是    |要添加数据的value,支持Uint8Array、number 、 string 、boolean,Uint8Array、string 的长度不大于[MAX_VALUE_LENGTH](#constants)。   |
2609e41f4b71Sopenharmony_ci
2610e41f4b71Sopenharmony_ci**返回值:**
2611e41f4b71Sopenharmony_ci
2612e41f4b71Sopenharmony_ci| 类型                | 说明                      |
2613e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
2614e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2615e41f4b71Sopenharmony_ci
2616e41f4b71Sopenharmony_ci**错误码:**
2617e41f4b71Sopenharmony_ci
2618e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
2619e41f4b71Sopenharmony_ci
2620e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
2621e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
2622e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2623e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                      |
2624e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
2625e41f4b71Sopenharmony_ci
2626e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
2627e41f4b71Sopenharmony_ci
2628e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
2629e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
2630e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
2631e41f4b71Sopenharmony_ci
2632e41f4b71Sopenharmony_ci**示例:**
2633e41f4b71Sopenharmony_ci
2634e41f4b71Sopenharmony_ci```ts
2635e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2636e41f4b71Sopenharmony_ci
2637e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
2638e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
2639e41f4b71Sopenharmony_citry {
2640e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
2641e41f4b71Sopenharmony_ci    console.info(`Succeeded in putting data`);
2642e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
2643e41f4b71Sopenharmony_ci    console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
2644e41f4b71Sopenharmony_ci  });
2645e41f4b71Sopenharmony_ci} catch (e) {
2646e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2647e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
2648e41f4b71Sopenharmony_ci}
2649e41f4b71Sopenharmony_ci```
2650e41f4b71Sopenharmony_ci
2651e41f4b71Sopenharmony_ci### putBatch
2652e41f4b71Sopenharmony_ci
2653e41f4b71Sopenharmony_ciputBatch(entries: Entry[], callback: AsyncCallback&lt;void&gt;): void
2654e41f4b71Sopenharmony_ci
2655e41f4b71Sopenharmony_ci批量插入键值对到SingleKVStore数据库中,使用callback异步回调。
2656e41f4b71Sopenharmony_ci
2657e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2658e41f4b71Sopenharmony_ci
2659e41f4b71Sopenharmony_ci**参数:**
2660e41f4b71Sopenharmony_ci
2661e41f4b71Sopenharmony_ci| 参数名   | 类型                 | 必填 | 说明                     |
2662e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------ |
2663e41f4b71Sopenharmony_ci| entries  | [Entry](#entry)[]        | 是   | 表示要批量插入的键值对。一个entries对象中允许的最大数据量为512M。 |
2664e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。数据批量插入成功,err为undefined,否则为错误对象。   |
2665e41f4b71Sopenharmony_ci
2666e41f4b71Sopenharmony_ci**错误码:**
2667e41f4b71Sopenharmony_ci
2668e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
2669e41f4b71Sopenharmony_ci
2670e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
2671e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
2672e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
2673e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                      |
2674e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
2675e41f4b71Sopenharmony_ci
2676e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
2677e41f4b71Sopenharmony_ci
2678e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
2679e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
2680e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
2681e41f4b71Sopenharmony_ci
2682e41f4b71Sopenharmony_ci**示例:**
2683e41f4b71Sopenharmony_ci
2684e41f4b71Sopenharmony_ci```ts
2685e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2686e41f4b71Sopenharmony_ci
2687e41f4b71Sopenharmony_citry {
2688e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
2689e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
2690e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
2691e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
2692e41f4b71Sopenharmony_ci      key: key + i,
2693e41f4b71Sopenharmony_ci      value: {
2694e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
2695e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
2696e41f4b71Sopenharmony_ci      }
2697e41f4b71Sopenharmony_ci    }
2698e41f4b71Sopenharmony_ci    entries.push(entry);
2699e41f4b71Sopenharmony_ci  }
2700e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
2701e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
2702e41f4b71Sopenharmony_ci    if (err != undefined) {
2703e41f4b71Sopenharmony_ci      console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
2704e41f4b71Sopenharmony_ci      return;
2705e41f4b71Sopenharmony_ci    }
2706e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
2707e41f4b71Sopenharmony_ci    if (kvStore != null) {
2708e41f4b71Sopenharmony_ci      kvStore.getEntries('batch_test_string_key', (err: BusinessError, entries: distributedKVStore.Entry[]) => {
2709e41f4b71Sopenharmony_ci        if (err != undefined) {
2710e41f4b71Sopenharmony_ci          console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
2711e41f4b71Sopenharmony_ci        }
2712e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
2713e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
2714e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
2715e41f4b71Sopenharmony_ci      });
2716e41f4b71Sopenharmony_ci    } else {
2717e41f4b71Sopenharmony_ci      console.error('KvStore is null'); //后续示例代码与此处保持一致
2718e41f4b71Sopenharmony_ci    }
2719e41f4b71Sopenharmony_ci  });
2720e41f4b71Sopenharmony_ci} catch (e) {
2721e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2722e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message} `);
2723e41f4b71Sopenharmony_ci}
2724e41f4b71Sopenharmony_ci```
2725e41f4b71Sopenharmony_ci
2726e41f4b71Sopenharmony_ci### putBatch
2727e41f4b71Sopenharmony_ci
2728e41f4b71Sopenharmony_ciputBatch(entries: Entry[]): Promise&lt;void&gt;
2729e41f4b71Sopenharmony_ci
2730e41f4b71Sopenharmony_ci批量插入键值对到SingleKVStore数据库中,使用Promise异步回调。
2731e41f4b71Sopenharmony_ci
2732e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2733e41f4b71Sopenharmony_ci
2734e41f4b71Sopenharmony_ci**参数:**
2735e41f4b71Sopenharmony_ci
2736e41f4b71Sopenharmony_ci| 参数名  | 类型          | 必填 | 说明                     |
2737e41f4b71Sopenharmony_ci| ------- | ----------------- | ---- | ------------------------ |
2738e41f4b71Sopenharmony_ci| entries | [Entry](#entry)[] | 是   | 表示要批量插入的键值对。一个entries对象中允许的最大数据量为512M。 |
2739e41f4b71Sopenharmony_ci
2740e41f4b71Sopenharmony_ci**返回值:**
2741e41f4b71Sopenharmony_ci
2742e41f4b71Sopenharmony_ci| 类型                | 说明                      |
2743e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
2744e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2745e41f4b71Sopenharmony_ci
2746e41f4b71Sopenharmony_ci**错误码:**
2747e41f4b71Sopenharmony_ci
2748e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
2749e41f4b71Sopenharmony_ci
2750e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
2751e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
2752e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
2753e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                      |
2754e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
2755e41f4b71Sopenharmony_ci
2756e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
2757e41f4b71Sopenharmony_ci
2758e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
2759e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
2760e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
2761e41f4b71Sopenharmony_ci
2762e41f4b71Sopenharmony_ci**示例:**
2763e41f4b71Sopenharmony_ci
2764e41f4b71Sopenharmony_ci```ts
2765e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2766e41f4b71Sopenharmony_ci
2767e41f4b71Sopenharmony_citry {
2768e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
2769e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
2770e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
2771e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
2772e41f4b71Sopenharmony_ci      key: key + i,
2773e41f4b71Sopenharmony_ci      value: {
2774e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
2775e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
2776e41f4b71Sopenharmony_ci      }
2777e41f4b71Sopenharmony_ci    }
2778e41f4b71Sopenharmony_ci    entries.push(entry);
2779e41f4b71Sopenharmony_ci  }
2780e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
2781e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
2782e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
2783e41f4b71Sopenharmony_ci    if (kvStore != null) {
2784e41f4b71Sopenharmony_ci      kvStore.getEntries('batch_test_string_key').then((entries: distributedKVStore.Entry[]) => {
2785e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
2786e41f4b71Sopenharmony_ci        console.info(`PutBatch ${entries}`);
2787e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
2788e41f4b71Sopenharmony_ci        console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
2789e41f4b71Sopenharmony_ci      });
2790e41f4b71Sopenharmony_ci    }
2791e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
2792e41f4b71Sopenharmony_ci    console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
2793e41f4b71Sopenharmony_ci  });
2794e41f4b71Sopenharmony_ci} catch (e) {
2795e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2796e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message} `);
2797e41f4b71Sopenharmony_ci}
2798e41f4b71Sopenharmony_ci```
2799e41f4b71Sopenharmony_ci
2800e41f4b71Sopenharmony_ci### delete
2801e41f4b71Sopenharmony_ci
2802e41f4b71Sopenharmony_cidelete(key: string, callback: AsyncCallback&lt;void&gt;): void
2803e41f4b71Sopenharmony_ci
2804e41f4b71Sopenharmony_ci从数据库中删除指定键值的数据,使用callback异步回调。
2805e41f4b71Sopenharmony_ci
2806e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2807e41f4b71Sopenharmony_ci
2808e41f4b71Sopenharmony_ci**参数:**
2809e41f4b71Sopenharmony_ci
2810e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                                                         |
2811e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
2812e41f4b71Sopenharmony_ci| key      | string                    | 是   | 要删除数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
2813e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。删除指定的数据成功,err为undefined,否则为错误对象。         |
2814e41f4b71Sopenharmony_ci
2815e41f4b71Sopenharmony_ci**错误码:**
2816e41f4b71Sopenharmony_ci
2817e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
2818e41f4b71Sopenharmony_ci
2819e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
2820e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
2821e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2822e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
2823e41f4b71Sopenharmony_ci| 15100005    | Database or result set already closed. |
2824e41f4b71Sopenharmony_ci
2825e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
2826e41f4b71Sopenharmony_ci
2827e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
2828e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
2829e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
2830e41f4b71Sopenharmony_ci
2831e41f4b71Sopenharmony_ci**示例:**
2832e41f4b71Sopenharmony_ci
2833e41f4b71Sopenharmony_ci```ts
2834e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2835e41f4b71Sopenharmony_ci
2836e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
2837e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
2838e41f4b71Sopenharmony_citry {
2839e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, (err: BusinessError) => {
2840e41f4b71Sopenharmony_ci    if (err != undefined) {
2841e41f4b71Sopenharmony_ci      console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
2842e41f4b71Sopenharmony_ci      return;
2843e41f4b71Sopenharmony_ci    }
2844e41f4b71Sopenharmony_ci    console.info('Succeeded in putting');
2845e41f4b71Sopenharmony_ci    if (kvStore != null) {
2846e41f4b71Sopenharmony_ci      kvStore.delete(KEY_TEST_STRING_ELEMENT, (err: BusinessError) => {
2847e41f4b71Sopenharmony_ci        if (err != undefined) {
2848e41f4b71Sopenharmony_ci          console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
2849e41f4b71Sopenharmony_ci          return;
2850e41f4b71Sopenharmony_ci        }
2851e41f4b71Sopenharmony_ci        console.info('Succeeded in deleting');
2852e41f4b71Sopenharmony_ci      });
2853e41f4b71Sopenharmony_ci    }
2854e41f4b71Sopenharmony_ci  });
2855e41f4b71Sopenharmony_ci} catch (e) {
2856e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2857e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
2858e41f4b71Sopenharmony_ci}
2859e41f4b71Sopenharmony_ci```
2860e41f4b71Sopenharmony_ci
2861e41f4b71Sopenharmony_ci### delete
2862e41f4b71Sopenharmony_ci
2863e41f4b71Sopenharmony_cidelete(key: string): Promise&lt;void&gt;
2864e41f4b71Sopenharmony_ci
2865e41f4b71Sopenharmony_ci从数据库中删除指定键值的数据,使用Promise异步回调。
2866e41f4b71Sopenharmony_ci
2867e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2868e41f4b71Sopenharmony_ci
2869e41f4b71Sopenharmony_ci**参数:**
2870e41f4b71Sopenharmony_ci
2871e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                                                         |
2872e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------------------------------------------------ |
2873e41f4b71Sopenharmony_ci| key    | string   | 是   | 要删除数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
2874e41f4b71Sopenharmony_ci
2875e41f4b71Sopenharmony_ci**返回值:**
2876e41f4b71Sopenharmony_ci
2877e41f4b71Sopenharmony_ci| 类型                | 说明                      |
2878e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
2879e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
2880e41f4b71Sopenharmony_ci
2881e41f4b71Sopenharmony_ci**错误码:**
2882e41f4b71Sopenharmony_ci
2883e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
2884e41f4b71Sopenharmony_ci
2885e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
2886e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
2887e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2888e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                      |
2889e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
2890e41f4b71Sopenharmony_ci
2891e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
2892e41f4b71Sopenharmony_ci
2893e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
2894e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
2895e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
2896e41f4b71Sopenharmony_ci
2897e41f4b71Sopenharmony_ci**示例:**
2898e41f4b71Sopenharmony_ci
2899e41f4b71Sopenharmony_ci```ts
2900e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2901e41f4b71Sopenharmony_ci
2902e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
2903e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
2904e41f4b71Sopenharmony_citry {
2905e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
2906e41f4b71Sopenharmony_ci    console.info(`Succeeded in putting data`);
2907e41f4b71Sopenharmony_ci    if (kvStore != null) {
2908e41f4b71Sopenharmony_ci      kvStore.delete(KEY_TEST_STRING_ELEMENT).then(() => {
2909e41f4b71Sopenharmony_ci        console.info('Succeeded in deleting');
2910e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
2911e41f4b71Sopenharmony_ci        console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
2912e41f4b71Sopenharmony_ci      });
2913e41f4b71Sopenharmony_ci    }
2914e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
2915e41f4b71Sopenharmony_ci    console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
2916e41f4b71Sopenharmony_ci  });
2917e41f4b71Sopenharmony_ci} catch (e) {
2918e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2919e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
2920e41f4b71Sopenharmony_ci}
2921e41f4b71Sopenharmony_ci```
2922e41f4b71Sopenharmony_ci
2923e41f4b71Sopenharmony_ci### deleteBatch
2924e41f4b71Sopenharmony_ci
2925e41f4b71Sopenharmony_cideleteBatch(keys: string[], callback: AsyncCallback&lt;void&gt;): void
2926e41f4b71Sopenharmony_ci
2927e41f4b71Sopenharmony_ci批量删除SingleKVStore数据库中的键值对,使用callback异步回调。
2928e41f4b71Sopenharmony_ci
2929e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
2930e41f4b71Sopenharmony_ci
2931e41f4b71Sopenharmony_ci**参数:**
2932e41f4b71Sopenharmony_ci
2933e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                     |
2934e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------ |
2935e41f4b71Sopenharmony_ci| keys     | string[]                  | 是   | 表示要批量删除的键值对,不能为空。 |
2936e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。批量删除指定的数据成功,err为undefined,否则为错误对象。 |
2937e41f4b71Sopenharmony_ci
2938e41f4b71Sopenharmony_ci**错误码:**
2939e41f4b71Sopenharmony_ci
2940e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
2941e41f4b71Sopenharmony_ci
2942e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
2943e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
2944e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
2945e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                      |
2946e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
2947e41f4b71Sopenharmony_ci
2948e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
2949e41f4b71Sopenharmony_ci
2950e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
2951e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
2952e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
2953e41f4b71Sopenharmony_ci
2954e41f4b71Sopenharmony_ci**示例:**
2955e41f4b71Sopenharmony_ci
2956e41f4b71Sopenharmony_ci```ts
2957e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
2958e41f4b71Sopenharmony_ci
2959e41f4b71Sopenharmony_citry {
2960e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
2961e41f4b71Sopenharmony_ci  let keys: string[] = [];
2962e41f4b71Sopenharmony_ci  for (let i = 0; i < 5; i++) {
2963e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
2964e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
2965e41f4b71Sopenharmony_ci      key: key + i,
2966e41f4b71Sopenharmony_ci      value: {
2967e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
2968e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
2969e41f4b71Sopenharmony_ci      }
2970e41f4b71Sopenharmony_ci    }
2971e41f4b71Sopenharmony_ci    entries.push(entry);
2972e41f4b71Sopenharmony_ci    keys.push(key + i);
2973e41f4b71Sopenharmony_ci  }
2974e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
2975e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
2976e41f4b71Sopenharmony_ci    if (err != undefined) {
2977e41f4b71Sopenharmony_ci      console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
2978e41f4b71Sopenharmony_ci      return;
2979e41f4b71Sopenharmony_ci    }
2980e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
2981e41f4b71Sopenharmony_ci    if (kvStore != null) {
2982e41f4b71Sopenharmony_ci      kvStore.deleteBatch(keys, async (err: BusinessError) => {
2983e41f4b71Sopenharmony_ci        if (err != undefined) {
2984e41f4b71Sopenharmony_ci          console.error(`Failed to delete Batch.code is ${err.code},message is ${err.message}`);
2985e41f4b71Sopenharmony_ci          return;
2986e41f4b71Sopenharmony_ci        }
2987e41f4b71Sopenharmony_ci        console.info('Succeeded in deleting Batch');
2988e41f4b71Sopenharmony_ci      });
2989e41f4b71Sopenharmony_ci    }
2990e41f4b71Sopenharmony_ci  });
2991e41f4b71Sopenharmony_ci} catch (e) {
2992e41f4b71Sopenharmony_ci  let error = e as BusinessError;
2993e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
2994e41f4b71Sopenharmony_ci}
2995e41f4b71Sopenharmony_ci```
2996e41f4b71Sopenharmony_ci
2997e41f4b71Sopenharmony_ci### deleteBatch
2998e41f4b71Sopenharmony_ci
2999e41f4b71Sopenharmony_cideleteBatch(keys: string[]): Promise&lt;void&gt;
3000e41f4b71Sopenharmony_ci
3001e41f4b71Sopenharmony_ci批量删除SingleKVStore数据库中的键值对,使用Promise异步回调。
3002e41f4b71Sopenharmony_ci
3003e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3004e41f4b71Sopenharmony_ci
3005e41f4b71Sopenharmony_ci**参数:**
3006e41f4b71Sopenharmony_ci
3007e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                     |
3008e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------------ |
3009e41f4b71Sopenharmony_ci| keys   | string[] | 是   | 表示要批量删除的键值对,不能为空。 |
3010e41f4b71Sopenharmony_ci
3011e41f4b71Sopenharmony_ci**返回值:**
3012e41f4b71Sopenharmony_ci
3013e41f4b71Sopenharmony_ci| 类型                | 说明                      |
3014e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
3015e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
3016e41f4b71Sopenharmony_ci
3017e41f4b71Sopenharmony_ci**错误码:**
3018e41f4b71Sopenharmony_ci
3019e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3020e41f4b71Sopenharmony_ci
3021e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
3022e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
3023e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
3024e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                      |
3025e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
3026e41f4b71Sopenharmony_ci
3027e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
3028e41f4b71Sopenharmony_ci
3029e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
3030e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
3031e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
3032e41f4b71Sopenharmony_ci
3033e41f4b71Sopenharmony_ci**示例:**
3034e41f4b71Sopenharmony_ci
3035e41f4b71Sopenharmony_ci```ts
3036e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3037e41f4b71Sopenharmony_ci
3038e41f4b71Sopenharmony_citry {
3039e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3040e41f4b71Sopenharmony_ci  let keys: string[] = [];
3041e41f4b71Sopenharmony_ci  for (let i = 0; i < 5; i++) {
3042e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
3043e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3044e41f4b71Sopenharmony_ci      key: key + i,
3045e41f4b71Sopenharmony_ci      value: {
3046e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
3047e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
3048e41f4b71Sopenharmony_ci      }
3049e41f4b71Sopenharmony_ci    }
3050e41f4b71Sopenharmony_ci    entries.push(entry);
3051e41f4b71Sopenharmony_ci    keys.push(key + i);
3052e41f4b71Sopenharmony_ci  }
3053e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
3054e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
3055e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
3056e41f4b71Sopenharmony_ci    if (kvStore != null) {
3057e41f4b71Sopenharmony_ci      kvStore.deleteBatch(keys).then(() => {
3058e41f4b71Sopenharmony_ci        console.info('Succeeded in deleting Batch');
3059e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
3060e41f4b71Sopenharmony_ci        console.error(`Failed to delete Batch.code is ${err.code},message is ${err.message}`);
3061e41f4b71Sopenharmony_ci      });
3062e41f4b71Sopenharmony_ci    }
3063e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3064e41f4b71Sopenharmony_ci    console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
3065e41f4b71Sopenharmony_ci  });
3066e41f4b71Sopenharmony_ci} catch (e) {
3067e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3068e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
3069e41f4b71Sopenharmony_ci}
3070e41f4b71Sopenharmony_ci```
3071e41f4b71Sopenharmony_ci
3072e41f4b71Sopenharmony_ci### removeDeviceData
3073e41f4b71Sopenharmony_ci
3074e41f4b71Sopenharmony_ciremoveDeviceData(deviceId: string, callback: AsyncCallback&lt;void&gt;): void
3075e41f4b71Sopenharmony_ci
3076e41f4b71Sopenharmony_ci删除指定设备的数据,使用callback异步回调。
3077e41f4b71Sopenharmony_ci> **说明:** 
3078e41f4b71Sopenharmony_ci>
3079e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
3080e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)
3081e41f4b71Sopenharmony_ci
3082e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
3083e41f4b71Sopenharmony_ci
3084e41f4b71Sopenharmony_ci**参数:**
3085e41f4b71Sopenharmony_ci
3086e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                   |
3087e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------------------- |
3088e41f4b71Sopenharmony_ci| deviceId | string                    | 是   | 表示要删除设备的名称。 |
3089e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。删除指定设备的数据成功,err为undefined,否则为错误对象。    |
3090e41f4b71Sopenharmony_ci
3091e41f4b71Sopenharmony_ci**错误码:**
3092e41f4b71Sopenharmony_ci
3093e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3094e41f4b71Sopenharmony_ci
3095e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3096e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3097e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
3098e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3099e41f4b71Sopenharmony_ci
3100e41f4b71Sopenharmony_ci**示例:**
3101e41f4b71Sopenharmony_ci
3102e41f4b71Sopenharmony_ci```ts
3103e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3104e41f4b71Sopenharmony_ci
3105e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
3106e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-string-002';
3107e41f4b71Sopenharmony_citry {
3108e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async (err: BusinessError) => {
3109e41f4b71Sopenharmony_ci    console.info('Succeeded in putting data');
3110e41f4b71Sopenharmony_ci    const deviceid = 'no_exist_device_id';
3111e41f4b71Sopenharmony_ci    if (kvStore != null) {
3112e41f4b71Sopenharmony_ci      kvStore.removeDeviceData(deviceid, async (err: BusinessError) => {
3113e41f4b71Sopenharmony_ci        if (err == undefined) {
3114e41f4b71Sopenharmony_ci          console.info('succeeded in removing device data');
3115e41f4b71Sopenharmony_ci        } else {
3116e41f4b71Sopenharmony_ci          console.error(`Failed to remove device data.code is ${err.code},message is ${err.message} `);
3117e41f4b71Sopenharmony_ci          if (kvStore != null) {
3118e41f4b71Sopenharmony_ci            kvStore.get(KEY_TEST_STRING_ELEMENT, async (err: BusinessError, data: boolean | string | number | Uint8Array) => {
3119e41f4b71Sopenharmony_ci              console.info('Succeeded in getting data');
3120e41f4b71Sopenharmony_ci            });
3121e41f4b71Sopenharmony_ci          }
3122e41f4b71Sopenharmony_ci        }
3123e41f4b71Sopenharmony_ci      });
3124e41f4b71Sopenharmony_ci    }
3125e41f4b71Sopenharmony_ci  });
3126e41f4b71Sopenharmony_ci} catch (e) {
3127e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3128e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`)
3129e41f4b71Sopenharmony_ci}
3130e41f4b71Sopenharmony_ci```
3131e41f4b71Sopenharmony_ci
3132e41f4b71Sopenharmony_ci### removeDeviceData
3133e41f4b71Sopenharmony_ci
3134e41f4b71Sopenharmony_ciremoveDeviceData(deviceId: string): Promise&lt;void&gt;
3135e41f4b71Sopenharmony_ci
3136e41f4b71Sopenharmony_ci删除指定设备的数据,使用Promise异步回调。
3137e41f4b71Sopenharmony_ci> **说明:** 
3138e41f4b71Sopenharmony_ci>
3139e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
3140e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)
3141e41f4b71Sopenharmony_ci
3142e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
3143e41f4b71Sopenharmony_ci
3144e41f4b71Sopenharmony_ci**参数:**
3145e41f4b71Sopenharmony_ci
3146e41f4b71Sopenharmony_ci| 参数名   | 类型 | 必填 | 说明                   |
3147e41f4b71Sopenharmony_ci| -------- | -------- | ---- | ---------------------- |
3148e41f4b71Sopenharmony_ci| deviceId | string   | 是   | 表示要删除设备的名称。 |
3149e41f4b71Sopenharmony_ci
3150e41f4b71Sopenharmony_ci**返回值:**
3151e41f4b71Sopenharmony_ci
3152e41f4b71Sopenharmony_ci| 类型                | 说明                      |
3153e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
3154e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
3155e41f4b71Sopenharmony_ci
3156e41f4b71Sopenharmony_ci**错误码:**
3157e41f4b71Sopenharmony_ci
3158e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3159e41f4b71Sopenharmony_ci
3160e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3161e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3162e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
3163e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3164e41f4b71Sopenharmony_ci
3165e41f4b71Sopenharmony_ci**示例:**
3166e41f4b71Sopenharmony_ci
3167e41f4b71Sopenharmony_ci```ts
3168e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3169e41f4b71Sopenharmony_ci
3170e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
3171e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-string-001';
3172e41f4b71Sopenharmony_citry {
3173e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
3174e41f4b71Sopenharmony_ci    console.info('Succeeded in putting data');
3175e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3176e41f4b71Sopenharmony_ci    console.error(`Failed to put data.code is ${err.code},message is ${err.message} `);
3177e41f4b71Sopenharmony_ci  });
3178e41f4b71Sopenharmony_ci  const deviceid = 'no_exist_device_id';
3179e41f4b71Sopenharmony_ci  kvStore.removeDeviceData(deviceid).then(() => {
3180e41f4b71Sopenharmony_ci    console.info('succeeded in removing device data');
3181e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3182e41f4b71Sopenharmony_ci    console.error(`Failed to remove device data.code is ${err.code},message is ${err.message} `);
3183e41f4b71Sopenharmony_ci  });
3184e41f4b71Sopenharmony_ci  kvStore.get(KEY_TEST_STRING_ELEMENT).then((data: boolean | string | number | Uint8Array) => {
3185e41f4b71Sopenharmony_ci    console.info('Succeeded in getting data');
3186e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3187e41f4b71Sopenharmony_ci    console.error(`Failed to get data.code is ${err.code},message is ${err.message} `);
3188e41f4b71Sopenharmony_ci  });
3189e41f4b71Sopenharmony_ci} catch (e) {
3190e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3191e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`)
3192e41f4b71Sopenharmony_ci}
3193e41f4b71Sopenharmony_ci```
3194e41f4b71Sopenharmony_ci
3195e41f4b71Sopenharmony_ci### get
3196e41f4b71Sopenharmony_ci
3197e41f4b71Sopenharmony_ciget(key: string, callback: AsyncCallback&lt;boolean | string | number | Uint8Array&gt;): void
3198e41f4b71Sopenharmony_ci
3199e41f4b71Sopenharmony_ci获取指定键的值,使用callback异步回调。
3200e41f4b71Sopenharmony_ci
3201e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3202e41f4b71Sopenharmony_ci
3203e41f4b71Sopenharmony_ci**参数:**
3204e41f4b71Sopenharmony_ci
3205e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
3206e41f4b71Sopenharmony_ci| -----  | ------  | ----  | ----------------------- |
3207e41f4b71Sopenharmony_ci| key    |string   | 是    |要查询数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。  |
3208e41f4b71Sopenharmony_ci| callback  |AsyncCallback&lt;boolean \| string \| number \| Uint8Array&gt; | 是    |回调函数。返回获取查询的值。  |
3209e41f4b71Sopenharmony_ci
3210e41f4b71Sopenharmony_ci**错误码:**
3211e41f4b71Sopenharmony_ci
3212e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3213e41f4b71Sopenharmony_ci
3214e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3215e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3216e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
3217e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3218e41f4b71Sopenharmony_ci| 15100004     | Not found.                             |
3219e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3220e41f4b71Sopenharmony_ci
3221e41f4b71Sopenharmony_ci**示例:**
3222e41f4b71Sopenharmony_ci
3223e41f4b71Sopenharmony_ci```ts
3224e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3225e41f4b71Sopenharmony_ci
3226e41f4b71Sopenharmony_ci
3227e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
3228e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
3229e41f4b71Sopenharmony_citry {
3230e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, (err: BusinessError) => {
3231e41f4b71Sopenharmony_ci    if (err != undefined) {
3232e41f4b71Sopenharmony_ci      console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
3233e41f4b71Sopenharmony_ci      return;
3234e41f4b71Sopenharmony_ci    }
3235e41f4b71Sopenharmony_ci    console.info("Succeeded in putting");
3236e41f4b71Sopenharmony_ci    if (kvStore != null) {
3237e41f4b71Sopenharmony_ci      kvStore.get(KEY_TEST_STRING_ELEMENT, (err: BusinessError, data: boolean | string | number | Uint8Array) => {
3238e41f4b71Sopenharmony_ci        if (err != undefined) {
3239e41f4b71Sopenharmony_ci          console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
3240e41f4b71Sopenharmony_ci          return;
3241e41f4b71Sopenharmony_ci        }
3242e41f4b71Sopenharmony_ci        console.info(`Succeeded in getting data.data=${data}`);
3243e41f4b71Sopenharmony_ci      });
3244e41f4b71Sopenharmony_ci    }
3245e41f4b71Sopenharmony_ci  });
3246e41f4b71Sopenharmony_ci} catch (e) {
3247e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3248e41f4b71Sopenharmony_ci  console.error(`Failed to get.code is ${error.code},message is ${error.message}`);
3249e41f4b71Sopenharmony_ci}
3250e41f4b71Sopenharmony_ci```
3251e41f4b71Sopenharmony_ci
3252e41f4b71Sopenharmony_ci### get
3253e41f4b71Sopenharmony_ci
3254e41f4b71Sopenharmony_ciget(key: string): Promise&lt;boolean | string | number | Uint8Array&gt;
3255e41f4b71Sopenharmony_ci
3256e41f4b71Sopenharmony_ci获取指定键的值,使用Promise异步回调。
3257e41f4b71Sopenharmony_ci
3258e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3259e41f4b71Sopenharmony_ci
3260e41f4b71Sopenharmony_ci**参数:**
3261e41f4b71Sopenharmony_ci
3262e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                                                         |
3263e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------------------------------------------------ |
3264e41f4b71Sopenharmony_ci| key    | string   | 是   | 要查询数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
3265e41f4b71Sopenharmony_ci
3266e41f4b71Sopenharmony_ci**返回值:**
3267e41f4b71Sopenharmony_ci
3268e41f4b71Sopenharmony_ci| 类型    | 说明       |
3269e41f4b71Sopenharmony_ci| ------  | -------   |
3270e41f4b71Sopenharmony_ci|Promise&lt;Uint8Array \| string \| boolean \| number&gt; |Promise对象。返回获取查询的值。|
3271e41f4b71Sopenharmony_ci
3272e41f4b71Sopenharmony_ci**错误码:**
3273e41f4b71Sopenharmony_ci
3274e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3275e41f4b71Sopenharmony_ci
3276e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3277e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3278e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
3279e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3280e41f4b71Sopenharmony_ci| 15100004     | Not found.                             |
3281e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3282e41f4b71Sopenharmony_ci
3283e41f4b71Sopenharmony_ci**示例:**
3284e41f4b71Sopenharmony_ci
3285e41f4b71Sopenharmony_ci```ts
3286e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3287e41f4b71Sopenharmony_ci
3288e41f4b71Sopenharmony_ci
3289e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
3290e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
3291e41f4b71Sopenharmony_citry {
3292e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
3293e41f4b71Sopenharmony_ci    console.info(`Succeeded in putting data`);
3294e41f4b71Sopenharmony_ci    if (kvStore != null) {
3295e41f4b71Sopenharmony_ci      kvStore.get(KEY_TEST_STRING_ELEMENT).then((data: boolean | string | number | Uint8Array) => {
3296e41f4b71Sopenharmony_ci        console.info(`Succeeded in getting data.data=${data}`);
3297e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
3298e41f4b71Sopenharmony_ci        console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
3299e41f4b71Sopenharmony_ci      });
3300e41f4b71Sopenharmony_ci    }
3301e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3302e41f4b71Sopenharmony_ci    console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
3303e41f4b71Sopenharmony_ci  });
3304e41f4b71Sopenharmony_ci} catch (e) {
3305e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3306e41f4b71Sopenharmony_ci  console.error(`Failed to get.code is ${error.code},message is ${error.message}`);
3307e41f4b71Sopenharmony_ci}
3308e41f4b71Sopenharmony_ci```
3309e41f4b71Sopenharmony_ci
3310e41f4b71Sopenharmony_ci### getEntries
3311e41f4b71Sopenharmony_ci
3312e41f4b71Sopenharmony_cigetEntries(keyPrefix: string, callback: AsyncCallback&lt;Entry[]&gt;): void
3313e41f4b71Sopenharmony_ci
3314e41f4b71Sopenharmony_ci获取匹配指定键前缀的所有键值对,使用callback异步回调。
3315e41f4b71Sopenharmony_ci
3316e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3317e41f4b71Sopenharmony_ci
3318e41f4b71Sopenharmony_ci**参数:**
3319e41f4b71Sopenharmony_ci
3320e41f4b71Sopenharmony_ci| 参数名    | 类型                               | 必填 | 说明                                     |
3321e41f4b71Sopenharmony_ci| --------- | -------------------------------------- | ---- | ---------------------------------------- |
3322e41f4b71Sopenharmony_ci| keyPrefix | string                                 | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
3323e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;[Entry](#entry)[]&gt; | 是   | 回调函数。返回匹配指定前缀的键值对列表。 |
3324e41f4b71Sopenharmony_ci
3325e41f4b71Sopenharmony_ci**错误码:**
3326e41f4b71Sopenharmony_ci
3327e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3328e41f4b71Sopenharmony_ci
3329e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3330e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3331e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3332e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3333e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3334e41f4b71Sopenharmony_ci
3335e41f4b71Sopenharmony_ci**示例:**
3336e41f4b71Sopenharmony_ci
3337e41f4b71Sopenharmony_ci```ts
3338e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3339e41f4b71Sopenharmony_ci
3340e41f4b71Sopenharmony_citry {
3341e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3342e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3343e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
3344e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3345e41f4b71Sopenharmony_ci      key: key + i,
3346e41f4b71Sopenharmony_ci      value: {
3347e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
3348e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
3349e41f4b71Sopenharmony_ci      }
3350e41f4b71Sopenharmony_ci    }
3351e41f4b71Sopenharmony_ci    entries.push(entry);
3352e41f4b71Sopenharmony_ci  }
3353e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
3354e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
3355e41f4b71Sopenharmony_ci    if (err != undefined) {
3356e41f4b71Sopenharmony_ci      console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
3357e41f4b71Sopenharmony_ci      return;
3358e41f4b71Sopenharmony_ci    }
3359e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
3360e41f4b71Sopenharmony_ci    if (kvStore != null) {
3361e41f4b71Sopenharmony_ci      kvStore.getEntries('batch_test_string_key', (err: BusinessError, entries: distributedKVStore.Entry[]) => {
3362e41f4b71Sopenharmony_ci        if (err != undefined) {
3363e41f4b71Sopenharmony_ci          console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
3364e41f4b71Sopenharmony_ci          return;
3365e41f4b71Sopenharmony_ci        }
3366e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
3367e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
3368e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
3369e41f4b71Sopenharmony_ci      });
3370e41f4b71Sopenharmony_ci    }
3371e41f4b71Sopenharmony_ci  });
3372e41f4b71Sopenharmony_ci} catch (e) {
3373e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3374e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message} `);
3375e41f4b71Sopenharmony_ci}
3376e41f4b71Sopenharmony_ci```
3377e41f4b71Sopenharmony_ci
3378e41f4b71Sopenharmony_ci### getEntries
3379e41f4b71Sopenharmony_ci
3380e41f4b71Sopenharmony_cigetEntries(keyPrefix: string): Promise&lt;Entry[]&gt;
3381e41f4b71Sopenharmony_ci
3382e41f4b71Sopenharmony_ci获取匹配指定键前缀的所有键值对,使用Promise异步回调。
3383e41f4b71Sopenharmony_ci
3384e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3385e41f4b71Sopenharmony_ci
3386e41f4b71Sopenharmony_ci**参数:**
3387e41f4b71Sopenharmony_ci
3388e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                 |
3389e41f4b71Sopenharmony_ci| --------- | -------- | ---- | -------------------- |
3390e41f4b71Sopenharmony_ci| keyPrefix | string   | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
3391e41f4b71Sopenharmony_ci
3392e41f4b71Sopenharmony_ci**返回值:**
3393e41f4b71Sopenharmony_ci
3394e41f4b71Sopenharmony_ci| 类型                             | 说明                                        |
3395e41f4b71Sopenharmony_ci| -------------------------------- | ------------------------------------------- |
3396e41f4b71Sopenharmony_ci| Promise&lt;[Entry](#entry)[]&gt; | Promise对象。返回匹配指定前缀的键值对列表。 |
3397e41f4b71Sopenharmony_ci
3398e41f4b71Sopenharmony_ci**错误码:**
3399e41f4b71Sopenharmony_ci
3400e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3401e41f4b71Sopenharmony_ci
3402e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3403e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3404e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3405e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3406e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3407e41f4b71Sopenharmony_ci
3408e41f4b71Sopenharmony_ci**示例:**
3409e41f4b71Sopenharmony_ci
3410e41f4b71Sopenharmony_ci```ts
3411e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3412e41f4b71Sopenharmony_ci
3413e41f4b71Sopenharmony_ci
3414e41f4b71Sopenharmony_citry {
3415e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3416e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3417e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
3418e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3419e41f4b71Sopenharmony_ci      key: key + i,
3420e41f4b71Sopenharmony_ci      value: {
3421e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
3422e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
3423e41f4b71Sopenharmony_ci      }
3424e41f4b71Sopenharmony_ci    }
3425e41f4b71Sopenharmony_ci    entries.push(entry);
3426e41f4b71Sopenharmony_ci  }
3427e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
3428e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
3429e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
3430e41f4b71Sopenharmony_ci    if (kvStore != null) {
3431e41f4b71Sopenharmony_ci      kvStore.getEntries('batch_test_string_key').then((entries: distributedKVStore.Entry[]) => {
3432e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
3433e41f4b71Sopenharmony_ci        console.info(`PutBatch ${entries}`);
3434e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
3435e41f4b71Sopenharmony_ci        console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
3436e41f4b71Sopenharmony_ci      });
3437e41f4b71Sopenharmony_ci    }
3438e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3439e41f4b71Sopenharmony_ci    console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
3440e41f4b71Sopenharmony_ci  });
3441e41f4b71Sopenharmony_ci} catch (e) {
3442e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3443e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message} `);
3444e41f4b71Sopenharmony_ci}
3445e41f4b71Sopenharmony_ci```
3446e41f4b71Sopenharmony_ci
3447e41f4b71Sopenharmony_ci### getEntries
3448e41f4b71Sopenharmony_ci
3449e41f4b71Sopenharmony_cigetEntries(query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void
3450e41f4b71Sopenharmony_ci
3451e41f4b71Sopenharmony_ci获取与指定Query对象匹配的键值对列表,使用callback异步回调。
3452e41f4b71Sopenharmony_ci
3453e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3454e41f4b71Sopenharmony_ci
3455e41f4b71Sopenharmony_ci**参数:**
3456e41f4b71Sopenharmony_ci
3457e41f4b71Sopenharmony_ci| 参数名   | 类型                               | 必填 | 说明                                            |
3458e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ----------------------------------------------- |
3459e41f4b71Sopenharmony_ci| query    | [Query](#query)                         | 是   | 表示要匹配的键前缀。                            |
3460e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;[Entry](#entry)[]&gt; | 是   | 回调函数。返回与指定Query对象匹配的键值对列表。 |
3461e41f4b71Sopenharmony_ci
3462e41f4b71Sopenharmony_ci**错误码:**
3463e41f4b71Sopenharmony_ci
3464e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3465e41f4b71Sopenharmony_ci
3466e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3467e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3468e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3469e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3470e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3471e41f4b71Sopenharmony_ci
3472e41f4b71Sopenharmony_ci**示例:**
3473e41f4b71Sopenharmony_ci
3474e41f4b71Sopenharmony_ci```ts
3475e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3476e41f4b71Sopenharmony_ci
3477e41f4b71Sopenharmony_citry {
3478e41f4b71Sopenharmony_ci  let arr = new Uint8Array([21, 31]);
3479e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3480e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3481e41f4b71Sopenharmony_ci    let key = 'batch_test_bool_key';
3482e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3483e41f4b71Sopenharmony_ci      key: key + i,
3484e41f4b71Sopenharmony_ci      value: {
3485e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.BYTE_ARRAY,
3486e41f4b71Sopenharmony_ci        value: arr
3487e41f4b71Sopenharmony_ci      }
3488e41f4b71Sopenharmony_ci    }
3489e41f4b71Sopenharmony_ci    entries.push(entry);
3490e41f4b71Sopenharmony_ci  }
3491e41f4b71Sopenharmony_ci  console.info(`entries: {entries}`);
3492e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
3493e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
3494e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
3495e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
3496e41f4b71Sopenharmony_ci    if (kvStore != null) {
3497e41f4b71Sopenharmony_ci      kvStore.getEntries(query, (err: BusinessError, entries: distributedKVStore.Entry[]) => {
3498e41f4b71Sopenharmony_ci        if (err != undefined) {
3499e41f4b71Sopenharmony_ci          console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
3500e41f4b71Sopenharmony_ci          return;
3501e41f4b71Sopenharmony_ci        }
3502e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
3503e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
3504e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
3505e41f4b71Sopenharmony_ci      });
3506e41f4b71Sopenharmony_ci    }
3507e41f4b71Sopenharmony_ci  });
3508e41f4b71Sopenharmony_ci} catch (e) {
3509e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3510e41f4b71Sopenharmony_ci  console.error(`Failed to get Entries.code is ${error.code},message is ${error.message}`);
3511e41f4b71Sopenharmony_ci}
3512e41f4b71Sopenharmony_ci```
3513e41f4b71Sopenharmony_ci
3514e41f4b71Sopenharmony_ci### getEntries
3515e41f4b71Sopenharmony_ci
3516e41f4b71Sopenharmony_cigetEntries(query: Query): Promise&lt;Entry[]&gt;
3517e41f4b71Sopenharmony_ci
3518e41f4b71Sopenharmony_ci获取与指定Query对象匹配的键值对列表,使用Promise异步回调。
3519e41f4b71Sopenharmony_ci
3520e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3521e41f4b71Sopenharmony_ci
3522e41f4b71Sopenharmony_ci**参数:**
3523e41f4b71Sopenharmony_ci
3524e41f4b71Sopenharmony_ci| 参数名 | 类型       | 必填 | 说明           |
3525e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | -------------- |
3526e41f4b71Sopenharmony_ci| query  | [Query](#query) | 是   | 表示查询对象。 |
3527e41f4b71Sopenharmony_ci
3528e41f4b71Sopenharmony_ci**返回值:**
3529e41f4b71Sopenharmony_ci
3530e41f4b71Sopenharmony_ci| 类型                             | 说明                                               |
3531e41f4b71Sopenharmony_ci| -------------------------------- | -------------------------------------------------- |
3532e41f4b71Sopenharmony_ci| Promise&lt;[Entry](#entry)[]&gt; | Promise对象。返回与指定Query对象匹配的键值对列表。 |
3533e41f4b71Sopenharmony_ci
3534e41f4b71Sopenharmony_ci**错误码:**
3535e41f4b71Sopenharmony_ci
3536e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3537e41f4b71Sopenharmony_ci
3538e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3539e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3540e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3541e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3542e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3543e41f4b71Sopenharmony_ci
3544e41f4b71Sopenharmony_ci**示例:**
3545e41f4b71Sopenharmony_ci
3546e41f4b71Sopenharmony_ci```ts
3547e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3548e41f4b71Sopenharmony_ci
3549e41f4b71Sopenharmony_citry {
3550e41f4b71Sopenharmony_ci  let arr = new Uint8Array([21, 31]);
3551e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3552e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3553e41f4b71Sopenharmony_ci    let key = 'batch_test_bool_key';
3554e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3555e41f4b71Sopenharmony_ci      key: key + i,
3556e41f4b71Sopenharmony_ci      value: {
3557e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.BYTE_ARRAY,
3558e41f4b71Sopenharmony_ci        value: arr
3559e41f4b71Sopenharmony_ci      }
3560e41f4b71Sopenharmony_ci    }
3561e41f4b71Sopenharmony_ci    entries.push(entry);
3562e41f4b71Sopenharmony_ci  }
3563e41f4b71Sopenharmony_ci  console.info(`entries: {entries}`);
3564e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
3565e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
3566e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
3567e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
3568e41f4b71Sopenharmony_ci    if (kvStore != null) {
3569e41f4b71Sopenharmony_ci      kvStore.getEntries(query).then((entries: distributedKVStore.Entry[]) => {
3570e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
3571e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
3572e41f4b71Sopenharmony_ci        console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
3573e41f4b71Sopenharmony_ci      });
3574e41f4b71Sopenharmony_ci    }
3575e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3576e41f4b71Sopenharmony_ci    console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`)
3577e41f4b71Sopenharmony_ci  });
3578e41f4b71Sopenharmony_ci  console.info('Succeeded in getting Entries');
3579e41f4b71Sopenharmony_ci} catch (e) {
3580e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3581e41f4b71Sopenharmony_ci  console.error(`Failed to get Entries.code is ${error.code},message is ${error.message}`);
3582e41f4b71Sopenharmony_ci}
3583e41f4b71Sopenharmony_ci```
3584e41f4b71Sopenharmony_ci
3585e41f4b71Sopenharmony_ci### getResultSet
3586e41f4b71Sopenharmony_ci
3587e41f4b71Sopenharmony_cigetResultSet(keyPrefix: string, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
3588e41f4b71Sopenharmony_ci
3589e41f4b71Sopenharmony_ci从SingleKVStore数据库中获取具有指定前缀的结果集,使用callback异步回调。
3590e41f4b71Sopenharmony_ci
3591e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3592e41f4b71Sopenharmony_ci
3593e41f4b71Sopenharmony_ci**参数:**
3594e41f4b71Sopenharmony_ci
3595e41f4b71Sopenharmony_ci| 参数名    | 类型                                                   | 必填 | 说明                                 |
3596e41f4b71Sopenharmony_ci| --------- | ---------------------------------------------------------- | ---- | ------------------------------------ |
3597e41f4b71Sopenharmony_ci| keyPrefix | string                                                     | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。                 |
3598e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | 是   | 回调函数。返回具有指定前缀的结果集。 |
3599e41f4b71Sopenharmony_ci
3600e41f4b71Sopenharmony_ci**错误码:**
3601e41f4b71Sopenharmony_ci
3602e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3603e41f4b71Sopenharmony_ci
3604e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3605e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3606e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
3607e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
3608e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3609e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3610e41f4b71Sopenharmony_ci
3611e41f4b71Sopenharmony_ci
3612e41f4b71Sopenharmony_ci**示例:**
3613e41f4b71Sopenharmony_ci
3614e41f4b71Sopenharmony_ci```ts
3615e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3616e41f4b71Sopenharmony_ci
3617e41f4b71Sopenharmony_citry {
3618e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
3619e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3620e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3621e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
3622e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3623e41f4b71Sopenharmony_ci      key: key + i,
3624e41f4b71Sopenharmony_ci      value: {
3625e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
3626e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
3627e41f4b71Sopenharmony_ci      }
3628e41f4b71Sopenharmony_ci    }
3629e41f4b71Sopenharmony_ci    entries.push(entry);
3630e41f4b71Sopenharmony_ci  }
3631e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
3632e41f4b71Sopenharmony_ci    if (err != undefined) {
3633e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
3634e41f4b71Sopenharmony_ci      return;
3635e41f4b71Sopenharmony_ci    }
3636e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
3637e41f4b71Sopenharmony_ci    if (kvStore != null) {
3638e41f4b71Sopenharmony_ci      kvStore.getResultSet('batch_test_string_key', async (err: BusinessError, result: distributedKVStore.KVStoreResultSet) => {
3639e41f4b71Sopenharmony_ci        if (err != undefined) {
3640e41f4b71Sopenharmony_ci          console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
3641e41f4b71Sopenharmony_ci          return;
3642e41f4b71Sopenharmony_ci        }
3643e41f4b71Sopenharmony_ci        console.info('Succeeded in getting result set');
3644e41f4b71Sopenharmony_ci        resultSet = result;
3645e41f4b71Sopenharmony_ci        if (kvStore != null) {
3646e41f4b71Sopenharmony_ci          kvStore.closeResultSet(resultSet, (err :BusinessError) => {
3647e41f4b71Sopenharmony_ci            if (err != undefined) {
3648e41f4b71Sopenharmony_ci              console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
3649e41f4b71Sopenharmony_ci              return;
3650e41f4b71Sopenharmony_ci            }
3651e41f4b71Sopenharmony_ci            console.info('Succeeded in closing result set');
3652e41f4b71Sopenharmony_ci          });
3653e41f4b71Sopenharmony_ci        }
3654e41f4b71Sopenharmony_ci      });
3655e41f4b71Sopenharmony_ci    }
3656e41f4b71Sopenharmony_ci  });
3657e41f4b71Sopenharmony_ci} catch (e) {
3658e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3659e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
3660e41f4b71Sopenharmony_ci}
3661e41f4b71Sopenharmony_ci```
3662e41f4b71Sopenharmony_ci
3663e41f4b71Sopenharmony_ci### getResultSet
3664e41f4b71Sopenharmony_ci
3665e41f4b71Sopenharmony_cigetResultSet(keyPrefix: string): Promise&lt;KVStoreResultSet&gt;
3666e41f4b71Sopenharmony_ci
3667e41f4b71Sopenharmony_ci从SingleKVStore数据库中获取具有指定前缀的结果集,使用Promise异步回调。
3668e41f4b71Sopenharmony_ci
3669e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3670e41f4b71Sopenharmony_ci
3671e41f4b71Sopenharmony_ci**参数:**
3672e41f4b71Sopenharmony_ci
3673e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                 |
3674e41f4b71Sopenharmony_ci| --------- | -------- | ---- | -------------------- |
3675e41f4b71Sopenharmony_ci| keyPrefix | string   | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
3676e41f4b71Sopenharmony_ci
3677e41f4b71Sopenharmony_ci**返回值:**
3678e41f4b71Sopenharmony_ci
3679e41f4b71Sopenharmony_ci| 类型                                                 | 说明                                    |
3680e41f4b71Sopenharmony_ci| ---------------------------------------------------- | --------------------------------------- |
3681e41f4b71Sopenharmony_ci| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise对象。返回具有指定前缀的结果集。 |
3682e41f4b71Sopenharmony_ci
3683e41f4b71Sopenharmony_ci**错误码:**
3684e41f4b71Sopenharmony_ci
3685e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3686e41f4b71Sopenharmony_ci
3687e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3688e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3689e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3690e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
3691e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3692e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3693e41f4b71Sopenharmony_ci
3694e41f4b71Sopenharmony_ci**示例:**
3695e41f4b71Sopenharmony_ci
3696e41f4b71Sopenharmony_ci```ts
3697e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3698e41f4b71Sopenharmony_ci
3699e41f4b71Sopenharmony_citry {
3700e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
3701e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3702e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3703e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
3704e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3705e41f4b71Sopenharmony_ci      key: key + i,
3706e41f4b71Sopenharmony_ci      value: {
3707e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
3708e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
3709e41f4b71Sopenharmony_ci      }
3710e41f4b71Sopenharmony_ci    }
3711e41f4b71Sopenharmony_ci    entries.push(entry);
3712e41f4b71Sopenharmony_ci  }
3713e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
3714e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
3715e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3716e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
3717e41f4b71Sopenharmony_ci  });
3718e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
3719e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set');
3720e41f4b71Sopenharmony_ci    resultSet = result;
3721e41f4b71Sopenharmony_ci    if (kvStore != null) {
3722e41f4b71Sopenharmony_ci      kvStore.closeResultSet(resultSet).then(() => {
3723e41f4b71Sopenharmony_ci        console.info('Succeeded in closing result set');
3724e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
3725e41f4b71Sopenharmony_ci        console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
3726e41f4b71Sopenharmony_ci      });
3727e41f4b71Sopenharmony_ci    }
3728e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3729e41f4b71Sopenharmony_ci    console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
3730e41f4b71Sopenharmony_ci  });
3731e41f4b71Sopenharmony_ci} catch (e) {
3732e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3733e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
3734e41f4b71Sopenharmony_ci}
3735e41f4b71Sopenharmony_ci```
3736e41f4b71Sopenharmony_ci
3737e41f4b71Sopenharmony_ci### getResultSet
3738e41f4b71Sopenharmony_ci
3739e41f4b71Sopenharmony_cigetResultSet(query: Query, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
3740e41f4b71Sopenharmony_ci
3741e41f4b71Sopenharmony_ci获取与指定Query对象匹配的KVStoreResultSet对象,使用callback异步回调。
3742e41f4b71Sopenharmony_ci
3743e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3744e41f4b71Sopenharmony_ci
3745e41f4b71Sopenharmony_ci**参数:**
3746e41f4b71Sopenharmony_ci
3747e41f4b71Sopenharmony_ci| 参数名   | 类型                                                   | 必填 | 说明                                                      |
3748e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------------- | ---- | --------------------------------------------------------- |
3749e41f4b71Sopenharmony_ci| query    | Query                                                      | 是   | 表示查询对象。                                            |
3750e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | 是   | 回调函数,获取与指定Query对象匹配的KVStoreResultSet对象。 |
3751e41f4b71Sopenharmony_ci
3752e41f4b71Sopenharmony_ci**错误码:**
3753e41f4b71Sopenharmony_ci
3754e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3755e41f4b71Sopenharmony_ci
3756e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3757e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3758e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3759e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
3760e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3761e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3762e41f4b71Sopenharmony_ci
3763e41f4b71Sopenharmony_ci**示例:**
3764e41f4b71Sopenharmony_ci
3765e41f4b71Sopenharmony_ci```ts
3766e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3767e41f4b71Sopenharmony_ci
3768e41f4b71Sopenharmony_citry {
3769e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
3770e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3771e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3772e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
3773e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3774e41f4b71Sopenharmony_ci      key: key + i,
3775e41f4b71Sopenharmony_ci      value: {
3776e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
3777e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
3778e41f4b71Sopenharmony_ci      }
3779e41f4b71Sopenharmony_ci    }
3780e41f4b71Sopenharmony_ci    entries.push(entry);
3781e41f4b71Sopenharmony_ci  }
3782e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
3783e41f4b71Sopenharmony_ci    if (err != undefined) {
3784e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
3785e41f4b71Sopenharmony_ci      return;
3786e41f4b71Sopenharmony_ci    }
3787e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
3788e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
3789e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
3790e41f4b71Sopenharmony_ci    if (kvStore != null) {
3791e41f4b71Sopenharmony_ci      kvStore.getResultSet(query, async (err: BusinessError, result: distributedKVStore.KVStoreResultSet) => {
3792e41f4b71Sopenharmony_ci        if (err != undefined) {
3793e41f4b71Sopenharmony_ci          console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
3794e41f4b71Sopenharmony_ci          return;
3795e41f4b71Sopenharmony_ci        }
3796e41f4b71Sopenharmony_ci        console.info('Succeeded in getting result set');
3797e41f4b71Sopenharmony_ci      });
3798e41f4b71Sopenharmony_ci    }
3799e41f4b71Sopenharmony_ci  });
3800e41f4b71Sopenharmony_ci} catch (e) {
3801e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3802e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
3803e41f4b71Sopenharmony_ci}
3804e41f4b71Sopenharmony_ci```
3805e41f4b71Sopenharmony_ci
3806e41f4b71Sopenharmony_ci### getResultSet
3807e41f4b71Sopenharmony_ci
3808e41f4b71Sopenharmony_cigetResultSet(query: Query): Promise&lt;KVStoreResultSet&gt;
3809e41f4b71Sopenharmony_ci
3810e41f4b71Sopenharmony_ci获取与指定Query对象匹配的KVStoreResultSet对象,使用Promise异步回调。
3811e41f4b71Sopenharmony_ci
3812e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3813e41f4b71Sopenharmony_ci
3814e41f4b71Sopenharmony_ci**参数:**
3815e41f4b71Sopenharmony_ci
3816e41f4b71Sopenharmony_ci| 参数名 | 类型       | 必填 | 说明           |
3817e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | -------------- |
3818e41f4b71Sopenharmony_ci| query  | [Query](#query) | 是   | 表示查询对象。 |
3819e41f4b71Sopenharmony_ci
3820e41f4b71Sopenharmony_ci**返回值:**
3821e41f4b71Sopenharmony_ci
3822e41f4b71Sopenharmony_ci| 类型                                                 | 说明                                                         |
3823e41f4b71Sopenharmony_ci| ---------------------------------------------------- | ------------------------------------------------------------ |
3824e41f4b71Sopenharmony_ci| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise对象。获取与指定Query对象匹配的KVStoreResultSet对象。 |
3825e41f4b71Sopenharmony_ci
3826e41f4b71Sopenharmony_ci**错误码:**
3827e41f4b71Sopenharmony_ci
3828e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
3829e41f4b71Sopenharmony_ci
3830e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3831e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3832e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3833e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
3834e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
3835e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
3836e41f4b71Sopenharmony_ci
3837e41f4b71Sopenharmony_ci**示例:**
3838e41f4b71Sopenharmony_ci
3839e41f4b71Sopenharmony_ci```ts
3840e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3841e41f4b71Sopenharmony_ci
3842e41f4b71Sopenharmony_citry {
3843e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
3844e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
3845e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
3846e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
3847e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
3848e41f4b71Sopenharmony_ci      key: key + i,
3849e41f4b71Sopenharmony_ci      value: {
3850e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
3851e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
3852e41f4b71Sopenharmony_ci      }
3853e41f4b71Sopenharmony_ci    }
3854e41f4b71Sopenharmony_ci    entries.push(entry);
3855e41f4b71Sopenharmony_ci  }
3856e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
3857e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
3858e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3859e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
3860e41f4b71Sopenharmony_ci  });
3861e41f4b71Sopenharmony_ci  const query = new distributedKVStore.Query();
3862e41f4b71Sopenharmony_ci  query.prefixKey("batch_test");
3863e41f4b71Sopenharmony_ci  kvStore.getResultSet(query).then((result: distributedKVStore.KVStoreResultSet) => {
3864e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set');
3865e41f4b71Sopenharmony_ci    resultSet = result;
3866e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3867e41f4b71Sopenharmony_ci    console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
3868e41f4b71Sopenharmony_ci  });
3869e41f4b71Sopenharmony_ci} catch (e) {
3870e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3871e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
3872e41f4b71Sopenharmony_ci}
3873e41f4b71Sopenharmony_ci```
3874e41f4b71Sopenharmony_ci
3875e41f4b71Sopenharmony_ci### closeResultSet
3876e41f4b71Sopenharmony_ci
3877e41f4b71Sopenharmony_cicloseResultSet(resultSet: KVStoreResultSet, callback: AsyncCallback&lt;void&gt;): void
3878e41f4b71Sopenharmony_ci
3879e41f4b71Sopenharmony_ci关闭由[SingleKvStore.getResultSet](#getresultset-1)返回的KVStoreResultSet对象,使用callback异步回调。
3880e41f4b71Sopenharmony_ci
3881e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3882e41f4b71Sopenharmony_ci
3883e41f4b71Sopenharmony_ci**参数:**
3884e41f4b71Sopenharmony_ci
3885e41f4b71Sopenharmony_ci| 参数名    | 类型                              | 必填 | 说明                               |
3886e41f4b71Sopenharmony_ci| --------- | ------------------------------------- | ---- | ---------------------------------- |
3887e41f4b71Sopenharmony_ci| resultSet | [KVStoreResultSet](#kvstoreresultset) | 是   | 表示要关闭的KVStoreResultSet对象。 |
3888e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;void&gt;             | 是   | 回调函数。关闭KVStoreResultSet对象成功,err为undefined,否则为错误对象。  |
3889e41f4b71Sopenharmony_ci
3890e41f4b71Sopenharmony_ci**错误码:**
3891e41f4b71Sopenharmony_ci
3892e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3893e41f4b71Sopenharmony_ci
3894e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3895e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3896e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3897e41f4b71Sopenharmony_ci
3898e41f4b71Sopenharmony_ci**示例:**
3899e41f4b71Sopenharmony_ci
3900e41f4b71Sopenharmony_ci```ts
3901e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3902e41f4b71Sopenharmony_ci
3903e41f4b71Sopenharmony_cilet resultSet: distributedKVStore.KVStoreResultSet;
3904e41f4b71Sopenharmony_citry {
3905e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key', async (err: BusinessError, result: distributedKVStore.KVStoreResultSet) => {
3906e41f4b71Sopenharmony_ci    if (err != undefined) {
3907e41f4b71Sopenharmony_ci      console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
3908e41f4b71Sopenharmony_ci      return;
3909e41f4b71Sopenharmony_ci    }
3910e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set');
3911e41f4b71Sopenharmony_ci    resultSet = result;
3912e41f4b71Sopenharmony_ci    if (kvStore != null) {
3913e41f4b71Sopenharmony_ci      kvStore.closeResultSet(resultSet, (err: BusinessError) => {
3914e41f4b71Sopenharmony_ci        if (err != undefined) {
3915e41f4b71Sopenharmony_ci          console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
3916e41f4b71Sopenharmony_ci          return;
3917e41f4b71Sopenharmony_ci        }
3918e41f4b71Sopenharmony_ci        console.info('Succeeded in closing result set');
3919e41f4b71Sopenharmony_ci      })
3920e41f4b71Sopenharmony_ci    }
3921e41f4b71Sopenharmony_ci  });
3922e41f4b71Sopenharmony_ci} catch (e) {
3923e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3924e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
3925e41f4b71Sopenharmony_ci}
3926e41f4b71Sopenharmony_ci
3927e41f4b71Sopenharmony_ci```
3928e41f4b71Sopenharmony_ci
3929e41f4b71Sopenharmony_ci### closeResultSet
3930e41f4b71Sopenharmony_ci
3931e41f4b71Sopenharmony_cicloseResultSet(resultSet: KVStoreResultSet): Promise&lt;void&gt;
3932e41f4b71Sopenharmony_ci
3933e41f4b71Sopenharmony_ci关闭由[SingleKvStore.getResultSet](#getresultset-1)返回的KVStoreResultSet对象,使用Promise异步回调。
3934e41f4b71Sopenharmony_ci
3935e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3936e41f4b71Sopenharmony_ci
3937e41f4b71Sopenharmony_ci**参数:**
3938e41f4b71Sopenharmony_ci
3939e41f4b71Sopenharmony_ci| 参数名    | 类型                              | 必填 | 说明                               |
3940e41f4b71Sopenharmony_ci| --------- | ------------------------------------- | ---- | ---------------------------------- |
3941e41f4b71Sopenharmony_ci| resultSet | [KVStoreResultSet](#kvstoreresultset) | 是   | 表示要关闭的KVStoreResultSet对象。 |
3942e41f4b71Sopenharmony_ci
3943e41f4b71Sopenharmony_ci**返回值:**
3944e41f4b71Sopenharmony_ci
3945e41f4b71Sopenharmony_ci| 类型                | 说明                      |
3946e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
3947e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
3948e41f4b71Sopenharmony_ci
3949e41f4b71Sopenharmony_ci**错误码:**
3950e41f4b71Sopenharmony_ci
3951e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3952e41f4b71Sopenharmony_ci
3953e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
3954e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
3955e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
3956e41f4b71Sopenharmony_ci
3957e41f4b71Sopenharmony_ci**示例:**
3958e41f4b71Sopenharmony_ci
3959e41f4b71Sopenharmony_ci```ts
3960e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
3961e41f4b71Sopenharmony_ci
3962e41f4b71Sopenharmony_cilet resultSet: distributedKVStore.KVStoreResultSet;
3963e41f4b71Sopenharmony_citry {
3964e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
3965e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set');
3966e41f4b71Sopenharmony_ci    resultSet = result;
3967e41f4b71Sopenharmony_ci    if (kvStore != null) {
3968e41f4b71Sopenharmony_ci      kvStore.closeResultSet(resultSet).then(() => {
3969e41f4b71Sopenharmony_ci        console.info('Succeeded in closing result set');
3970e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
3971e41f4b71Sopenharmony_ci        console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
3972e41f4b71Sopenharmony_ci      });
3973e41f4b71Sopenharmony_ci    }
3974e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
3975e41f4b71Sopenharmony_ci    console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
3976e41f4b71Sopenharmony_ci  });
3977e41f4b71Sopenharmony_ci
3978e41f4b71Sopenharmony_ci} catch (e) {
3979e41f4b71Sopenharmony_ci  let error = e as BusinessError;
3980e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
3981e41f4b71Sopenharmony_ci}
3982e41f4b71Sopenharmony_ci```
3983e41f4b71Sopenharmony_ci
3984e41f4b71Sopenharmony_ci### getResultSize
3985e41f4b71Sopenharmony_ci
3986e41f4b71Sopenharmony_cigetResultSize(query: Query, callback: AsyncCallback&lt;number&gt;): void
3987e41f4b71Sopenharmony_ci
3988e41f4b71Sopenharmony_ci获取与指定Query对象匹配的结果数,使用callback异步回调。
3989e41f4b71Sopenharmony_ci
3990e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
3991e41f4b71Sopenharmony_ci
3992e41f4b71Sopenharmony_ci**参数:**
3993e41f4b71Sopenharmony_ci
3994e41f4b71Sopenharmony_ci| 参数名   | 类型                    | 必填 | 说明                                        |
3995e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ------------------------------------------- |
3996e41f4b71Sopenharmony_ci| query    | [Query](#query)              | 是   | 表示查询对象。                              |
3997e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。返回与指定Query对象匹配的结果数。 |
3998e41f4b71Sopenharmony_ci
3999e41f4b71Sopenharmony_ci**错误码:**
4000e41f4b71Sopenharmony_ci
4001e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
4002e41f4b71Sopenharmony_ci
4003e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4004e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4005e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
4006e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
4007e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4008e41f4b71Sopenharmony_ci
4009e41f4b71Sopenharmony_ci**示例:**
4010e41f4b71Sopenharmony_ci
4011e41f4b71Sopenharmony_ci```ts
4012e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4013e41f4b71Sopenharmony_ci
4014e41f4b71Sopenharmony_citry {
4015e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
4016e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
4017e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
4018e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
4019e41f4b71Sopenharmony_ci      key: key + i,
4020e41f4b71Sopenharmony_ci      value: {
4021e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
4022e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
4023e41f4b71Sopenharmony_ci      }
4024e41f4b71Sopenharmony_ci    }
4025e41f4b71Sopenharmony_ci    entries.push(entry);
4026e41f4b71Sopenharmony_ci  }
4027e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
4028e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
4029e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
4030e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
4031e41f4b71Sopenharmony_ci    if (kvStore != null) {
4032e41f4b71Sopenharmony_ci      kvStore.getResultSize(query, async (err: BusinessError, resultSize: number) => {
4033e41f4b71Sopenharmony_ci        if (err != undefined) {
4034e41f4b71Sopenharmony_ci          console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
4035e41f4b71Sopenharmony_ci          return;
4036e41f4b71Sopenharmony_ci        }
4037e41f4b71Sopenharmony_ci        console.info('Succeeded in getting result set size');
4038e41f4b71Sopenharmony_ci      });
4039e41f4b71Sopenharmony_ci    }
4040e41f4b71Sopenharmony_ci  });
4041e41f4b71Sopenharmony_ci} catch (e) {
4042e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4043e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
4044e41f4b71Sopenharmony_ci}
4045e41f4b71Sopenharmony_ci```
4046e41f4b71Sopenharmony_ci
4047e41f4b71Sopenharmony_ci### getResultSize
4048e41f4b71Sopenharmony_ci
4049e41f4b71Sopenharmony_cigetResultSize(query: Query): Promise&lt;number&gt;
4050e41f4b71Sopenharmony_ci
4051e41f4b71Sopenharmony_ci获取与指定Query对象匹配的结果数,使用Promise异步回调。
4052e41f4b71Sopenharmony_ci
4053e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4054e41f4b71Sopenharmony_ci
4055e41f4b71Sopenharmony_ci**参数:**
4056e41f4b71Sopenharmony_ci
4057e41f4b71Sopenharmony_ci| 参数名 | 类型       | 必填 | 说明           |
4058e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | -------------- |
4059e41f4b71Sopenharmony_ci| query  | [Query](#query) | 是   | 表示查询对象。 |
4060e41f4b71Sopenharmony_ci
4061e41f4b71Sopenharmony_ci**返回值:**
4062e41f4b71Sopenharmony_ci
4063e41f4b71Sopenharmony_ci| 类型                  | 说明                                            |
4064e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------------------- |
4065e41f4b71Sopenharmony_ci| Promise&lt;number&gt; | Promise对象。获取与指定QuerV9对象匹配的结果数。 |
4066e41f4b71Sopenharmony_ci
4067e41f4b71Sopenharmony_ci**错误码:**
4068e41f4b71Sopenharmony_ci
4069e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
4070e41f4b71Sopenharmony_ci
4071e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4072e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4073e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
4074e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
4075e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4076e41f4b71Sopenharmony_ci
4077e41f4b71Sopenharmony_ci**示例:**
4078e41f4b71Sopenharmony_ci
4079e41f4b71Sopenharmony_ci```ts
4080e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4081e41f4b71Sopenharmony_ci
4082e41f4b71Sopenharmony_citry {
4083e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
4084e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
4085e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
4086e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
4087e41f4b71Sopenharmony_ci      key: key + i,
4088e41f4b71Sopenharmony_ci      value: {
4089e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
4090e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
4091e41f4b71Sopenharmony_ci      }
4092e41f4b71Sopenharmony_ci    }
4093e41f4b71Sopenharmony_ci    entries.push(entry);
4094e41f4b71Sopenharmony_ci  }
4095e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
4096e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
4097e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4098e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
4099e41f4b71Sopenharmony_ci  });
4100e41f4b71Sopenharmony_ci  const query = new distributedKVStore.Query();
4101e41f4b71Sopenharmony_ci  query.prefixKey("batch_test");
4102e41f4b71Sopenharmony_ci  kvStore.getResultSize(query).then((resultSize: number) => {
4103e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set size');
4104e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4105e41f4b71Sopenharmony_ci    console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
4106e41f4b71Sopenharmony_ci  });
4107e41f4b71Sopenharmony_ci} catch (e) {
4108e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4109e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
4110e41f4b71Sopenharmony_ci}
4111e41f4b71Sopenharmony_ci```
4112e41f4b71Sopenharmony_ci
4113e41f4b71Sopenharmony_ci### backup
4114e41f4b71Sopenharmony_ci
4115e41f4b71Sopenharmony_cibackup(file:string, callback: AsyncCallback&lt;void&gt;):void
4116e41f4b71Sopenharmony_ci
4117e41f4b71Sopenharmony_ci以指定名称备份数据库,使用callback异步回调。
4118e41f4b71Sopenharmony_ci
4119e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4120e41f4b71Sopenharmony_ci
4121e41f4b71Sopenharmony_ci**参数:**
4122e41f4b71Sopenharmony_ci
4123e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                                                         |
4124e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
4125e41f4b71Sopenharmony_ci| file     | string                    | 是   | 备份数据库的指定名称,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
4126e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当以指定名称备份数据库成功,err为undefined,否则为错误对象。 |
4127e41f4b71Sopenharmony_ci
4128e41f4b71Sopenharmony_ci**错误码:**
4129e41f4b71Sopenharmony_ci
4130e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
4131e41f4b71Sopenharmony_ci
4132e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4133e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4134e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
4135e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4136e41f4b71Sopenharmony_ci
4137e41f4b71Sopenharmony_ci**示例:**
4138e41f4b71Sopenharmony_ci
4139e41f4b71Sopenharmony_ci```ts
4140e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4141e41f4b71Sopenharmony_ci
4142e41f4b71Sopenharmony_cilet backupFile = "BK001";
4143e41f4b71Sopenharmony_citry {
4144e41f4b71Sopenharmony_ci  kvStore.backup(backupFile, (err: BusinessError) => {
4145e41f4b71Sopenharmony_ci    if (err) {
4146e41f4b71Sopenharmony_ci      console.error(`Failed to backup.code is ${err.code},message is ${err.message} `);
4147e41f4b71Sopenharmony_ci    } else {
4148e41f4b71Sopenharmony_ci      console.info(`Succeeded in backupping data`);
4149e41f4b71Sopenharmony_ci    }
4150e41f4b71Sopenharmony_ci  });
4151e41f4b71Sopenharmony_ci} catch (e) {
4152e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4153e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4154e41f4b71Sopenharmony_ci}
4155e41f4b71Sopenharmony_ci```
4156e41f4b71Sopenharmony_ci
4157e41f4b71Sopenharmony_ci### backup
4158e41f4b71Sopenharmony_ci
4159e41f4b71Sopenharmony_cibackup(file:string): Promise&lt;void&gt;
4160e41f4b71Sopenharmony_ci
4161e41f4b71Sopenharmony_ci以指定名称备份数据库,使用Promise异步回调。
4162e41f4b71Sopenharmony_ci
4163e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4164e41f4b71Sopenharmony_ci
4165e41f4b71Sopenharmony_ci**参数:**
4166e41f4b71Sopenharmony_ci
4167e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                                                         |
4168e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------------------------------------------------ |
4169e41f4b71Sopenharmony_ci| file   | string   | 是   | 备份数据库的指定名称,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
4170e41f4b71Sopenharmony_ci
4171e41f4b71Sopenharmony_ci**返回值:**
4172e41f4b71Sopenharmony_ci
4173e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4174e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4175e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4176e41f4b71Sopenharmony_ci
4177e41f4b71Sopenharmony_ci**错误码:**
4178e41f4b71Sopenharmony_ci
4179e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
4180e41f4b71Sopenharmony_ci
4181e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4182e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4183e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
4184e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4185e41f4b71Sopenharmony_ci
4186e41f4b71Sopenharmony_ci**示例:**
4187e41f4b71Sopenharmony_ci
4188e41f4b71Sopenharmony_ci```ts
4189e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4190e41f4b71Sopenharmony_ci
4191e41f4b71Sopenharmony_cilet backupFile = "BK001";
4192e41f4b71Sopenharmony_citry {
4193e41f4b71Sopenharmony_ci  kvStore.backup(backupFile).then(() => {
4194e41f4b71Sopenharmony_ci    console.info(`Succeeded in backupping data`);
4195e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4196e41f4b71Sopenharmony_ci    console.error(`Failed to backup.code is ${err.code},message is ${err.message}`);
4197e41f4b71Sopenharmony_ci  });
4198e41f4b71Sopenharmony_ci} catch (e) {
4199e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4200e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4201e41f4b71Sopenharmony_ci}
4202e41f4b71Sopenharmony_ci```
4203e41f4b71Sopenharmony_ci
4204e41f4b71Sopenharmony_ci### restore
4205e41f4b71Sopenharmony_ci
4206e41f4b71Sopenharmony_cirestore(file:string, callback: AsyncCallback&lt;void&gt;):void
4207e41f4b71Sopenharmony_ci
4208e41f4b71Sopenharmony_ci从指定的数据库文件恢复数据库,使用callback异步回调。
4209e41f4b71Sopenharmony_ci
4210e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4211e41f4b71Sopenharmony_ci
4212e41f4b71Sopenharmony_ci**参数:**
4213e41f4b71Sopenharmony_ci
4214e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                                                         |
4215e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
4216e41f4b71Sopenharmony_ci| file     | string                    | 是   | 指定的数据库文件名称,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
4217e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当从指定的数据库文件恢复数据库成功,err为undefined,否则为错误对象。 |
4218e41f4b71Sopenharmony_ci
4219e41f4b71Sopenharmony_ci**错误码:**
4220e41f4b71Sopenharmony_ci
4221e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
4222e41f4b71Sopenharmony_ci
4223e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4224e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4225e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
4226e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4227e41f4b71Sopenharmony_ci
4228e41f4b71Sopenharmony_ci**示例:**
4229e41f4b71Sopenharmony_ci
4230e41f4b71Sopenharmony_ci```ts
4231e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4232e41f4b71Sopenharmony_ci
4233e41f4b71Sopenharmony_cilet backupFile = "BK001";
4234e41f4b71Sopenharmony_citry {
4235e41f4b71Sopenharmony_ci  kvStore.restore(backupFile, (err: BusinessError) => {
4236e41f4b71Sopenharmony_ci    if (err) {
4237e41f4b71Sopenharmony_ci      console.error(`Failed to restore.code is ${err.code},message is ${err.message}`);
4238e41f4b71Sopenharmony_ci    } else {
4239e41f4b71Sopenharmony_ci      console.info(`Succeeded in restoring data`);
4240e41f4b71Sopenharmony_ci    }
4241e41f4b71Sopenharmony_ci  });
4242e41f4b71Sopenharmony_ci} catch (e) {
4243e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4244e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4245e41f4b71Sopenharmony_ci}
4246e41f4b71Sopenharmony_ci```
4247e41f4b71Sopenharmony_ci
4248e41f4b71Sopenharmony_ci### restore
4249e41f4b71Sopenharmony_ci
4250e41f4b71Sopenharmony_cirestore(file:string): Promise&lt;void&gt;
4251e41f4b71Sopenharmony_ci
4252e41f4b71Sopenharmony_ci从指定的数据库文件恢复数据库,使用Promise异步回调。
4253e41f4b71Sopenharmony_ci
4254e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4255e41f4b71Sopenharmony_ci
4256e41f4b71Sopenharmony_ci**参数:**
4257e41f4b71Sopenharmony_ci
4258e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                                                         |
4259e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ------------------------------------------------------------ |
4260e41f4b71Sopenharmony_ci| file   | string   | 是   | 指定的数据库文件名称,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
4261e41f4b71Sopenharmony_ci
4262e41f4b71Sopenharmony_ci**返回值:**
4263e41f4b71Sopenharmony_ci
4264e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4265e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4266e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4267e41f4b71Sopenharmony_ci
4268e41f4b71Sopenharmony_ci**错误码:**
4269e41f4b71Sopenharmony_ci
4270e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
4271e41f4b71Sopenharmony_ci
4272e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4273e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4274e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
4275e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4276e41f4b71Sopenharmony_ci
4277e41f4b71Sopenharmony_ci**示例:**
4278e41f4b71Sopenharmony_ci
4279e41f4b71Sopenharmony_ci```ts
4280e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4281e41f4b71Sopenharmony_ci
4282e41f4b71Sopenharmony_cilet backupFile = "BK001";
4283e41f4b71Sopenharmony_citry {
4284e41f4b71Sopenharmony_ci  kvStore.restore(backupFile).then(() => {
4285e41f4b71Sopenharmony_ci    console.info(`Succeeded in restoring data`);
4286e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4287e41f4b71Sopenharmony_ci    console.error(`Failed to restore.code is ${err.code},message is ${err.message}`);
4288e41f4b71Sopenharmony_ci  });
4289e41f4b71Sopenharmony_ci} catch (e) {
4290e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4291e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4292e41f4b71Sopenharmony_ci}
4293e41f4b71Sopenharmony_ci```
4294e41f4b71Sopenharmony_ci
4295e41f4b71Sopenharmony_ci### deleteBackup
4296e41f4b71Sopenharmony_ci
4297e41f4b71Sopenharmony_cideleteBackup(files:Array&lt;string&gt;, callback: AsyncCallback&lt;Array&lt;[string, number]&gt;&gt;):void
4298e41f4b71Sopenharmony_ci
4299e41f4b71Sopenharmony_ci根据指定名称删除备份文件,使用callback异步回调。
4300e41f4b71Sopenharmony_ci
4301e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4302e41f4b71Sopenharmony_ci
4303e41f4b71Sopenharmony_ci**参数:**
4304e41f4b71Sopenharmony_ci
4305e41f4b71Sopenharmony_ci| 参数名   | 类型                                           | 必填 | 说明                                                         |
4306e41f4b71Sopenharmony_ci| -------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ |
4307e41f4b71Sopenharmony_ci| files    | Array&lt;string&gt;                                | 是   | 删除备份文件所指定的名称,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
4308e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;Array&lt;[string, number]&gt;&gt; | 是   | 回调函数,返回删除备份的文件名及其处理结果。                 |
4309e41f4b71Sopenharmony_ci
4310e41f4b71Sopenharmony_ci**错误码:**
4311e41f4b71Sopenharmony_ci
4312e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4313e41f4b71Sopenharmony_ci
4314e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4315e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4316e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
4317e41f4b71Sopenharmony_ci
4318e41f4b71Sopenharmony_ci**示例:**
4319e41f4b71Sopenharmony_ci
4320e41f4b71Sopenharmony_ci```ts
4321e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4322e41f4b71Sopenharmony_ci
4323e41f4b71Sopenharmony_cilet files = ["BK001", "BK002"];
4324e41f4b71Sopenharmony_citry {
4325e41f4b71Sopenharmony_ci  kvStore.deleteBackup(files, (err: BusinessError, data: [string, number][]) => {
4326e41f4b71Sopenharmony_ci    if (err) {
4327e41f4b71Sopenharmony_ci      console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
4328e41f4b71Sopenharmony_ci    } else {
4329e41f4b71Sopenharmony_ci      console.info(`Succeed in deleting Backup.data=${data}`);
4330e41f4b71Sopenharmony_ci    }
4331e41f4b71Sopenharmony_ci  });
4332e41f4b71Sopenharmony_ci} catch (e) {
4333e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4334e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4335e41f4b71Sopenharmony_ci}
4336e41f4b71Sopenharmony_ci```
4337e41f4b71Sopenharmony_ci
4338e41f4b71Sopenharmony_ci### deleteBackup
4339e41f4b71Sopenharmony_ci
4340e41f4b71Sopenharmony_cideleteBackup(files:Array&lt;string&gt;): Promise&lt;Array&lt;[string, number]&gt;&gt;
4341e41f4b71Sopenharmony_ci
4342e41f4b71Sopenharmony_ci根据指定名称删除备份文件,使用Promise异步回调。
4343e41f4b71Sopenharmony_ci
4344e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4345e41f4b71Sopenharmony_ci
4346e41f4b71Sopenharmony_ci**参数:**
4347e41f4b71Sopenharmony_ci
4348e41f4b71Sopenharmony_ci| 参数名 | 类型            | 必填 | 说明                                                         |
4349e41f4b71Sopenharmony_ci| ------ | ------------------- | ---- | ------------------------------------------------------------ |
4350e41f4b71Sopenharmony_ci| files  | Array&lt;string&gt; | 是   | 删除备份文件所指定的名称,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
4351e41f4b71Sopenharmony_ci
4352e41f4b71Sopenharmony_ci**返回值:**
4353e41f4b71Sopenharmony_ci
4354e41f4b71Sopenharmony_ci| 类型                                         | 说明                                            |
4355e41f4b71Sopenharmony_ci| -------------------------------------------- | ----------------------------------------------- |
4356e41f4b71Sopenharmony_ci| Promise&lt;Array&lt;[string, number]&gt;&gt; | Promise对象,返回删除备份的文件名及其处理结果。 |
4357e41f4b71Sopenharmony_ci
4358e41f4b71Sopenharmony_ci**错误码:**
4359e41f4b71Sopenharmony_ci
4360e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4361e41f4b71Sopenharmony_ci
4362e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4363e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4364e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Parameter verification failed.  |
4365e41f4b71Sopenharmony_ci
4366e41f4b71Sopenharmony_ci**示例:**
4367e41f4b71Sopenharmony_ci
4368e41f4b71Sopenharmony_ci```ts
4369e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4370e41f4b71Sopenharmony_ci
4371e41f4b71Sopenharmony_cilet files = ["BK001", "BK002"];
4372e41f4b71Sopenharmony_citry {
4373e41f4b71Sopenharmony_ci  kvStore.deleteBackup(files).then((data: [string, number][]) => {
4374e41f4b71Sopenharmony_ci    console.info(`Succeed in deleting Backup.data=${data}`);
4375e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4376e41f4b71Sopenharmony_ci    console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
4377e41f4b71Sopenharmony_ci  })
4378e41f4b71Sopenharmony_ci} catch (e) {
4379e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4380e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4381e41f4b71Sopenharmony_ci}
4382e41f4b71Sopenharmony_ci```
4383e41f4b71Sopenharmony_ci
4384e41f4b71Sopenharmony_ci### startTransaction
4385e41f4b71Sopenharmony_ci
4386e41f4b71Sopenharmony_cistartTransaction(callback: AsyncCallback&lt;void&gt;): void
4387e41f4b71Sopenharmony_ci
4388e41f4b71Sopenharmony_ci启动SingleKVStore数据库中的事务,使用callback异步回调。
4389e41f4b71Sopenharmony_ci
4390e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4391e41f4b71Sopenharmony_ci
4392e41f4b71Sopenharmony_ci**参数:**
4393e41f4b71Sopenharmony_ci
4394e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明       |
4395e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- |
4396e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。启动SingleKVStore数据库中的事务成功,err为undefined,否则为错误对象。 |
4397e41f4b71Sopenharmony_ci
4398e41f4b71Sopenharmony_ci**错误码:**
4399e41f4b71Sopenharmony_ci
4400e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
4401e41f4b71Sopenharmony_ci
4402e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
4403e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
4404e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
4405e41f4b71Sopenharmony_ci
4406e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
4407e41f4b71Sopenharmony_ci
4408e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
4409e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
4410e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
4411e41f4b71Sopenharmony_ci
4412e41f4b71Sopenharmony_ci**示例:**
4413e41f4b71Sopenharmony_ci
4414e41f4b71Sopenharmony_ci```ts
4415e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4416e41f4b71Sopenharmony_ci
4417e41f4b71Sopenharmony_cifunction putBatchString(len: number, prefix: string) {
4418e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
4419e41f4b71Sopenharmony_ci  for (let i = 0; i < len; i++) {
4420e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
4421e41f4b71Sopenharmony_ci      key: prefix + i,
4422e41f4b71Sopenharmony_ci      value: {
4423e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
4424e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
4425e41f4b71Sopenharmony_ci      }
4426e41f4b71Sopenharmony_ci    }
4427e41f4b71Sopenharmony_ci    entries.push(entry);
4428e41f4b71Sopenharmony_ci  }
4429e41f4b71Sopenharmony_ci  return entries;
4430e41f4b71Sopenharmony_ci} //自定义函数,放置在作用域最外侧,防止语法检查报错
4431e41f4b71Sopenharmony_ci
4432e41f4b71Sopenharmony_citry {
4433e41f4b71Sopenharmony_ci  let count = 0;
4434e41f4b71Sopenharmony_ci  kvStore.on('dataChange', 0, (data: distributedKVStore.ChangeNotification) => {
4435e41f4b71Sopenharmony_ci    console.info(`startTransaction 0 ${data}`);
4436e41f4b71Sopenharmony_ci    count++;
4437e41f4b71Sopenharmony_ci  });
4438e41f4b71Sopenharmony_ci  kvStore.startTransaction(async (err: BusinessError) => {
4439e41f4b71Sopenharmony_ci    if (err != undefined) {
4440e41f4b71Sopenharmony_ci      console.error(`Failed to start Transaction.code is ${err.code},message is ${err.message}`);
4441e41f4b71Sopenharmony_ci      return;
4442e41f4b71Sopenharmony_ci    }
4443e41f4b71Sopenharmony_ci    console.info('Succeeded in starting Transaction');
4444e41f4b71Sopenharmony_ci    let entries = putBatchString(10, 'batch_test_string_key');
4445e41f4b71Sopenharmony_ci    console.info(`entries: ${entries}`);
4446e41f4b71Sopenharmony_ci    if (kvStore != null) {
4447e41f4b71Sopenharmony_ci      kvStore.putBatch(entries, async (err: BusinessError) => {
4448e41f4b71Sopenharmony_ci        if (err != undefined) {
4449e41f4b71Sopenharmony_ci          console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
4450e41f4b71Sopenharmony_ci          return;
4451e41f4b71Sopenharmony_ci        }
4452e41f4b71Sopenharmony_ci        console.info('Succeeded in putting Batch');
4453e41f4b71Sopenharmony_ci      });
4454e41f4b71Sopenharmony_ci    }
4455e41f4b71Sopenharmony_ci  });
4456e41f4b71Sopenharmony_ci} catch (e) {
4457e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4458e41f4b71Sopenharmony_ci  console.error(`Failed to start Transaction.code is ${error.code},message is ${error.message}`);
4459e41f4b71Sopenharmony_ci}
4460e41f4b71Sopenharmony_ci```
4461e41f4b71Sopenharmony_ci
4462e41f4b71Sopenharmony_ci### startTransaction
4463e41f4b71Sopenharmony_ci
4464e41f4b71Sopenharmony_cistartTransaction(): Promise&lt;void&gt;
4465e41f4b71Sopenharmony_ci
4466e41f4b71Sopenharmony_ci启动SingleKVStore数据库中的事务,使用Promise异步回调。
4467e41f4b71Sopenharmony_ci
4468e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4469e41f4b71Sopenharmony_ci
4470e41f4b71Sopenharmony_ci**返回值:**
4471e41f4b71Sopenharmony_ci
4472e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4473e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4474e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4475e41f4b71Sopenharmony_ci
4476e41f4b71Sopenharmony_ci**错误码:**
4477e41f4b71Sopenharmony_ci
4478e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
4479e41f4b71Sopenharmony_ci
4480e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                             |
4481e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- |
4482e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed.   |
4483e41f4b71Sopenharmony_ci
4484e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
4485e41f4b71Sopenharmony_ci
4486e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                                 |
4487e41f4b71Sopenharmony_ci| ------------ | -------------------------------------------- |
4488e41f4b71Sopenharmony_ci| 14800047     | The WAL file size exceeds the default limit. |
4489e41f4b71Sopenharmony_ci
4490e41f4b71Sopenharmony_ci**示例:**
4491e41f4b71Sopenharmony_ci
4492e41f4b71Sopenharmony_ci```ts
4493e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4494e41f4b71Sopenharmony_ci
4495e41f4b71Sopenharmony_citry {
4496e41f4b71Sopenharmony_ci  let count = 0;
4497e41f4b71Sopenharmony_ci  kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_ALL, (data: distributedKVStore.ChangeNotification) => {
4498e41f4b71Sopenharmony_ci    console.info(`startTransaction 0 ${data}`);
4499e41f4b71Sopenharmony_ci    count++;
4500e41f4b71Sopenharmony_ci  });
4501e41f4b71Sopenharmony_ci  kvStore.startTransaction().then(async () => {
4502e41f4b71Sopenharmony_ci    console.info('Succeeded in starting Transaction');
4503e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4504e41f4b71Sopenharmony_ci    console.error(`Failed to start Transaction.code is ${err.code},message is ${err.message}`);
4505e41f4b71Sopenharmony_ci  });
4506e41f4b71Sopenharmony_ci} catch (e) {
4507e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4508e41f4b71Sopenharmony_ci  console.error(`Failed to start Transaction.code is ${error.code},message is ${error.message}`);
4509e41f4b71Sopenharmony_ci}
4510e41f4b71Sopenharmony_ci```
4511e41f4b71Sopenharmony_ci
4512e41f4b71Sopenharmony_ci### commit
4513e41f4b71Sopenharmony_ci
4514e41f4b71Sopenharmony_cicommit(callback: AsyncCallback&lt;void&gt;): void
4515e41f4b71Sopenharmony_ci
4516e41f4b71Sopenharmony_ci提交SingleKVStore数据库中的事务,使用callback异步回调。
4517e41f4b71Sopenharmony_ci
4518e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4519e41f4b71Sopenharmony_ci
4520e41f4b71Sopenharmony_ci**参数:**
4521e41f4b71Sopenharmony_ci
4522e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明       |
4523e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- |
4524e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。提交SingleKVStore数据库中的事务成功,err为undefined,否则为错误对象。 |
4525e41f4b71Sopenharmony_ci
4526e41f4b71Sopenharmony_ci**错误码:**
4527e41f4b71Sopenharmony_ci
4528e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
4529e41f4b71Sopenharmony_ci
4530e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4531e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4532e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4533e41f4b71Sopenharmony_ci
4534e41f4b71Sopenharmony_ci**示例:**
4535e41f4b71Sopenharmony_ci
4536e41f4b71Sopenharmony_ci```ts
4537e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4538e41f4b71Sopenharmony_ci
4539e41f4b71Sopenharmony_citry {
4540e41f4b71Sopenharmony_ci  kvStore.commit((err: BusinessError) => {
4541e41f4b71Sopenharmony_ci    if (err == undefined) {
4542e41f4b71Sopenharmony_ci      console.info('Succeeded in committing');
4543e41f4b71Sopenharmony_ci    } else {
4544e41f4b71Sopenharmony_ci      console.error(`Failed to commit.code is ${err.code},message is ${err.message}`);
4545e41f4b71Sopenharmony_ci    }
4546e41f4b71Sopenharmony_ci  });
4547e41f4b71Sopenharmony_ci} catch (e) {
4548e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4549e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4550e41f4b71Sopenharmony_ci}
4551e41f4b71Sopenharmony_ci```
4552e41f4b71Sopenharmony_ci
4553e41f4b71Sopenharmony_ci### commit
4554e41f4b71Sopenharmony_ci
4555e41f4b71Sopenharmony_cicommit(): Promise&lt;void&gt;
4556e41f4b71Sopenharmony_ci
4557e41f4b71Sopenharmony_ci提交SingleKVStore数据库中的事务,使用Promise异步回调。
4558e41f4b71Sopenharmony_ci
4559e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4560e41f4b71Sopenharmony_ci
4561e41f4b71Sopenharmony_ci**返回值:**
4562e41f4b71Sopenharmony_ci
4563e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4564e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4565e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4566e41f4b71Sopenharmony_ci
4567e41f4b71Sopenharmony_ci**错误码:**
4568e41f4b71Sopenharmony_ci
4569e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
4570e41f4b71Sopenharmony_ci
4571e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4572e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4573e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4574e41f4b71Sopenharmony_ci
4575e41f4b71Sopenharmony_ci**示例:**
4576e41f4b71Sopenharmony_ci
4577e41f4b71Sopenharmony_ci```ts
4578e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4579e41f4b71Sopenharmony_ci
4580e41f4b71Sopenharmony_citry {
4581e41f4b71Sopenharmony_ci  kvStore.commit().then(async () => {
4582e41f4b71Sopenharmony_ci    console.info('Succeeded in committing');
4583e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4584e41f4b71Sopenharmony_ci    console.error(`Failed to commit.code is ${err.code},message is ${err.message}`);
4585e41f4b71Sopenharmony_ci  });
4586e41f4b71Sopenharmony_ci} catch (e) {
4587e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4588e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4589e41f4b71Sopenharmony_ci}
4590e41f4b71Sopenharmony_ci```
4591e41f4b71Sopenharmony_ci
4592e41f4b71Sopenharmony_ci### rollback
4593e41f4b71Sopenharmony_ci
4594e41f4b71Sopenharmony_cirollback(callback: AsyncCallback&lt;void&gt;): void
4595e41f4b71Sopenharmony_ci
4596e41f4b71Sopenharmony_ci在SingleKVStore数据库中回滚事务,使用callback异步回调。
4597e41f4b71Sopenharmony_ci
4598e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4599e41f4b71Sopenharmony_ci
4600e41f4b71Sopenharmony_ci**参数:**
4601e41f4b71Sopenharmony_ci
4602e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明       |
4603e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- |
4604e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。SingleKVStore数据库中回滚事务成功,err为undefined,否则为错误对象。 |
4605e41f4b71Sopenharmony_ci
4606e41f4b71Sopenharmony_ci**错误码:**
4607e41f4b71Sopenharmony_ci
4608e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
4609e41f4b71Sopenharmony_ci
4610e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4611e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4612e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4613e41f4b71Sopenharmony_ci
4614e41f4b71Sopenharmony_ci**示例:**
4615e41f4b71Sopenharmony_ci
4616e41f4b71Sopenharmony_ci```ts
4617e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4618e41f4b71Sopenharmony_ci
4619e41f4b71Sopenharmony_citry {
4620e41f4b71Sopenharmony_ci  kvStore.rollback((err: BusinessError) => {
4621e41f4b71Sopenharmony_ci    if (err == undefined) {
4622e41f4b71Sopenharmony_ci      console.info('Succeeded in rolling back');
4623e41f4b71Sopenharmony_ci    } else {
4624e41f4b71Sopenharmony_ci      console.error(`Failed to rollback.code is ${err.code},message is ${err.message}`);
4625e41f4b71Sopenharmony_ci    }
4626e41f4b71Sopenharmony_ci  });
4627e41f4b71Sopenharmony_ci} catch (e) {
4628e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4629e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4630e41f4b71Sopenharmony_ci}
4631e41f4b71Sopenharmony_ci```
4632e41f4b71Sopenharmony_ci
4633e41f4b71Sopenharmony_ci### rollback
4634e41f4b71Sopenharmony_ci
4635e41f4b71Sopenharmony_cirollback(): Promise&lt;void&gt;
4636e41f4b71Sopenharmony_ci
4637e41f4b71Sopenharmony_ci在SingleKVStore数据库中回滚事务,使用Promise异步回调。
4638e41f4b71Sopenharmony_ci
4639e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4640e41f4b71Sopenharmony_ci
4641e41f4b71Sopenharmony_ci**返回值:**
4642e41f4b71Sopenharmony_ci
4643e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4644e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4645e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4646e41f4b71Sopenharmony_ci
4647e41f4b71Sopenharmony_ci**错误码:**
4648e41f4b71Sopenharmony_ci
4649e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
4650e41f4b71Sopenharmony_ci
4651e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4652e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4653e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
4654e41f4b71Sopenharmony_ci
4655e41f4b71Sopenharmony_ci**示例:**
4656e41f4b71Sopenharmony_ci
4657e41f4b71Sopenharmony_ci```ts
4658e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4659e41f4b71Sopenharmony_ci
4660e41f4b71Sopenharmony_citry {
4661e41f4b71Sopenharmony_ci  kvStore.rollback().then(async () => {
4662e41f4b71Sopenharmony_ci    console.info('Succeeded in rolling back');
4663e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4664e41f4b71Sopenharmony_ci    console.error(`Failed to rollback.code is ${err.code},message is ${err.message}`);
4665e41f4b71Sopenharmony_ci  });
4666e41f4b71Sopenharmony_ci} catch (e) {
4667e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4668e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4669e41f4b71Sopenharmony_ci}
4670e41f4b71Sopenharmony_ci```
4671e41f4b71Sopenharmony_ci
4672e41f4b71Sopenharmony_ci### enableSync
4673e41f4b71Sopenharmony_ci
4674e41f4b71Sopenharmony_cienableSync(enabled: boolean, callback: AsyncCallback&lt;void&gt;): void
4675e41f4b71Sopenharmony_ci
4676e41f4b71Sopenharmony_ci设定是否开启同步,使用callback异步回调。
4677e41f4b71Sopenharmony_ci
4678e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4679e41f4b71Sopenharmony_ci
4680e41f4b71Sopenharmony_ci**参数:**
4681e41f4b71Sopenharmony_ci
4682e41f4b71Sopenharmony_ci| 参数名   | 类型                  | 必填 | 说明                                                      |
4683e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | --------------------------------------------------------- |
4684e41f4b71Sopenharmony_ci| enabled  | boolean                   | 是   | 设定是否开启同步,true表示开启同步,false表示不启用同步。 |
4685e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。设定成功,err为undefined,否则为错误对象。      |
4686e41f4b71Sopenharmony_ci
4687e41f4b71Sopenharmony_ci**错误码:**
4688e41f4b71Sopenharmony_ci
4689e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4690e41f4b71Sopenharmony_ci
4691e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4692e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4693e41f4b71Sopenharmony_ci| 401          | Parameter error.Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.  |
4694e41f4b71Sopenharmony_ci
4695e41f4b71Sopenharmony_ci**示例:**
4696e41f4b71Sopenharmony_ci
4697e41f4b71Sopenharmony_ci```ts
4698e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4699e41f4b71Sopenharmony_ci
4700e41f4b71Sopenharmony_citry {
4701e41f4b71Sopenharmony_ci  kvStore.enableSync(true, (err: BusinessError) => {
4702e41f4b71Sopenharmony_ci    if (err == undefined) {
4703e41f4b71Sopenharmony_ci      console.info('Succeeded in enabling sync');
4704e41f4b71Sopenharmony_ci    } else {
4705e41f4b71Sopenharmony_ci      console.error(`Failed to enable sync.code is ${err.code},message is ${err.message}`);
4706e41f4b71Sopenharmony_ci    }
4707e41f4b71Sopenharmony_ci  });
4708e41f4b71Sopenharmony_ci} catch (e) {
4709e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4710e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4711e41f4b71Sopenharmony_ci}
4712e41f4b71Sopenharmony_ci```
4713e41f4b71Sopenharmony_ci
4714e41f4b71Sopenharmony_ci### enableSync
4715e41f4b71Sopenharmony_ci
4716e41f4b71Sopenharmony_cienableSync(enabled: boolean): Promise&lt;void&gt;
4717e41f4b71Sopenharmony_ci
4718e41f4b71Sopenharmony_ci设定是否开启同步,使用Promise异步回调。
4719e41f4b71Sopenharmony_ci
4720e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4721e41f4b71Sopenharmony_ci
4722e41f4b71Sopenharmony_ci**参数:**
4723e41f4b71Sopenharmony_ci
4724e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填 | 说明                                                      |
4725e41f4b71Sopenharmony_ci| ------- | -------- | ---- | --------------------------------------------------------- |
4726e41f4b71Sopenharmony_ci| enabled | boolean  | 是   | 设定是否开启同步,true表示开启同步,false表示不启用同步。 |
4727e41f4b71Sopenharmony_ci
4728e41f4b71Sopenharmony_ci**返回值:**
4729e41f4b71Sopenharmony_ci
4730e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4731e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4732e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4733e41f4b71Sopenharmony_ci
4734e41f4b71Sopenharmony_ci**错误码:**
4735e41f4b71Sopenharmony_ci
4736e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4737e41f4b71Sopenharmony_ci
4738e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
4739e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
4740e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
4741e41f4b71Sopenharmony_ci
4742e41f4b71Sopenharmony_ci**示例:**
4743e41f4b71Sopenharmony_ci
4744e41f4b71Sopenharmony_ci```ts
4745e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4746e41f4b71Sopenharmony_ci
4747e41f4b71Sopenharmony_citry {
4748e41f4b71Sopenharmony_ci  kvStore.enableSync(true).then(() => {
4749e41f4b71Sopenharmony_ci    console.info('Succeeded in enabling sync');
4750e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4751e41f4b71Sopenharmony_ci    console.error(`Failed to enable sync.code is ${err.code},message is ${err.message}`);
4752e41f4b71Sopenharmony_ci  });
4753e41f4b71Sopenharmony_ci} catch (e) {
4754e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4755e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4756e41f4b71Sopenharmony_ci}
4757e41f4b71Sopenharmony_ci```
4758e41f4b71Sopenharmony_ci
4759e41f4b71Sopenharmony_ci### setSyncRange
4760e41f4b71Sopenharmony_ci
4761e41f4b71Sopenharmony_cisetSyncRange(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback&lt;void&gt;): void
4762e41f4b71Sopenharmony_ci
4763e41f4b71Sopenharmony_ci设置同步范围标签,使用callback异步回调。
4764e41f4b71Sopenharmony_ci
4765e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4766e41f4b71Sopenharmony_ci
4767e41f4b71Sopenharmony_ci**参数:**
4768e41f4b71Sopenharmony_ci
4769e41f4b71Sopenharmony_ci| 参数名              | 类型                  | 必填 | 说明                             |
4770e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | ---- | -------------------------------- |
4771e41f4b71Sopenharmony_ci| localLabels         | string[]                  | 是   | 表示本地设备的同步标签。         |
4772e41f4b71Sopenharmony_ci| remoteSupportLabels | string[]                  | 是   | 表示要同步数据的设备的同步标签。 |
4773e41f4b71Sopenharmony_ci| callback            | AsyncCallback&lt;void&gt; | 是   | 回调函数。设置成功,err为undefined,否则为错误对象。|
4774e41f4b71Sopenharmony_ci
4775e41f4b71Sopenharmony_ci**错误码:**
4776e41f4b71Sopenharmony_ci
4777e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4778e41f4b71Sopenharmony_ci
4779e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
4780e41f4b71Sopenharmony_ci| ------------ | ------------ |
4781e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
4782e41f4b71Sopenharmony_ci
4783e41f4b71Sopenharmony_ci**示例:**
4784e41f4b71Sopenharmony_ci
4785e41f4b71Sopenharmony_ci```ts
4786e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4787e41f4b71Sopenharmony_ci
4788e41f4b71Sopenharmony_citry {
4789e41f4b71Sopenharmony_ci  const localLabels = ['A', 'B'];
4790e41f4b71Sopenharmony_ci  const remoteSupportLabels = ['C', 'D'];
4791e41f4b71Sopenharmony_ci  kvStore.setSyncRange(localLabels, remoteSupportLabels, (err: BusinessError) => {
4792e41f4b71Sopenharmony_ci    if (err != undefined) {
4793e41f4b71Sopenharmony_ci      console.error(`Failed to set syncRange.code is ${err.code},message is ${err.message}`);
4794e41f4b71Sopenharmony_ci      return;
4795e41f4b71Sopenharmony_ci    }
4796e41f4b71Sopenharmony_ci    console.info('Succeeded in setting syncRange');
4797e41f4b71Sopenharmony_ci  });
4798e41f4b71Sopenharmony_ci} catch (e) {
4799e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4800e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4801e41f4b71Sopenharmony_ci}
4802e41f4b71Sopenharmony_ci```
4803e41f4b71Sopenharmony_ci
4804e41f4b71Sopenharmony_ci### setSyncRange
4805e41f4b71Sopenharmony_ci
4806e41f4b71Sopenharmony_cisetSyncRange(localLabels: string[], remoteSupportLabels: string[]): Promise&lt;void&gt;
4807e41f4b71Sopenharmony_ci
4808e41f4b71Sopenharmony_ci设置同步范围标签,使用Promise异步回调。
4809e41f4b71Sopenharmony_ci
4810e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4811e41f4b71Sopenharmony_ci
4812e41f4b71Sopenharmony_ci**参数:**
4813e41f4b71Sopenharmony_ci
4814e41f4b71Sopenharmony_ci| 参数名              | 类型 | 必填 | 说明                             |
4815e41f4b71Sopenharmony_ci| ------------------- | -------- | ---- | -------------------------------- |
4816e41f4b71Sopenharmony_ci| localLabels         | string[] | 是   | 表示本地设备的同步标签。         |
4817e41f4b71Sopenharmony_ci| remoteSupportLabels | string[] | 是   | 表示要同步数据的设备的同步标签。 |
4818e41f4b71Sopenharmony_ci
4819e41f4b71Sopenharmony_ci**返回值:**
4820e41f4b71Sopenharmony_ci
4821e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4822e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4823e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4824e41f4b71Sopenharmony_ci
4825e41f4b71Sopenharmony_ci**错误码:**
4826e41f4b71Sopenharmony_ci
4827e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4828e41f4b71Sopenharmony_ci
4829e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
4830e41f4b71Sopenharmony_ci| ------------ | ------------ |
4831e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
4832e41f4b71Sopenharmony_ci
4833e41f4b71Sopenharmony_ci**示例:**
4834e41f4b71Sopenharmony_ci
4835e41f4b71Sopenharmony_ci```ts
4836e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4837e41f4b71Sopenharmony_ci
4838e41f4b71Sopenharmony_citry {
4839e41f4b71Sopenharmony_ci  const localLabels = ['A', 'B'];
4840e41f4b71Sopenharmony_ci  const remoteSupportLabels = ['C', 'D'];
4841e41f4b71Sopenharmony_ci  kvStore.setSyncRange(localLabels, remoteSupportLabels).then(() => {
4842e41f4b71Sopenharmony_ci    console.info('Succeeded in setting syncRange');
4843e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4844e41f4b71Sopenharmony_ci    console.error(`Failed to set syncRange.code is ${err.code},message is ${err.message}`);
4845e41f4b71Sopenharmony_ci  });
4846e41f4b71Sopenharmony_ci} catch (e) {
4847e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4848e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4849e41f4b71Sopenharmony_ci}
4850e41f4b71Sopenharmony_ci```
4851e41f4b71Sopenharmony_ci
4852e41f4b71Sopenharmony_ci### setSyncParam
4853e41f4b71Sopenharmony_ci
4854e41f4b71Sopenharmony_cisetSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback&lt;void&gt;): void
4855e41f4b71Sopenharmony_ci
4856e41f4b71Sopenharmony_ci设置数据库同步允许的默认延迟,使用callback异步回调。
4857e41f4b71Sopenharmony_ci
4858e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4859e41f4b71Sopenharmony_ci
4860e41f4b71Sopenharmony_ci**参数:**
4861e41f4b71Sopenharmony_ci
4862e41f4b71Sopenharmony_ci| 参数名                | 类型                  | 必填 | 说明                                         |
4863e41f4b71Sopenharmony_ci| --------------------- | ------------------------- | ---- | -------------------------------------------- |
4864e41f4b71Sopenharmony_ci| defaultAllowedDelayMs | number                    | 是   | 表示数据库同步允许的默认延迟,以毫秒为单位。 |
4865e41f4b71Sopenharmony_ci| callback              | AsyncCallback&lt;void&gt; | 是   | 回调函数。设置成功,err为undefined,否则为错误对象。 |
4866e41f4b71Sopenharmony_ci
4867e41f4b71Sopenharmony_ci**错误码:**
4868e41f4b71Sopenharmony_ci
4869e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4870e41f4b71Sopenharmony_ci
4871e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
4872e41f4b71Sopenharmony_ci| ------------ | ------------ |
4873e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
4874e41f4b71Sopenharmony_ci
4875e41f4b71Sopenharmony_ci**示例:**
4876e41f4b71Sopenharmony_ci
4877e41f4b71Sopenharmony_ci```ts
4878e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4879e41f4b71Sopenharmony_ci
4880e41f4b71Sopenharmony_citry {
4881e41f4b71Sopenharmony_ci  const defaultAllowedDelayMs = 500;
4882e41f4b71Sopenharmony_ci  kvStore.setSyncParam(defaultAllowedDelayMs, (err: BusinessError) => {
4883e41f4b71Sopenharmony_ci    if (err != undefined) {
4884e41f4b71Sopenharmony_ci      console.error(`Failed to set syncParam.code is ${err.code},message is ${err.message}`);
4885e41f4b71Sopenharmony_ci      return;
4886e41f4b71Sopenharmony_ci    }
4887e41f4b71Sopenharmony_ci    console.info('Succeeded in setting syncParam');
4888e41f4b71Sopenharmony_ci  });
4889e41f4b71Sopenharmony_ci} catch (e) {
4890e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4891e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4892e41f4b71Sopenharmony_ci}
4893e41f4b71Sopenharmony_ci```
4894e41f4b71Sopenharmony_ci
4895e41f4b71Sopenharmony_ci### setSyncParam
4896e41f4b71Sopenharmony_ci
4897e41f4b71Sopenharmony_cisetSyncParam(defaultAllowedDelayMs: number): Promise&lt;void&gt;
4898e41f4b71Sopenharmony_ci
4899e41f4b71Sopenharmony_ci设置数据库同步允许的默认延迟,使用Promise异步回调。
4900e41f4b71Sopenharmony_ci
4901e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4902e41f4b71Sopenharmony_ci
4903e41f4b71Sopenharmony_ci**参数:**
4904e41f4b71Sopenharmony_ci
4905e41f4b71Sopenharmony_ci| 参数名                | 类型 | 必填 | 说明                                         |
4906e41f4b71Sopenharmony_ci| --------------------- | -------- | ---- | -------------------------------------------- |
4907e41f4b71Sopenharmony_ci| defaultAllowedDelayMs | number   | 是   | 表示数据库同步允许的默认延迟,以毫秒为单位。 |
4908e41f4b71Sopenharmony_ci
4909e41f4b71Sopenharmony_ci**返回值:**
4910e41f4b71Sopenharmony_ci
4911e41f4b71Sopenharmony_ci| 类型                | 说明                      |
4912e41f4b71Sopenharmony_ci| ------------------- | ------------------------- |
4913e41f4b71Sopenharmony_ci| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
4914e41f4b71Sopenharmony_ci
4915e41f4b71Sopenharmony_ci**错误码:**
4916e41f4b71Sopenharmony_ci
4917e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
4918e41f4b71Sopenharmony_ci
4919e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息** |
4920e41f4b71Sopenharmony_ci| ------------ | ------------ |
4921e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
4922e41f4b71Sopenharmony_ci
4923e41f4b71Sopenharmony_ci**示例:**
4924e41f4b71Sopenharmony_ci
4925e41f4b71Sopenharmony_ci```ts
4926e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4927e41f4b71Sopenharmony_ci
4928e41f4b71Sopenharmony_citry {
4929e41f4b71Sopenharmony_ci  const defaultAllowedDelayMs = 500;
4930e41f4b71Sopenharmony_ci  kvStore.setSyncParam(defaultAllowedDelayMs).then(() => {
4931e41f4b71Sopenharmony_ci    console.info('Succeeded in setting syncParam');
4932e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
4933e41f4b71Sopenharmony_ci    console.error(`Failed to set syncParam.code is ${err.code},message is ${err.message}`);
4934e41f4b71Sopenharmony_ci  });
4935e41f4b71Sopenharmony_ci} catch (e) {
4936e41f4b71Sopenharmony_ci  let error = e as BusinessError;
4937e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
4938e41f4b71Sopenharmony_ci}
4939e41f4b71Sopenharmony_ci```
4940e41f4b71Sopenharmony_ci
4941e41f4b71Sopenharmony_ci### sync
4942e41f4b71Sopenharmony_ci
4943e41f4b71Sopenharmony_cisync(deviceIds: string[], mode: SyncMode, delayMs?: number): void
4944e41f4b71Sopenharmony_ci
4945e41f4b71Sopenharmony_ci在手动同步方式下,触发数据库同步。关于键值型数据库的同步方式说明,请见[键值型数据库跨设备数据同步](../../database/data-sync-of-kv-store.md)。
4946e41f4b71Sopenharmony_ci> **说明:** 
4947e41f4b71Sopenharmony_ci>
4948e41f4b71Sopenharmony_ci> 其中deviceIds为[DeviceBasicInfo](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#devicebasicinfo)中的networkId, 通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
4949e41f4b71Sopenharmony_ci
4950e41f4b71Sopenharmony_ci**需要权限**: ohos.permission.DISTRIBUTED_DATASYNC4951e41f4b71Sopenharmony_ci
4952e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
4953e41f4b71Sopenharmony_ci
4954e41f4b71Sopenharmony_ci**参数:**
4955e41f4b71Sopenharmony_ci
4956e41f4b71Sopenharmony_ci| 参数名    | 类型              | 必填 | 说明                                           |
4957e41f4b71Sopenharmony_ci| --------- | --------------------- | ---- | ---------------------------------------------- |
4958e41f4b71Sopenharmony_ci| deviceIds | string[]              | 是   | 同一组网环境下,需要同步的设备的networkId列表。 |
4959e41f4b71Sopenharmony_ci| mode      | [SyncMode](#syncmode) | 是   | 同步模式。                                     |
4960e41f4b71Sopenharmony_ci| delayMs   | number                | 否   | 可选参数,允许延时时间,单位:ms(毫秒),默认为0。     |
4961e41f4b71Sopenharmony_ci
4962e41f4b71Sopenharmony_ci**错误码:**
4963e41f4b71Sopenharmony_ci
4964e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
4965e41f4b71Sopenharmony_ci
4966e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**        |
4967e41f4b71Sopenharmony_ci| ------------ | ------------------- |
4968e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
4969e41f4b71Sopenharmony_ci| 15100003     | Database corrupted. |
4970e41f4b71Sopenharmony_ci| 15100004     | Not found.          |
4971e41f4b71Sopenharmony_ci
4972e41f4b71Sopenharmony_ci**示例:**
4973e41f4b71Sopenharmony_ci
4974e41f4b71Sopenharmony_ci```ts
4975e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit';
4976e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
4977e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
4978e41f4b71Sopenharmony_ci
4979e41f4b71Sopenharmony_cilet devManager: distributedDeviceManager.DeviceManager;
4980e41f4b71Sopenharmony_ciconst KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
4981e41f4b71Sopenharmony_ciconst VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
4982e41f4b71Sopenharmony_ci// create deviceManager
4983e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility {
4984e41f4b71Sopenharmony_ci  onCreate() {
4985e41f4b71Sopenharmony_ci    let context = this.context;
4986e41f4b71Sopenharmony_ci    try {
4987e41f4b71Sopenharmony_ci      devManager = distributedDeviceManager.createDeviceManager(context.applicationInfo.name);
4988e41f4b71Sopenharmony_ci      let deviceIds: string[] = [];
4989e41f4b71Sopenharmony_ci      if (devManager != null) {
4990e41f4b71Sopenharmony_ci        let devices = devManager.getAvailableDeviceListSync();
4991e41f4b71Sopenharmony_ci        for (let i = 0; i < devices.length; i++) {
4992e41f4b71Sopenharmony_ci          deviceIds[i] = devices[i].networkId as string;
4993e41f4b71Sopenharmony_ci        }
4994e41f4b71Sopenharmony_ci      }
4995e41f4b71Sopenharmony_ci      try {
4996e41f4b71Sopenharmony_ci        if (kvStore != null) {
4997e41f4b71Sopenharmony_ci          kvStore.on('syncComplete', (data: [string, number][]) => {
4998e41f4b71Sopenharmony_ci            console.info('Sync dataChange');
4999e41f4b71Sopenharmony_ci          });
5000e41f4b71Sopenharmony_ci          if (kvStore != null) {
5001e41f4b71Sopenharmony_ci            kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, (err: BusinessError) => {
5002e41f4b71Sopenharmony_ci              if (err != undefined) {
5003e41f4b71Sopenharmony_ci                console.error(`Failed to sync.code is ${err.code},message is ${err.message}`);
5004e41f4b71Sopenharmony_ci                return;
5005e41f4b71Sopenharmony_ci              }
5006e41f4b71Sopenharmony_ci              console.info('Succeeded in putting data');
5007e41f4b71Sopenharmony_ci              const mode = distributedKVStore.SyncMode.PULL_ONLY;
5008e41f4b71Sopenharmony_ci              if (kvStore != null) {
5009e41f4b71Sopenharmony_ci                kvStore.sync(deviceIds, mode, 1000);
5010e41f4b71Sopenharmony_ci              }
5011e41f4b71Sopenharmony_ci            });
5012e41f4b71Sopenharmony_ci          }
5013e41f4b71Sopenharmony_ci        }
5014e41f4b71Sopenharmony_ci      } catch (e) {
5015e41f4b71Sopenharmony_ci        let error = e as BusinessError;
5016e41f4b71Sopenharmony_ci        console.error(`Failed to sync.code is ${error.code},message is ${error.message}`);
5017e41f4b71Sopenharmony_ci      }
5018e41f4b71Sopenharmony_ci
5019e41f4b71Sopenharmony_ci    } catch (err) {
5020e41f4b71Sopenharmony_ci      let error = err as BusinessError;
5021e41f4b71Sopenharmony_ci      console.error("createDeviceManager errCode:" + error.code + ",errMessage:" + error.message);
5022e41f4b71Sopenharmony_ci    }
5023e41f4b71Sopenharmony_ci  }
5024e41f4b71Sopenharmony_ci}
5025e41f4b71Sopenharmony_ci```
5026e41f4b71Sopenharmony_ci
5027e41f4b71Sopenharmony_ci### sync
5028e41f4b71Sopenharmony_ci
5029e41f4b71Sopenharmony_cisync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
5030e41f4b71Sopenharmony_ci
5031e41f4b71Sopenharmony_ci在手动同步方式下,触发数据库同步,此方法为同步方法。关于键值型数据库的同步方式说明,请见[键值型数据库跨设备数据同步](../../database/data-sync-of-kv-store.md)。
5032e41f4b71Sopenharmony_ci> **说明:** 
5033e41f4b71Sopenharmony_ci>
5034e41f4b71Sopenharmony_ci> 其中deviceIds为[DeviceBasicInfo](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#devicebasicinfo)中的networkId, 通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
5035e41f4b71Sopenharmony_ci
5036e41f4b71Sopenharmony_ci**需要权限**: ohos.permission.DISTRIBUTED_DATASYNC5037e41f4b71Sopenharmony_ci
5038e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5039e41f4b71Sopenharmony_ci
5040e41f4b71Sopenharmony_ci**参数:**
5041e41f4b71Sopenharmony_ci
5042e41f4b71Sopenharmony_ci| 参数名    | 类型              | 必填 | 说明                                           |
5043e41f4b71Sopenharmony_ci| --------- | --------------------- | ---- | ---------------------------------------------- |
5044e41f4b71Sopenharmony_ci| deviceIds | string[]              | 是   | 同一组网环境下,需要同步的设备的networkId列表。 |
5045e41f4b71Sopenharmony_ci| mode      | [SyncMode](#syncmode) | 是   | 同步模式。                                     |
5046e41f4b71Sopenharmony_ci| query     | [Query](#query)        | 是   | 表示数据库的查询谓词条件                       |
5047e41f4b71Sopenharmony_ci| delayMs   | number                | 否   | 可选参数,允许延时时间,单位:ms(毫秒),默认为0。     |
5048e41f4b71Sopenharmony_ci
5049e41f4b71Sopenharmony_ci**错误码:**
5050e41f4b71Sopenharmony_ci
5051e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5052e41f4b71Sopenharmony_ci
5053e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**        |
5054e41f4b71Sopenharmony_ci| ------------ | ------------------- |
5055e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
5056e41f4b71Sopenharmony_ci| 15100003     | Database corrupted. |
5057e41f4b71Sopenharmony_ci| 15100004     | Not found.          |
5058e41f4b71Sopenharmony_ci
5059e41f4b71Sopenharmony_ci**示例:**
5060e41f4b71Sopenharmony_ci
5061e41f4b71Sopenharmony_ci```ts
5062e41f4b71Sopenharmony_ciimport { distributedDeviceManager } from '@kit.DistributedServiceKit';
5063e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit';
5064e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5065e41f4b71Sopenharmony_ci
5066e41f4b71Sopenharmony_cilet devManager: distributedDeviceManager.DeviceManager;
5067e41f4b71Sopenharmony_ciconst KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
5068e41f4b71Sopenharmony_ciconst VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
5069e41f4b71Sopenharmony_ci// create deviceManager
5070e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility {
5071e41f4b71Sopenharmony_ci  onCreate() {
5072e41f4b71Sopenharmony_ci    let context = this.context;
5073e41f4b71Sopenharmony_ci    try {
5074e41f4b71Sopenharmony_ci      let devManager = distributedDeviceManager.createDeviceManager(context.applicationInfo.name);
5075e41f4b71Sopenharmony_ci      let deviceIds: string[] = [];
5076e41f4b71Sopenharmony_ci      if (devManager != null) {
5077e41f4b71Sopenharmony_ci        let devices = devManager.getAvailableDeviceListSync();
5078e41f4b71Sopenharmony_ci        for (let i = 0; i < devices.length; i++) {
5079e41f4b71Sopenharmony_ci          deviceIds[i] = devices[i].networkId as string;
5080e41f4b71Sopenharmony_ci        }
5081e41f4b71Sopenharmony_ci      }
5082e41f4b71Sopenharmony_ci      try {
5083e41f4b71Sopenharmony_ci        if (kvStore != null) {
5084e41f4b71Sopenharmony_ci          kvStore.on('syncComplete', (data: [string, number][]) => {
5085e41f4b71Sopenharmony_ci            console.info('Sync dataChange');
5086e41f4b71Sopenharmony_ci          });
5087e41f4b71Sopenharmony_ci          if (kvStore != null) {
5088e41f4b71Sopenharmony_ci            kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, (err: BusinessError) => {
5089e41f4b71Sopenharmony_ci              if (err != undefined) {
5090e41f4b71Sopenharmony_ci                console.error(`Failed to sync.code is ${err.code},message is ${err.message}`);
5091e41f4b71Sopenharmony_ci                return;
5092e41f4b71Sopenharmony_ci              }
5093e41f4b71Sopenharmony_ci              console.info('Succeeded in putting data');
5094e41f4b71Sopenharmony_ci              const mode = distributedKVStore.SyncMode.PULL_ONLY;
5095e41f4b71Sopenharmony_ci              const query = new distributedKVStore.Query();
5096e41f4b71Sopenharmony_ci              query.prefixKey("batch_test");
5097e41f4b71Sopenharmony_ci              query.deviceId(devManager.getLocalDeviceNetworkId());
5098e41f4b71Sopenharmony_ci              if (kvStore != null) {
5099e41f4b71Sopenharmony_ci                kvStore.sync(deviceIds, query, mode, 1000);
5100e41f4b71Sopenharmony_ci              }
5101e41f4b71Sopenharmony_ci            });
5102e41f4b71Sopenharmony_ci          }
5103e41f4b71Sopenharmony_ci        }
5104e41f4b71Sopenharmony_ci      } catch (e) {
5105e41f4b71Sopenharmony_ci        let error = e as BusinessError;
5106e41f4b71Sopenharmony_ci        console.error(`Failed to sync.code is ${error.code},message is ${error.message}`);
5107e41f4b71Sopenharmony_ci      }
5108e41f4b71Sopenharmony_ci
5109e41f4b71Sopenharmony_ci    } catch (err) {
5110e41f4b71Sopenharmony_ci      let error = err as BusinessError;
5111e41f4b71Sopenharmony_ci      console.error("createDeviceManager errCode:" + error.code + ",errMessage:" + error.message);
5112e41f4b71Sopenharmony_ci    }
5113e41f4b71Sopenharmony_ci  }
5114e41f4b71Sopenharmony_ci}
5115e41f4b71Sopenharmony_ci```
5116e41f4b71Sopenharmony_ci
5117e41f4b71Sopenharmony_ci### on('dataChange')
5118e41f4b71Sopenharmony_ci
5119e41f4b71Sopenharmony_cion(event: 'dataChange', type: SubscribeType, listener: Callback&lt;ChangeNotification&gt;): void
5120e41f4b71Sopenharmony_ci
5121e41f4b71Sopenharmony_ci订阅指定类型的数据变更通知。
5122e41f4b71Sopenharmony_ci
5123e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5124e41f4b71Sopenharmony_ci
5125e41f4b71Sopenharmony_ci**参数:**
5126e41f4b71Sopenharmony_ci
5127e41f4b71Sopenharmony_ci| 参数名   | 类型                                                  | 必填 | 说明                                                 |
5128e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------------- | ---- | ---------------------------------------------------- |
5129e41f4b71Sopenharmony_ci| event    | string                                                    | 是   | 订阅的事件名,固定为'dataChange',表示数据变更事件。 |
5130e41f4b71Sopenharmony_ci| type     | [SubscribeType](#subscribetype)                           | 是   | 表示订阅的类型。                                     |
5131e41f4b71Sopenharmony_ci| listener | Callback&lt;[ChangeNotification](#changenotification)&gt; | 是   | 回调函数。成功返回数据变更时通知的对象。|
5132e41f4b71Sopenharmony_ci
5133e41f4b71Sopenharmony_ci**错误码:**
5134e41f4b71Sopenharmony_ci
5135e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5136e41f4b71Sopenharmony_ci
5137e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5138e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5139e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
5140e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
5141e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5142e41f4b71Sopenharmony_ci
5143e41f4b71Sopenharmony_ci**示例:**
5144e41f4b71Sopenharmony_ci
5145e41f4b71Sopenharmony_ci```ts
5146e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5147e41f4b71Sopenharmony_ci
5148e41f4b71Sopenharmony_citry {
5149e41f4b71Sopenharmony_ci  kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_LOCAL, (data: distributedKVStore.ChangeNotification) => {
5150e41f4b71Sopenharmony_ci    console.info(`dataChange callback call data: ${data}`);
5151e41f4b71Sopenharmony_ci  });
5152e41f4b71Sopenharmony_ci} catch (e) {
5153e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5154e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
5155e41f4b71Sopenharmony_ci}
5156e41f4b71Sopenharmony_ci```
5157e41f4b71Sopenharmony_ci
5158e41f4b71Sopenharmony_ci### on('syncComplete')
5159e41f4b71Sopenharmony_ci
5160e41f4b71Sopenharmony_cion(event: 'syncComplete', syncCallback: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
5161e41f4b71Sopenharmony_ci
5162e41f4b71Sopenharmony_ci订阅同步完成事件回调通知。
5163e41f4b71Sopenharmony_ci
5164e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5165e41f4b71Sopenharmony_ci
5166e41f4b71Sopenharmony_ci**参数:**
5167e41f4b71Sopenharmony_ci
5168e41f4b71Sopenharmony_ci| 参数名       | 类型                                      | 必填 | 说明                                                   |
5169e41f4b71Sopenharmony_ci| ------------ | --------------------------------------------- | ---- | ------------------------------------------------------ |
5170e41f4b71Sopenharmony_ci| event        | string                                        | 是   | 订阅的事件名,固定为'syncComplete',表示同步完成事件。 |
5171e41f4b71Sopenharmony_ci| syncCallback | Callback&lt;Array&lt;[string, number]&gt;&gt; | 是   | 回调函数。用于向调用方发送同步结果的回调。             |
5172e41f4b71Sopenharmony_ci
5173e41f4b71Sopenharmony_ci**错误码:**
5174e41f4b71Sopenharmony_ci
5175e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
5176e41f4b71Sopenharmony_ci
5177e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5178e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5179e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
5180e41f4b71Sopenharmony_ci
5181e41f4b71Sopenharmony_ci**示例:**
5182e41f4b71Sopenharmony_ci
5183e41f4b71Sopenharmony_ci```ts
5184e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5185e41f4b71Sopenharmony_ci
5186e41f4b71Sopenharmony_ci
5187e41f4b71Sopenharmony_ciconst KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
5188e41f4b71Sopenharmony_ciconst VALUE_TEST_FLOAT_ELEMENT = 321.12;
5189e41f4b71Sopenharmony_citry {
5190e41f4b71Sopenharmony_ci  kvStore.on('syncComplete', (data: [string, number][]) => {
5191e41f4b71Sopenharmony_ci    console.info(`syncComplete ${data}`);
5192e41f4b71Sopenharmony_ci  });
5193e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then(() => {
5194e41f4b71Sopenharmony_ci    console.info('succeeded in putting');
5195e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
5196e41f4b71Sopenharmony_ci    console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
5197e41f4b71Sopenharmony_ci  });
5198e41f4b71Sopenharmony_ci} catch (e) {
5199e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5200e41f4b71Sopenharmony_ci  console.error(`Failed to subscribe syncComplete.code is ${error.code},message is ${error.message}`);
5201e41f4b71Sopenharmony_ci}
5202e41f4b71Sopenharmony_ci```
5203e41f4b71Sopenharmony_ci
5204e41f4b71Sopenharmony_ci### off('dataChange')
5205e41f4b71Sopenharmony_ci
5206e41f4b71Sopenharmony_cioff(event:'dataChange', listener?: Callback&lt;ChangeNotification&gt;): void
5207e41f4b71Sopenharmony_ci
5208e41f4b71Sopenharmony_ci取消订阅数据变更通知。
5209e41f4b71Sopenharmony_ci
5210e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5211e41f4b71Sopenharmony_ci
5212e41f4b71Sopenharmony_ci**参数:**
5213e41f4b71Sopenharmony_ci
5214e41f4b71Sopenharmony_ci| 参数名   | 类型                                                  | 必填 | 说明                                                     |
5215e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------------- | ---- | -------------------------------------------------------- |
5216e41f4b71Sopenharmony_ci| event    | string                                                    | 是   | 取消订阅的事件名,固定为'dataChange',表示数据变更事件。 |
5217e41f4b71Sopenharmony_ci| listener | Callback&lt;[ChangeNotification](#changenotification)&gt; | 否   | 取消订阅的函数。如不设置callback,则取消所有已订阅的函数。 |
5218e41f4b71Sopenharmony_ci
5219e41f4b71Sopenharmony_ci**错误码:**
5220e41f4b71Sopenharmony_ci
5221e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5222e41f4b71Sopenharmony_ci
5223e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5224e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5225e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
5226e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5227e41f4b71Sopenharmony_ci
5228e41f4b71Sopenharmony_ci**示例:**
5229e41f4b71Sopenharmony_ci
5230e41f4b71Sopenharmony_ci```ts
5231e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5232e41f4b71Sopenharmony_ci
5233e41f4b71Sopenharmony_ciclass KvstoreModel {
5234e41f4b71Sopenharmony_ci  call(data: distributedKVStore.ChangeNotification) {
5235e41f4b71Sopenharmony_ci    console.info(`dataChange : ${data}`);
5236e41f4b71Sopenharmony_ci  }
5237e41f4b71Sopenharmony_ci
5238e41f4b71Sopenharmony_ci  subscribeDataChange() {
5239e41f4b71Sopenharmony_ci    try {
5240e41f4b71Sopenharmony_ci      if (kvStore != null) {
5241e41f4b71Sopenharmony_ci        kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, this.call);
5242e41f4b71Sopenharmony_ci      }
5243e41f4b71Sopenharmony_ci    } catch (err) {
5244e41f4b71Sopenharmony_ci      let error = err as BusinessError;
5245e41f4b71Sopenharmony_ci      console.error(`Failed to subscribeDataChange.code is ${error.code},message is ${error.message}`);
5246e41f4b71Sopenharmony_ci    }
5247e41f4b71Sopenharmony_ci  }
5248e41f4b71Sopenharmony_ci
5249e41f4b71Sopenharmony_ci  unsubscribeDataChange() {
5250e41f4b71Sopenharmony_ci    try {
5251e41f4b71Sopenharmony_ci      if (kvStore != null) {
5252e41f4b71Sopenharmony_ci        kvStore.off('dataChange', this.call);
5253e41f4b71Sopenharmony_ci      }
5254e41f4b71Sopenharmony_ci    } catch (err) {
5255e41f4b71Sopenharmony_ci      let error = err as BusinessError;
5256e41f4b71Sopenharmony_ci      console.error(`Failed to unsubscribeDataChange.code is ${error.code},message is ${error.message}`);
5257e41f4b71Sopenharmony_ci    }
5258e41f4b71Sopenharmony_ci  }
5259e41f4b71Sopenharmony_ci}
5260e41f4b71Sopenharmony_ci```
5261e41f4b71Sopenharmony_ci
5262e41f4b71Sopenharmony_ci### off('syncComplete')
5263e41f4b71Sopenharmony_ci
5264e41f4b71Sopenharmony_cioff(event: 'syncComplete', syncCallback?: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
5265e41f4b71Sopenharmony_ci
5266e41f4b71Sopenharmony_ci取消订阅同步完成事件回调通知。
5267e41f4b71Sopenharmony_ci
5268e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5269e41f4b71Sopenharmony_ci
5270e41f4b71Sopenharmony_ci**参数:**
5271e41f4b71Sopenharmony_ci
5272e41f4b71Sopenharmony_ci| 参数名       | 类型                                      | 必填 | 说明                                                       |
5273e41f4b71Sopenharmony_ci| ------------ | --------------------------------------------- | ---- | ---------------------------------------------------------- |
5274e41f4b71Sopenharmony_ci| event        | string                                        | 是   | 取消订阅的事件名,固定为'syncComplete',表示同步完成事件。 |
5275e41f4b71Sopenharmony_ci| syncCallback | Callback&lt;Array&lt;[string, number]&gt;&gt; | 否   | 取消订阅的函数。如不设置callback,则取消所有已订阅的函数。  |
5276e41f4b71Sopenharmony_ci
5277e41f4b71Sopenharmony_ci**错误码:**
5278e41f4b71Sopenharmony_ci
5279e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
5280e41f4b71Sopenharmony_ci
5281e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5282e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5283e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
5284e41f4b71Sopenharmony_ci
5285e41f4b71Sopenharmony_ci**示例:**
5286e41f4b71Sopenharmony_ci
5287e41f4b71Sopenharmony_ci```ts
5288e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5289e41f4b71Sopenharmony_ci
5290e41f4b71Sopenharmony_ciclass KvstoreModel {
5291e41f4b71Sopenharmony_ci  call(data: [string, number][]) {
5292e41f4b71Sopenharmony_ci    console.info(`syncComplete : ${data}`);
5293e41f4b71Sopenharmony_ci  }
5294e41f4b71Sopenharmony_ci
5295e41f4b71Sopenharmony_ci  subscribeDataChange() {
5296e41f4b71Sopenharmony_ci    try {
5297e41f4b71Sopenharmony_ci      if (kvStore != null) {
5298e41f4b71Sopenharmony_ci        kvStore.on('syncComplete', this.call);
5299e41f4b71Sopenharmony_ci      }
5300e41f4b71Sopenharmony_ci    } catch (err) {
5301e41f4b71Sopenharmony_ci      let error = err as BusinessError;
5302e41f4b71Sopenharmony_ci      console.error(`Failed to subscribeDataChange.code is ${error.code},message is ${error.message}`);
5303e41f4b71Sopenharmony_ci    }
5304e41f4b71Sopenharmony_ci  }
5305e41f4b71Sopenharmony_ci
5306e41f4b71Sopenharmony_ci  unsubscribeDataChange() {
5307e41f4b71Sopenharmony_ci    try {
5308e41f4b71Sopenharmony_ci      if (kvStore != null) {
5309e41f4b71Sopenharmony_ci        kvStore.off('syncComplete', this.call);
5310e41f4b71Sopenharmony_ci      }
5311e41f4b71Sopenharmony_ci    } catch (err) {
5312e41f4b71Sopenharmony_ci      let error = err as BusinessError;
5313e41f4b71Sopenharmony_ci      console.error(`Failed to unsubscribeDataChange.code is ${error.code},message is ${error.message}`);
5314e41f4b71Sopenharmony_ci    }
5315e41f4b71Sopenharmony_ci  } 
5316e41f4b71Sopenharmony_ci}
5317e41f4b71Sopenharmony_ci```
5318e41f4b71Sopenharmony_ci
5319e41f4b71Sopenharmony_ci### getSecurityLevel
5320e41f4b71Sopenharmony_ci
5321e41f4b71Sopenharmony_cigetSecurityLevel(callback: AsyncCallback&lt;SecurityLevel&gt;): void
5322e41f4b71Sopenharmony_ci
5323e41f4b71Sopenharmony_ci获取数据库的安全级别,使用callback异步回调。
5324e41f4b71Sopenharmony_ci
5325e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5326e41f4b71Sopenharmony_ci
5327e41f4b71Sopenharmony_ci**参数:**
5328e41f4b71Sopenharmony_ci
5329e41f4b71Sopenharmony_ci| 参数名   | 类型                                             | 必填 | 说明                             |
5330e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | ---- | -------------------------------- |
5331e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;[SecurityLevel](#securitylevel)&gt; | 是   | 回调函数。返回数据库的安全级别。 |
5332e41f4b71Sopenharmony_ci
5333e41f4b71Sopenharmony_ci**错误码:**
5334e41f4b71Sopenharmony_ci
5335e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
5336e41f4b71Sopenharmony_ci
5337e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5338e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5339e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5340e41f4b71Sopenharmony_ci
5341e41f4b71Sopenharmony_ci**示例:**
5342e41f4b71Sopenharmony_ci
5343e41f4b71Sopenharmony_ci```ts
5344e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5345e41f4b71Sopenharmony_ci
5346e41f4b71Sopenharmony_citry {
5347e41f4b71Sopenharmony_ci  kvStore.getSecurityLevel((err: BusinessError, data: distributedKVStore.SecurityLevel) => {
5348e41f4b71Sopenharmony_ci    if (err != undefined) {
5349e41f4b71Sopenharmony_ci      console.error(`Failed to get SecurityLevel.code is ${err.code},message is ${err.message}`);
5350e41f4b71Sopenharmony_ci      return;
5351e41f4b71Sopenharmony_ci    }
5352e41f4b71Sopenharmony_ci    console.info('Succeeded in getting securityLevel');
5353e41f4b71Sopenharmony_ci  });
5354e41f4b71Sopenharmony_ci} catch (e) {
5355e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5356e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
5357e41f4b71Sopenharmony_ci}
5358e41f4b71Sopenharmony_ci```
5359e41f4b71Sopenharmony_ci
5360e41f4b71Sopenharmony_ci### getSecurityLevel
5361e41f4b71Sopenharmony_ci
5362e41f4b71Sopenharmony_cigetSecurityLevel(): Promise&lt;SecurityLevel&gt;
5363e41f4b71Sopenharmony_ci
5364e41f4b71Sopenharmony_ci获取数据库的安全级别,使用Promise异步回调。
5365e41f4b71Sopenharmony_ci
5366e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5367e41f4b71Sopenharmony_ci
5368e41f4b71Sopenharmony_ci**返回值:**
5369e41f4b71Sopenharmony_ci
5370e41f4b71Sopenharmony_ci| 类型                                           | 说明                                |
5371e41f4b71Sopenharmony_ci| ---------------------------------------------- | ----------------------------------- |
5372e41f4b71Sopenharmony_ci| Promise&lt;[SecurityLevel](#securitylevel)&gt; | Promise对象。返回数据库的安全级别。 |
5373e41f4b71Sopenharmony_ci
5374e41f4b71Sopenharmony_ci**错误码:**
5375e41f4b71Sopenharmony_ci
5376e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)。
5377e41f4b71Sopenharmony_ci
5378e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5379e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5380e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5381e41f4b71Sopenharmony_ci
5382e41f4b71Sopenharmony_ci**示例:**
5383e41f4b71Sopenharmony_ci
5384e41f4b71Sopenharmony_ci```ts
5385e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5386e41f4b71Sopenharmony_ci
5387e41f4b71Sopenharmony_citry {
5388e41f4b71Sopenharmony_ci  kvStore.getSecurityLevel().then((data: distributedKVStore.SecurityLevel) => {
5389e41f4b71Sopenharmony_ci    console.info('Succeeded in getting securityLevel');
5390e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
5391e41f4b71Sopenharmony_ci    console.error(`Failed to get SecurityLevel.code is ${err.code},message is ${err.message}`);
5392e41f4b71Sopenharmony_ci  });
5393e41f4b71Sopenharmony_ci} catch (e) {
5394e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5395e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
5396e41f4b71Sopenharmony_ci}
5397e41f4b71Sopenharmony_ci```
5398e41f4b71Sopenharmony_ci
5399e41f4b71Sopenharmony_ci## DeviceKVStore
5400e41f4b71Sopenharmony_ci
5401e41f4b71Sopenharmony_ci设备协同数据库,继承自SingleKVStore,提供查询数据和同步数据的方法,可以使用SingleKVStore的方法例如:put、putBatch等。
5402e41f4b71Sopenharmony_ci
5403e41f4b71Sopenharmony_ci设备协同数据库,以设备维度对数据进行区分,每台设备仅能写入和修改本设备的数据,其它设备的数据对其是只读的,无法修改其它设备的数据。
5404e41f4b71Sopenharmony_ci
5405e41f4b71Sopenharmony_ci比如,可以使用设备协同数据库实现设备间的图片分享,可以查看其他设备的图片,但无法修改和删除其他设备的图片。
5406e41f4b71Sopenharmony_ci
5407e41f4b71Sopenharmony_ci在调用DeviceKVStore的方法前,需要先通过[getKVStore](#getkvstore)构建一个DeviceKVStore实例。
5408e41f4b71Sopenharmony_ci
5409e41f4b71Sopenharmony_ci### get
5410e41f4b71Sopenharmony_ci
5411e41f4b71Sopenharmony_ciget(key: string, callback: AsyncCallback&lt;boolean | string | number | Uint8Array&gt;): void
5412e41f4b71Sopenharmony_ci
5413e41f4b71Sopenharmony_ci获取本设备指定键的值,使用callback异步回调。
5414e41f4b71Sopenharmony_ci
5415e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5416e41f4b71Sopenharmony_ci
5417e41f4b71Sopenharmony_ci**参数:**
5418e41f4b71Sopenharmony_ci
5419e41f4b71Sopenharmony_ci| 参数名   | 类型                                                         | 必填 | 说明                                                         |
5420e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
5421e41f4b71Sopenharmony_ci| key      | string                                                       | 是   | 要查询数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
5422e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;boolean \| string \| number \| Uint8Array&gt; | 是   | 回调函数。返回获取查询的值。                                 |
5423e41f4b71Sopenharmony_ci
5424e41f4b71Sopenharmony_ci**错误码:**
5425e41f4b71Sopenharmony_ci
5426e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5427e41f4b71Sopenharmony_ci
5428e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5429e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5430e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
5431e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5432e41f4b71Sopenharmony_ci| 15100004     | Not found.                             |
5433e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5434e41f4b71Sopenharmony_ci
5435e41f4b71Sopenharmony_ci**示例:**
5436e41f4b71Sopenharmony_ci
5437e41f4b71Sopenharmony_ci```ts
5438e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5439e41f4b71Sopenharmony_ci
5440e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
5441e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
5442e41f4b71Sopenharmony_citry {
5443e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, (err: BusinessError) => {
5444e41f4b71Sopenharmony_ci    if (err != undefined) {
5445e41f4b71Sopenharmony_ci      console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
5446e41f4b71Sopenharmony_ci      return;
5447e41f4b71Sopenharmony_ci    }
5448e41f4b71Sopenharmony_ci    console.info("Succeeded in putting");
5449e41f4b71Sopenharmony_ci    if (kvStore != null) {
5450e41f4b71Sopenharmony_ci      kvStore.get(KEY_TEST_STRING_ELEMENT, (err: BusinessError, data: boolean | string | number | Uint8Array) => {
5451e41f4b71Sopenharmony_ci        if (err != undefined) {
5452e41f4b71Sopenharmony_ci          console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
5453e41f4b71Sopenharmony_ci          return;
5454e41f4b71Sopenharmony_ci        }
5455e41f4b71Sopenharmony_ci        console.info(`Succeeded in getting data.data=${data}`);
5456e41f4b71Sopenharmony_ci      });
5457e41f4b71Sopenharmony_ci    }
5458e41f4b71Sopenharmony_ci  });
5459e41f4b71Sopenharmony_ci} catch (e) {
5460e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5461e41f4b71Sopenharmony_ci  console.error(`Failed to get.code is ${error.code},message is ${error.message}`);
5462e41f4b71Sopenharmony_ci}
5463e41f4b71Sopenharmony_ci```
5464e41f4b71Sopenharmony_ci
5465e41f4b71Sopenharmony_ci### get
5466e41f4b71Sopenharmony_ci
5467e41f4b71Sopenharmony_ciget(key: string): Promise&lt;boolean | string | number | Uint8Array&gt;
5468e41f4b71Sopenharmony_ci
5469e41f4b71Sopenharmony_ci获取本设备指定键的值,使用Promise异步回调。
5470e41f4b71Sopenharmony_ci
5471e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5472e41f4b71Sopenharmony_ci
5473e41f4b71Sopenharmony_ci**参数:**
5474e41f4b71Sopenharmony_ci
5475e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                                                         |
5476e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------------------------------------ |
5477e41f4b71Sopenharmony_ci| key    | string | 是   | 要查询数据的Key,不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。 |
5478e41f4b71Sopenharmony_ci
5479e41f4b71Sopenharmony_ci**返回值:**
5480e41f4b71Sopenharmony_ci
5481e41f4b71Sopenharmony_ci| 类型                                                     | 说明                            |
5482e41f4b71Sopenharmony_ci| -------------------------------------------------------- | ------------------------------- |
5483e41f4b71Sopenharmony_ci| Promise&lt;Uint8Array \| string \| boolean \| number&gt; | Promise对象。返回获取查询的值。 |
5484e41f4b71Sopenharmony_ci
5485e41f4b71Sopenharmony_ci**错误码:**
5486e41f4b71Sopenharmony_ci
5487e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5488e41f4b71Sopenharmony_ci
5489e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5490e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5491e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
5492e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5493e41f4b71Sopenharmony_ci| 15100004     | Not found.                             |
5494e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5495e41f4b71Sopenharmony_ci
5496e41f4b71Sopenharmony_ci**示例:**
5497e41f4b71Sopenharmony_ci
5498e41f4b71Sopenharmony_ci```ts
5499e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5500e41f4b71Sopenharmony_ci
5501e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string';
5502e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-test-string';
5503e41f4b71Sopenharmony_citry {
5504e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
5505e41f4b71Sopenharmony_ci    console.info(`Succeeded in putting data`);
5506e41f4b71Sopenharmony_ci    if (kvStore != null) {
5507e41f4b71Sopenharmony_ci      kvStore.get(KEY_TEST_STRING_ELEMENT).then((data: boolean | string | number | Uint8Array) => {
5508e41f4b71Sopenharmony_ci        console.info(`Succeeded in getting data.data=${data}`);
5509e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
5510e41f4b71Sopenharmony_ci        console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
5511e41f4b71Sopenharmony_ci      });
5512e41f4b71Sopenharmony_ci    }
5513e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
5514e41f4b71Sopenharmony_ci    console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
5515e41f4b71Sopenharmony_ci  });
5516e41f4b71Sopenharmony_ci} catch (e) {
5517e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5518e41f4b71Sopenharmony_ci  console.error(`Failed to get.code is ${error.code},message is ${error.message}`);
5519e41f4b71Sopenharmony_ci}
5520e41f4b71Sopenharmony_ci```
5521e41f4b71Sopenharmony_ci
5522e41f4b71Sopenharmony_ci### get
5523e41f4b71Sopenharmony_ci
5524e41f4b71Sopenharmony_ciget(deviceId: string, key: string, callback: AsyncCallback&lt;boolean | string | number | Uint8Array&gt;): void
5525e41f4b71Sopenharmony_ci
5526e41f4b71Sopenharmony_ci获取与指定设备ID和Key匹配的string值,使用callback异步回调。
5527e41f4b71Sopenharmony_ci> **说明:** 
5528e41f4b71Sopenharmony_ci>
5529e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
5530e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
5531e41f4b71Sopenharmony_ci
5532e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
5533e41f4b71Sopenharmony_ci
5534e41f4b71Sopenharmony_ci**参数:**
5535e41f4b71Sopenharmony_ci
5536e41f4b71Sopenharmony_ci| 参数名  | 类型 | 必填  | 说明                    |
5537e41f4b71Sopenharmony_ci| -----  | ------   | ----  | ----------------------- |
5538e41f4b71Sopenharmony_ci| deviceId  |string  | 是    |标识要查询其数据的设备。    |
5539e41f4b71Sopenharmony_ci| key       |string  | 是    |表示要查询Key值的键, 不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。    |
5540e41f4b71Sopenharmony_ci| callback  |AsyncCallback&lt;boolean\|string\|number\|Uint8Array&gt;  | 是    |回调函数,返回匹配给定条件的字符串值。    |
5541e41f4b71Sopenharmony_ci
5542e41f4b71Sopenharmony_ci**错误码:**
5543e41f4b71Sopenharmony_ci
5544e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5545e41f4b71Sopenharmony_ci
5546e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5547e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5548e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
5549e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5550e41f4b71Sopenharmony_ci| 15100004     | Not found.                             |
5551e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5552e41f4b71Sopenharmony_ci
5553e41f4b71Sopenharmony_ci**示例:**
5554e41f4b71Sopenharmony_ci
5555e41f4b71Sopenharmony_ci```ts
5556e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5557e41f4b71Sopenharmony_ci
5558e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
5559e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-string-002';
5560e41f4b71Sopenharmony_citry {
5561e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async (err: BusinessError) => {
5562e41f4b71Sopenharmony_ci    if (err != undefined) {
5563e41f4b71Sopenharmony_ci      console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
5564e41f4b71Sopenharmony_ci      return;
5565e41f4b71Sopenharmony_ci    }
5566e41f4b71Sopenharmony_ci    console.info('Succeeded in putting');
5567e41f4b71Sopenharmony_ci    if (kvStore != null) {
5568e41f4b71Sopenharmony_ci      kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, (err: BusinessError, data: boolean | string | number | Uint8Array) => {
5569e41f4b71Sopenharmony_ci        if (err != undefined) {
5570e41f4b71Sopenharmony_ci          console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
5571e41f4b71Sopenharmony_ci          return;
5572e41f4b71Sopenharmony_ci        }
5573e41f4b71Sopenharmony_ci        console.info('Succeeded in getting');
5574e41f4b71Sopenharmony_ci      });
5575e41f4b71Sopenharmony_ci    }
5576e41f4b71Sopenharmony_ci  })
5577e41f4b71Sopenharmony_ci} catch (e) {
5578e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5579e41f4b71Sopenharmony_ci  console.error(`Failed to get.code is ${error.code},message is ${error.message}`);
5580e41f4b71Sopenharmony_ci}
5581e41f4b71Sopenharmony_ci```
5582e41f4b71Sopenharmony_ci
5583e41f4b71Sopenharmony_ci### get
5584e41f4b71Sopenharmony_ci
5585e41f4b71Sopenharmony_ciget(deviceId: string, key: string): Promise&lt;boolean | string | number | Uint8Array&gt;
5586e41f4b71Sopenharmony_ci
5587e41f4b71Sopenharmony_ci获取与指定设备ID和Key匹配的string值,使用Promise异步回调。
5588e41f4b71Sopenharmony_ci> **说明:** 
5589e41f4b71Sopenharmony_ci>
5590e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
5591e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
5592e41f4b71Sopenharmony_ci
5593e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
5594e41f4b71Sopenharmony_ci
5595e41f4b71Sopenharmony_ci**参数:**
5596e41f4b71Sopenharmony_ci
5597e41f4b71Sopenharmony_ci| 参数名   | 类型 | 必填 | 说明                     |
5598e41f4b71Sopenharmony_ci| -------- | -------- | ---- | ------------------------ |
5599e41f4b71Sopenharmony_ci| deviceId | string   | 是   | 标识要查询其数据的设备。 |
5600e41f4b71Sopenharmony_ci| key      | string   | 是   | 表示要查询Key值的键, 不能为空且长度不大于[MAX_KEY_LENGTH](#constants)。    |
5601e41f4b71Sopenharmony_ci
5602e41f4b71Sopenharmony_ci**返回值:**
5603e41f4b71Sopenharmony_ci
5604e41f4b71Sopenharmony_ci| 类型    | 说明       |
5605e41f4b71Sopenharmony_ci| ------  | -------   |
5606e41f4b71Sopenharmony_ci|Promise&lt;boolean\|string\|number\|Uint8Array&gt; |Promise对象。返回匹配给定条件的字符串值。|
5607e41f4b71Sopenharmony_ci
5608e41f4b71Sopenharmony_ci**错误码:**
5609e41f4b71Sopenharmony_ci
5610e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5611e41f4b71Sopenharmony_ci
5612e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5613e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5614e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.  |
5615e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5616e41f4b71Sopenharmony_ci| 15100004     | Not found.                             |
5617e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5618e41f4b71Sopenharmony_ci
5619e41f4b71Sopenharmony_ci**示例:**
5620e41f4b71Sopenharmony_ci
5621e41f4b71Sopenharmony_ci```ts
5622e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5623e41f4b71Sopenharmony_ci
5624e41f4b71Sopenharmony_ciconst KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
5625e41f4b71Sopenharmony_ciconst VALUE_TEST_STRING_ELEMENT = 'value-string-002';
5626e41f4b71Sopenharmony_citry {
5627e41f4b71Sopenharmony_ci  kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async () => {
5628e41f4b71Sopenharmony_ci    console.info('Succeeded in putting');
5629e41f4b71Sopenharmony_ci    if (kvStore != null) {
5630e41f4b71Sopenharmony_ci      kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data: boolean | string | number | Uint8Array) => {
5631e41f4b71Sopenharmony_ci        console.info('Succeeded in getting');
5632e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
5633e41f4b71Sopenharmony_ci        console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
5634e41f4b71Sopenharmony_ci      });
5635e41f4b71Sopenharmony_ci    }
5636e41f4b71Sopenharmony_ci  }).catch((error: BusinessError) => {
5637e41f4b71Sopenharmony_ci    console.error(`Failed to put.code is ${error.code},message is ${error.message}`);
5638e41f4b71Sopenharmony_ci  });
5639e41f4b71Sopenharmony_ci} catch (e) {
5640e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5641e41f4b71Sopenharmony_ci  console.error(`Failed to get.code is ${error.code},message is ${error.message}`);
5642e41f4b71Sopenharmony_ci}
5643e41f4b71Sopenharmony_ci```
5644e41f4b71Sopenharmony_ci
5645e41f4b71Sopenharmony_ci### getEntries
5646e41f4b71Sopenharmony_ci
5647e41f4b71Sopenharmony_cigetEntries(keyPrefix: string, callback: AsyncCallback&lt;Entry[]&gt;): void
5648e41f4b71Sopenharmony_ci
5649e41f4b71Sopenharmony_ci获取匹配本设备指定键前缀的所有键值对,使用callback异步回调。
5650e41f4b71Sopenharmony_ci
5651e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5652e41f4b71Sopenharmony_ci
5653e41f4b71Sopenharmony_ci**参数:**
5654e41f4b71Sopenharmony_ci
5655e41f4b71Sopenharmony_ci| 参数名    | 类型                                   | 必填 | 说明                                     |
5656e41f4b71Sopenharmony_ci| --------- | -------------------------------------- | ---- | ---------------------------------------- |
5657e41f4b71Sopenharmony_ci| keyPrefix | string                                 | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
5658e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;[Entry](#entry)[]&gt; | 是   | 回调函数。返回匹配指定前缀的键值对列表。 |
5659e41f4b71Sopenharmony_ci
5660e41f4b71Sopenharmony_ci**错误码:**
5661e41f4b71Sopenharmony_ci
5662e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5663e41f4b71Sopenharmony_ci
5664e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5665e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5666e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
5667e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5668e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5669e41f4b71Sopenharmony_ci
5670e41f4b71Sopenharmony_ci**示例:**
5671e41f4b71Sopenharmony_ci
5672e41f4b71Sopenharmony_ci```ts
5673e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5674e41f4b71Sopenharmony_ci
5675e41f4b71Sopenharmony_citry {
5676e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
5677e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
5678e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
5679e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
5680e41f4b71Sopenharmony_ci      key: key + i,
5681e41f4b71Sopenharmony_ci      value: {
5682e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
5683e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
5684e41f4b71Sopenharmony_ci      }
5685e41f4b71Sopenharmony_ci    }
5686e41f4b71Sopenharmony_ci    entries.push(entry);
5687e41f4b71Sopenharmony_ci  }
5688e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
5689e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
5690e41f4b71Sopenharmony_ci    if (err != undefined) {
5691e41f4b71Sopenharmony_ci      console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
5692e41f4b71Sopenharmony_ci      return;
5693e41f4b71Sopenharmony_ci    }
5694e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
5695e41f4b71Sopenharmony_ci    if (kvStore != null) {
5696e41f4b71Sopenharmony_ci      kvStore.getEntries('batch_test_string_key', (err: BusinessError, entries: distributedKVStore.Entry[]) => {
5697e41f4b71Sopenharmony_ci        if (err != undefined) {
5698e41f4b71Sopenharmony_ci          console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
5699e41f4b71Sopenharmony_ci          return;
5700e41f4b71Sopenharmony_ci        }
5701e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
5702e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
5703e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
5704e41f4b71Sopenharmony_ci      });
5705e41f4b71Sopenharmony_ci    }
5706e41f4b71Sopenharmony_ci  });
5707e41f4b71Sopenharmony_ci} catch (e) {
5708e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5709e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message} `);
5710e41f4b71Sopenharmony_ci}
5711e41f4b71Sopenharmony_ci```
5712e41f4b71Sopenharmony_ci
5713e41f4b71Sopenharmony_ci### getEntries
5714e41f4b71Sopenharmony_ci
5715e41f4b71Sopenharmony_cigetEntries(keyPrefix: string): Promise&lt;Entry[]&gt;
5716e41f4b71Sopenharmony_ci
5717e41f4b71Sopenharmony_ci获取匹配本设备指定键前缀的所有键值对,使用Promise异步回调。
5718e41f4b71Sopenharmony_ci
5719e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5720e41f4b71Sopenharmony_ci
5721e41f4b71Sopenharmony_ci**参数:**
5722e41f4b71Sopenharmony_ci
5723e41f4b71Sopenharmony_ci| 参数名    | 类型   | 必填 | 说明                 |
5724e41f4b71Sopenharmony_ci| --------- | ------ | ---- | -------------------- |
5725e41f4b71Sopenharmony_ci| keyPrefix | string | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
5726e41f4b71Sopenharmony_ci
5727e41f4b71Sopenharmony_ci**返回值:**
5728e41f4b71Sopenharmony_ci
5729e41f4b71Sopenharmony_ci| 类型                             | 说明                                        |
5730e41f4b71Sopenharmony_ci| -------------------------------- | ------------------------------------------- |
5731e41f4b71Sopenharmony_ci| Promise&lt;[Entry](#entry)[]&gt; | Promise对象。返回匹配指定前缀的键值对列表。 |
5732e41f4b71Sopenharmony_ci
5733e41f4b71Sopenharmony_ci**错误码:**
5734e41f4b71Sopenharmony_ci
5735e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5736e41f4b71Sopenharmony_ci
5737e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5738e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5739e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
5740e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5741e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5742e41f4b71Sopenharmony_ci
5743e41f4b71Sopenharmony_ci**示例:**
5744e41f4b71Sopenharmony_ci
5745e41f4b71Sopenharmony_ci```ts
5746e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5747e41f4b71Sopenharmony_ci
5748e41f4b71Sopenharmony_citry {
5749e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
5750e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
5751e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
5752e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
5753e41f4b71Sopenharmony_ci      key: key + i,
5754e41f4b71Sopenharmony_ci      value: {
5755e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
5756e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
5757e41f4b71Sopenharmony_ci      }
5758e41f4b71Sopenharmony_ci    }
5759e41f4b71Sopenharmony_ci    entries.push(entry);
5760e41f4b71Sopenharmony_ci  }
5761e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
5762e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
5763e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
5764e41f4b71Sopenharmony_ci    if (kvStore != null) {
5765e41f4b71Sopenharmony_ci      kvStore.getEntries('batch_test_string_key').then((entries: distributedKVStore.Entry[]) => {
5766e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
5767e41f4b71Sopenharmony_ci        console.info(`PutBatch ${entries}`);
5768e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
5769e41f4b71Sopenharmony_ci        console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
5770e41f4b71Sopenharmony_ci      });
5771e41f4b71Sopenharmony_ci    }
5772e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
5773e41f4b71Sopenharmony_ci    console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
5774e41f4b71Sopenharmony_ci  });
5775e41f4b71Sopenharmony_ci} catch (e) {
5776e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5777e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message} `);
5778e41f4b71Sopenharmony_ci}
5779e41f4b71Sopenharmony_ci```
5780e41f4b71Sopenharmony_ci
5781e41f4b71Sopenharmony_ci### getEntries
5782e41f4b71Sopenharmony_ci
5783e41f4b71Sopenharmony_cigetEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;Entry[]&gt;): void
5784e41f4b71Sopenharmony_ci
5785e41f4b71Sopenharmony_ci获取与指定设备ID和Key前缀匹配的所有键值对,使用callback异步回调。
5786e41f4b71Sopenharmony_ci> **说明:** 
5787e41f4b71Sopenharmony_ci>
5788e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
5789e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
5790e41f4b71Sopenharmony_ci
5791e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
5792e41f4b71Sopenharmony_ci
5793e41f4b71Sopenharmony_ci**参数:**
5794e41f4b71Sopenharmony_ci
5795e41f4b71Sopenharmony_ci| 参数名    | 类型                               | 必填 | 说明                                           |
5796e41f4b71Sopenharmony_ci| --------- | -------------------------------------- | ---- | ---------------------------------------------- |
5797e41f4b71Sopenharmony_ci| deviceId  | string                                 | 是   | 标识要查询其数据的设备。                       |
5798e41f4b71Sopenharmony_ci| keyPrefix | string                                 | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
5799e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;[Entry](#entry)[]&gt; | 是   | 回调函数,返回满足给定条件的所有键值对的列表。 |
5800e41f4b71Sopenharmony_ci
5801e41f4b71Sopenharmony_ci**错误码:**
5802e41f4b71Sopenharmony_ci
5803e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5804e41f4b71Sopenharmony_ci
5805e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5806e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5807e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
5808e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5809e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5810e41f4b71Sopenharmony_ci
5811e41f4b71Sopenharmony_ci**示例:**
5812e41f4b71Sopenharmony_ci
5813e41f4b71Sopenharmony_ci```ts
5814e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5815e41f4b71Sopenharmony_ci
5816e41f4b71Sopenharmony_citry {
5817e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
5818e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
5819e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
5820e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
5821e41f4b71Sopenharmony_ci      key: key + i,
5822e41f4b71Sopenharmony_ci      value: {
5823e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
5824e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
5825e41f4b71Sopenharmony_ci      }
5826e41f4b71Sopenharmony_ci    }
5827e41f4b71Sopenharmony_ci    entries.push(entry);
5828e41f4b71Sopenharmony_ci  }
5829e41f4b71Sopenharmony_ci  console.info(`entries : ${entries}`);
5830e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
5831e41f4b71Sopenharmony_ci    if (err != undefined) {
5832e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
5833e41f4b71Sopenharmony_ci      return;
5834e41f4b71Sopenharmony_ci    }
5835e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
5836e41f4b71Sopenharmony_ci    if (kvStore != null) {
5837e41f4b71Sopenharmony_ci      kvStore.getEntries('localDeviceId', 'batch_test_string_key', (err: BusinessError, entries: distributedKVStore.Entry[]) => {
5838e41f4b71Sopenharmony_ci        if (err != undefined) {
5839e41f4b71Sopenharmony_ci          console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
5840e41f4b71Sopenharmony_ci          return;
5841e41f4b71Sopenharmony_ci        }
5842e41f4b71Sopenharmony_ci        console.info('Succeeded in getting entries');
5843e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
5844e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
5845e41f4b71Sopenharmony_ci      });
5846e41f4b71Sopenharmony_ci    }
5847e41f4b71Sopenharmony_ci  });
5848e41f4b71Sopenharmony_ci} catch (e) {
5849e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5850e41f4b71Sopenharmony_ci  console.error(`Failed to put batch.code is ${error.code},message is ${error.message}`);
5851e41f4b71Sopenharmony_ci}
5852e41f4b71Sopenharmony_ci```
5853e41f4b71Sopenharmony_ci
5854e41f4b71Sopenharmony_ci### getEntries
5855e41f4b71Sopenharmony_ci
5856e41f4b71Sopenharmony_cigetEntries(deviceId: string, keyPrefix: string): Promise&lt;Entry[]&gt;
5857e41f4b71Sopenharmony_ci
5858e41f4b71Sopenharmony_ci获取与指定设备ID和Key前缀匹配的所有键值对,使用Promise异步回调。
5859e41f4b71Sopenharmony_ci> **说明:** 
5860e41f4b71Sopenharmony_ci>
5861e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
5862e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
5863e41f4b71Sopenharmony_ci
5864e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
5865e41f4b71Sopenharmony_ci
5866e41f4b71Sopenharmony_ci**参数:**
5867e41f4b71Sopenharmony_ci
5868e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                     |
5869e41f4b71Sopenharmony_ci| --------- | -------- | ---- | ------------------------ |
5870e41f4b71Sopenharmony_ci| deviceId  | string   | 是   | 标识要查询其数据的设备。 |
5871e41f4b71Sopenharmony_ci| keyPrefix | string   | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。|
5872e41f4b71Sopenharmony_ci
5873e41f4b71Sopenharmony_ci**返回值:**
5874e41f4b71Sopenharmony_ci
5875e41f4b71Sopenharmony_ci| 类型                             | 说明                                              |
5876e41f4b71Sopenharmony_ci| -------------------------------- | ------------------------------------------------- |
5877e41f4b71Sopenharmony_ci| Promise&lt;[Entry](#entry)[]&gt; | Promise对象。返回匹配给定条件的所有键值对的列表。 |
5878e41f4b71Sopenharmony_ci
5879e41f4b71Sopenharmony_ci**错误码:**
5880e41f4b71Sopenharmony_ci
5881e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5882e41f4b71Sopenharmony_ci
5883e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5884e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5885e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
5886e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5887e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5888e41f4b71Sopenharmony_ci
5889e41f4b71Sopenharmony_ci**示例:**
5890e41f4b71Sopenharmony_ci
5891e41f4b71Sopenharmony_ci<!--code_no_check-->
5892e41f4b71Sopenharmony_ci```ts
5893e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5894e41f4b71Sopenharmony_ci
5895e41f4b71Sopenharmony_citry {
5896e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
5897e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
5898e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
5899e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
5900e41f4b71Sopenharmony_ci      key: key + i,
5901e41f4b71Sopenharmony_ci      value: {
5902e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
5903e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
5904e41f4b71Sopenharmony_ci      }
5905e41f4b71Sopenharmony_ci    }
5906e41f4b71Sopenharmony_ci    entries.push(entry);
5907e41f4b71Sopenharmony_ci  }
5908e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
5909e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
5910e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
5911e41f4b71Sopenharmony_ci    if (kvStore != null) {
5912e41f4b71Sopenharmony_ci      kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries: distributedKVStore.Entry[]) => {
5913e41f4b71Sopenharmony_ci        console.info('Succeeded in getting entries');
5914e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
5915e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
5916e41f4b71Sopenharmony_ci        console.info(`entries[0].value: ${entries[0].value}`);
5917e41f4b71Sopenharmony_ci        console.info(`entries[0].value.value: ${entries[0].value.value}`);
5918e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
5919e41f4b71Sopenharmony_ci        console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
5920e41f4b71Sopenharmony_ci      });
5921e41f4b71Sopenharmony_ci    }
5922e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
5923e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
5924e41f4b71Sopenharmony_ci  });
5925e41f4b71Sopenharmony_ci} catch (e) {
5926e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5927e41f4b71Sopenharmony_ci  console.error(`Failed to put batch.code is ${error.code},message is ${error.message}`);
5928e41f4b71Sopenharmony_ci}
5929e41f4b71Sopenharmony_ci```
5930e41f4b71Sopenharmony_ci
5931e41f4b71Sopenharmony_ci### getEntries
5932e41f4b71Sopenharmony_ci
5933e41f4b71Sopenharmony_cigetEntries(query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void
5934e41f4b71Sopenharmony_ci
5935e41f4b71Sopenharmony_ci获取本设备与指定Query对象匹配的键值对列表,使用callback异步回调。
5936e41f4b71Sopenharmony_ci
5937e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
5938e41f4b71Sopenharmony_ci
5939e41f4b71Sopenharmony_ci**参数:**
5940e41f4b71Sopenharmony_ci
5941e41f4b71Sopenharmony_ci| 参数名   | 类型                                   | 必填 | 说明                                                  |
5942e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ----------------------------------------------------- |
5943e41f4b71Sopenharmony_ci| query    | [Query](#query)                         | 是   | 表示要匹配的键前缀。                                  |
5944e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;[Entry](#entry)[]&gt; | 是   | 回调函数。返回本设备与指定Query对象匹配的键值对列表。 |
5945e41f4b71Sopenharmony_ci
5946e41f4b71Sopenharmony_ci**错误码:**
5947e41f4b71Sopenharmony_ci
5948e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
5949e41f4b71Sopenharmony_ci
5950e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
5951e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
5952e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
5953e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
5954e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
5955e41f4b71Sopenharmony_ci
5956e41f4b71Sopenharmony_ci**示例:**
5957e41f4b71Sopenharmony_ci
5958e41f4b71Sopenharmony_ci```ts
5959e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
5960e41f4b71Sopenharmony_ci
5961e41f4b71Sopenharmony_citry {
5962e41f4b71Sopenharmony_ci  let arr = new Uint8Array([21, 31]);
5963e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
5964e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
5965e41f4b71Sopenharmony_ci    let key = 'batch_test_bool_key';
5966e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
5967e41f4b71Sopenharmony_ci      key: key + i,
5968e41f4b71Sopenharmony_ci      value: {
5969e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.BYTE_ARRAY,
5970e41f4b71Sopenharmony_ci        value: arr
5971e41f4b71Sopenharmony_ci      }
5972e41f4b71Sopenharmony_ci    }
5973e41f4b71Sopenharmony_ci    entries.push(entry);
5974e41f4b71Sopenharmony_ci  }
5975e41f4b71Sopenharmony_ci  console.info(`entries: {entries}`);
5976e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
5977e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
5978e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
5979e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
5980e41f4b71Sopenharmony_ci    if (kvStore != null) {
5981e41f4b71Sopenharmony_ci      kvStore.getEntries(query, (err: BusinessError, entries: distributedKVStore.Entry[]) => {
5982e41f4b71Sopenharmony_ci        if (err != undefined) {
5983e41f4b71Sopenharmony_ci          console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
5984e41f4b71Sopenharmony_ci          return;
5985e41f4b71Sopenharmony_ci        }
5986e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
5987e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
5988e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
5989e41f4b71Sopenharmony_ci      });
5990e41f4b71Sopenharmony_ci    }
5991e41f4b71Sopenharmony_ci  });
5992e41f4b71Sopenharmony_ci} catch (e) {
5993e41f4b71Sopenharmony_ci  let error = e as BusinessError;
5994e41f4b71Sopenharmony_ci  console.error(`Failed to get Entries.code is ${error.code},message is ${error.message}`);
5995e41f4b71Sopenharmony_ci}
5996e41f4b71Sopenharmony_ci```
5997e41f4b71Sopenharmony_ci
5998e41f4b71Sopenharmony_ci### getEntries
5999e41f4b71Sopenharmony_ci
6000e41f4b71Sopenharmony_cigetEntries(query: Query): Promise&lt;Entry[]&gt;
6001e41f4b71Sopenharmony_ci
6002e41f4b71Sopenharmony_ci获取本设备与指定Query对象匹配的键值对列表,使用Promise异步回调。
6003e41f4b71Sopenharmony_ci
6004e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
6005e41f4b71Sopenharmony_ci
6006e41f4b71Sopenharmony_ci**参数:**
6007e41f4b71Sopenharmony_ci
6008e41f4b71Sopenharmony_ci| 参数名 | 类型           | 必填 | 说明           |
6009e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | -------------- |
6010e41f4b71Sopenharmony_ci| query  | [Query](#query) | 是   | 表示查询对象。 |
6011e41f4b71Sopenharmony_ci
6012e41f4b71Sopenharmony_ci**返回值:**
6013e41f4b71Sopenharmony_ci
6014e41f4b71Sopenharmony_ci| 类型                             | 说明                                                     |
6015e41f4b71Sopenharmony_ci| -------------------------------- | -------------------------------------------------------- |
6016e41f4b71Sopenharmony_ci| Promise&lt;[Entry](#entry)[]&gt; | Promise对象。返回本设备与指定Query对象匹配的键值对列表。 |
6017e41f4b71Sopenharmony_ci
6018e41f4b71Sopenharmony_ci**错误码:**
6019e41f4b71Sopenharmony_ci
6020e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6021e41f4b71Sopenharmony_ci
6022e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6023e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6024e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6025e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6026e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6027e41f4b71Sopenharmony_ci
6028e41f4b71Sopenharmony_ci**示例:**
6029e41f4b71Sopenharmony_ci
6030e41f4b71Sopenharmony_ci```ts
6031e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6032e41f4b71Sopenharmony_ci
6033e41f4b71Sopenharmony_citry {
6034e41f4b71Sopenharmony_ci  let arr = new Uint8Array([21, 31]);
6035e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6036e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6037e41f4b71Sopenharmony_ci    let key = 'batch_test_bool_key';
6038e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6039e41f4b71Sopenharmony_ci      key: key + i,
6040e41f4b71Sopenharmony_ci      value: {
6041e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.BYTE_ARRAY,
6042e41f4b71Sopenharmony_ci        value: arr
6043e41f4b71Sopenharmony_ci      }
6044e41f4b71Sopenharmony_ci    }
6045e41f4b71Sopenharmony_ci    entries.push(entry);
6046e41f4b71Sopenharmony_ci  }
6047e41f4b71Sopenharmony_ci  console.info(`entries: {entries}`);
6048e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
6049e41f4b71Sopenharmony_ci    console.info('Succeeded in putting Batch');
6050e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
6051e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
6052e41f4b71Sopenharmony_ci    if (kvStore != null) {
6053e41f4b71Sopenharmony_ci      kvStore.getEntries(query).then((entries: distributedKVStore.Entry[]) => {
6054e41f4b71Sopenharmony_ci        console.info('Succeeded in getting Entries');
6055e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
6056e41f4b71Sopenharmony_ci        console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
6057e41f4b71Sopenharmony_ci      });
6058e41f4b71Sopenharmony_ci    }
6059e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6060e41f4b71Sopenharmony_ci    console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`)
6061e41f4b71Sopenharmony_ci  });
6062e41f4b71Sopenharmony_ci  console.info('Succeeded in getting Entries');
6063e41f4b71Sopenharmony_ci} catch (e) {
6064e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6065e41f4b71Sopenharmony_ci  console.error(`Failed to get Entries.code is ${error.code},message is ${error.message}`);
6066e41f4b71Sopenharmony_ci}
6067e41f4b71Sopenharmony_ci```
6068e41f4b71Sopenharmony_ci
6069e41f4b71Sopenharmony_ci### getEntries
6070e41f4b71Sopenharmony_ci
6071e41f4b71Sopenharmony_cigetEntries(deviceId: string, query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void
6072e41f4b71Sopenharmony_ci
6073e41f4b71Sopenharmony_ci获取与指定设备ID和Query对象匹配的键值对列表,使用callback异步回调。
6074e41f4b71Sopenharmony_ci> **说明:** 
6075e41f4b71Sopenharmony_ci>
6076e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6077e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6078e41f4b71Sopenharmony_ci
6079e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
6080e41f4b71Sopenharmony_ci
6081e41f4b71Sopenharmony_ci**参数:**
6082e41f4b71Sopenharmony_ci
6083e41f4b71Sopenharmony_ci| 参数名   | 类型                               | 必填 | 说明                                                    |
6084e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ------------------------------------------------------- |
6085e41f4b71Sopenharmony_ci| deviceId | string                                 | 是   | 键值对所属的设备ID。                                    |
6086e41f4b71Sopenharmony_ci| query    | [Query](#query)                         | 是   | 表示查询对象。                                          |
6087e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;[Entry](#entry)[]&gt; | 是   | 回调函数。返回与指定设备ID和Query对象匹配的键值对列表。 |
6088e41f4b71Sopenharmony_ci
6089e41f4b71Sopenharmony_ci**错误码:**
6090e41f4b71Sopenharmony_ci
6091e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6092e41f4b71Sopenharmony_ci
6093e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6094e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6095e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6096e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6097e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6098e41f4b71Sopenharmony_ci
6099e41f4b71Sopenharmony_ci**示例:**
6100e41f4b71Sopenharmony_ci
6101e41f4b71Sopenharmony_ci```ts
6102e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6103e41f4b71Sopenharmony_ci
6104e41f4b71Sopenharmony_citry {
6105e41f4b71Sopenharmony_ci  let arr = new Uint8Array([21, 31]);
6106e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6107e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6108e41f4b71Sopenharmony_ci    let key = 'batch_test_bool_key';
6109e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6110e41f4b71Sopenharmony_ci      key: key + i,
6111e41f4b71Sopenharmony_ci      value: {
6112e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.BYTE_ARRAY,
6113e41f4b71Sopenharmony_ci        value: arr
6114e41f4b71Sopenharmony_ci      }
6115e41f4b71Sopenharmony_ci    }
6116e41f4b71Sopenharmony_ci    entries.push(entry);
6117e41f4b71Sopenharmony_ci  }
6118e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
6119e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
6120e41f4b71Sopenharmony_ci    if (err != undefined) {
6121e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6122e41f4b71Sopenharmony_ci      return;
6123e41f4b71Sopenharmony_ci    }
6124e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6125e41f4b71Sopenharmony_ci    let query = new distributedKVStore.Query();
6126e41f4b71Sopenharmony_ci    query.deviceId('localDeviceId');
6127e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
6128e41f4b71Sopenharmony_ci    if (kvStore != null) {
6129e41f4b71Sopenharmony_ci      kvStore.getEntries('localDeviceId', query, (err: BusinessError, entries: distributedKVStore.Entry[]) => {
6130e41f4b71Sopenharmony_ci        if (err != undefined) {
6131e41f4b71Sopenharmony_ci          console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
6132e41f4b71Sopenharmony_ci          return;
6133e41f4b71Sopenharmony_ci        }
6134e41f4b71Sopenharmony_ci        console.info('Succeeded in getting entries');
6135e41f4b71Sopenharmony_ci        console.info(`entries.length: ${entries.length}`);
6136e41f4b71Sopenharmony_ci        console.info(`entries[0]: ${entries[0]}`);
6137e41f4b71Sopenharmony_ci      })
6138e41f4b71Sopenharmony_ci    }
6139e41f4b71Sopenharmony_ci  });
6140e41f4b71Sopenharmony_ci  console.info('Succeeded in getting entries');
6141e41f4b71Sopenharmony_ci} catch (e) {
6142e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6143e41f4b71Sopenharmony_ci  console.error(`Failed to get entries.code is ${error.code},message is ${error.message}`);
6144e41f4b71Sopenharmony_ci}
6145e41f4b71Sopenharmony_ci```
6146e41f4b71Sopenharmony_ci
6147e41f4b71Sopenharmony_ci### getEntries
6148e41f4b71Sopenharmony_ci
6149e41f4b71Sopenharmony_cigetEntries(deviceId: string, query: Query): Promise&lt;Entry[]&gt;
6150e41f4b71Sopenharmony_ci
6151e41f4b71Sopenharmony_ci获取与指定设备ID和Query对象匹配的键值对列表,使用Promise异步回调。
6152e41f4b71Sopenharmony_ci> **说明:** 
6153e41f4b71Sopenharmony_ci>
6154e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6155e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6156e41f4b71Sopenharmony_ci
6157e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
6158e41f4b71Sopenharmony_ci
6159e41f4b71Sopenharmony_ci**参数:**
6160e41f4b71Sopenharmony_ci
6161e41f4b71Sopenharmony_ci| 参数名   | 类型       | 必填 | 说明                 |
6162e41f4b71Sopenharmony_ci| -------- | -------------- | ---- | -------------------- |
6163e41f4b71Sopenharmony_ci| deviceId | string         | 是   | 键值对所属的设备ID。 |
6164e41f4b71Sopenharmony_ci| query    | [Query](#query) | 是   | 表示查询对象。       |
6165e41f4b71Sopenharmony_ci
6166e41f4b71Sopenharmony_ci**返回值:**
6167e41f4b71Sopenharmony_ci
6168e41f4b71Sopenharmony_ci| 类型                             | 说明                                                       |
6169e41f4b71Sopenharmony_ci| -------------------------------- | ---------------------------------------------------------- |
6170e41f4b71Sopenharmony_ci| Promise&lt;[Entry](#entry)[]&gt; | Promise对象。返回与指定设备ID和Query对象匹配的键值对列表。 |
6171e41f4b71Sopenharmony_ci
6172e41f4b71Sopenharmony_ci**错误码:**
6173e41f4b71Sopenharmony_ci
6174e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6175e41f4b71Sopenharmony_ci
6176e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6177e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6178e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6179e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6180e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6181e41f4b71Sopenharmony_ci
6182e41f4b71Sopenharmony_ci**示例:**
6183e41f4b71Sopenharmony_ci
6184e41f4b71Sopenharmony_ci<!--code_no_check-->
6185e41f4b71Sopenharmony_ci```ts
6186e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6187e41f4b71Sopenharmony_ci
6188e41f4b71Sopenharmony_citry {
6189e41f4b71Sopenharmony_ci  let arr = new Uint8Array([21, 31]);
6190e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6191e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6192e41f4b71Sopenharmony_ci    let key = 'batch_test_bool_key';
6193e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6194e41f4b71Sopenharmony_ci      key: key + i,
6195e41f4b71Sopenharmony_ci      value: {
6196e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.BYTE_ARRAY,
6197e41f4b71Sopenharmony_ci        value: arr
6198e41f4b71Sopenharmony_ci      }
6199e41f4b71Sopenharmony_ci    }
6200e41f4b71Sopenharmony_ci    entries.push(entry);
6201e41f4b71Sopenharmony_ci  }
6202e41f4b71Sopenharmony_ci  console.info(`entries: ${entries}`);
6203e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
6204e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6205e41f4b71Sopenharmony_ci    let query = new distributedKVStore.Query();
6206e41f4b71Sopenharmony_ci    query.deviceId('localDeviceId');
6207e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
6208e41f4b71Sopenharmony_ci    if (kvStore != null) {
6209e41f4b71Sopenharmony_ci      kvStore.getEntries('localDeviceId', query).then((entries: distributedKVStore.Entry[]) => {
6210e41f4b71Sopenharmony_ci        console.info('Succeeded in getting entries');
6211e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
6212e41f4b71Sopenharmony_ci        console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
6213e41f4b71Sopenharmony_ci      });
6214e41f4b71Sopenharmony_ci    }
6215e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6216e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6217e41f4b71Sopenharmony_ci  });
6218e41f4b71Sopenharmony_ci  console.info('Succeeded in getting entries');
6219e41f4b71Sopenharmony_ci} catch (e) {
6220e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6221e41f4b71Sopenharmony_ci  console.error(`Failed to get entries.code is ${error.code},message is ${error.message}`);
6222e41f4b71Sopenharmony_ci}
6223e41f4b71Sopenharmony_ci```
6224e41f4b71Sopenharmony_ci
6225e41f4b71Sopenharmony_ci### getResultSet
6226e41f4b71Sopenharmony_ci
6227e41f4b71Sopenharmony_cigetResultSet(keyPrefix: string, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
6228e41f4b71Sopenharmony_ci
6229e41f4b71Sopenharmony_ci从DeviceKVStore数据库中获取本设备具有指定前缀的结果集,使用callback异步回调。
6230e41f4b71Sopenharmony_ci
6231e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
6232e41f4b71Sopenharmony_ci
6233e41f4b71Sopenharmony_ci**参数:**
6234e41f4b71Sopenharmony_ci
6235e41f4b71Sopenharmony_ci| 参数名    | 类型                                                       | 必填 | 说明                                 |
6236e41f4b71Sopenharmony_ci| --------- | ---------------------------------------------------------- | ---- | ------------------------------------ |
6237e41f4b71Sopenharmony_ci| keyPrefix | string                                                     | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
6238e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | 是   | 回调函数。返回具有指定前缀的结果集。 |
6239e41f4b71Sopenharmony_ci
6240e41f4b71Sopenharmony_ci**错误码:**
6241e41f4b71Sopenharmony_ci
6242e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6243e41f4b71Sopenharmony_ci
6244e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6245e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6246e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6247e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6248e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6249e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6250e41f4b71Sopenharmony_ci
6251e41f4b71Sopenharmony_ci**示例:**
6252e41f4b71Sopenharmony_ci
6253e41f4b71Sopenharmony_ci```ts
6254e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6255e41f4b71Sopenharmony_ci
6256e41f4b71Sopenharmony_citry {
6257e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6258e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6259e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6260e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6261e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6262e41f4b71Sopenharmony_ci      key: key + i,
6263e41f4b71Sopenharmony_ci      value: {
6264e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6265e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6266e41f4b71Sopenharmony_ci      }
6267e41f4b71Sopenharmony_ci    }
6268e41f4b71Sopenharmony_ci    entries.push(entry);
6269e41f4b71Sopenharmony_ci  }
6270e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
6271e41f4b71Sopenharmony_ci    if (err != undefined) {
6272e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6273e41f4b71Sopenharmony_ci      return;
6274e41f4b71Sopenharmony_ci    }
6275e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6276e41f4b71Sopenharmony_ci    if (kvStore != null) {
6277e41f4b71Sopenharmony_ci      kvStore.getResultSet('batch_test_string_key', async (err: BusinessError, result: distributedKVStore.KVStoreResultSet) => {
6278e41f4b71Sopenharmony_ci        if (err != undefined) {
6279e41f4b71Sopenharmony_ci          console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
6280e41f4b71Sopenharmony_ci          return;
6281e41f4b71Sopenharmony_ci        }
6282e41f4b71Sopenharmony_ci        console.info('Succeeded in getting result set');
6283e41f4b71Sopenharmony_ci        resultSet = result;
6284e41f4b71Sopenharmony_ci        if (kvStore != null) {
6285e41f4b71Sopenharmony_ci          kvStore.closeResultSet(resultSet, (err: BusinessError) => {
6286e41f4b71Sopenharmony_ci            if (err != undefined) {
6287e41f4b71Sopenharmony_ci              console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
6288e41f4b71Sopenharmony_ci              return;
6289e41f4b71Sopenharmony_ci            }
6290e41f4b71Sopenharmony_ci            console.info('Succeeded in closing result set');
6291e41f4b71Sopenharmony_ci          })
6292e41f4b71Sopenharmony_ci        }
6293e41f4b71Sopenharmony_ci      });
6294e41f4b71Sopenharmony_ci    }
6295e41f4b71Sopenharmony_ci  });
6296e41f4b71Sopenharmony_ci} catch (e) {
6297e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6298e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.message}`);
6299e41f4b71Sopenharmony_ci}
6300e41f4b71Sopenharmony_ci```
6301e41f4b71Sopenharmony_ci
6302e41f4b71Sopenharmony_ci### getResultSet
6303e41f4b71Sopenharmony_ci
6304e41f4b71Sopenharmony_cigetResultSet(keyPrefix: string): Promise&lt;KVStoreResultSet&gt;
6305e41f4b71Sopenharmony_ci
6306e41f4b71Sopenharmony_ci从DeviceKVStore数据库中获取本设备具有指定前缀的结果集,使用Promise异步回调。
6307e41f4b71Sopenharmony_ci
6308e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
6309e41f4b71Sopenharmony_ci
6310e41f4b71Sopenharmony_ci**参数:**
6311e41f4b71Sopenharmony_ci
6312e41f4b71Sopenharmony_ci| 参数名    | 类型   | 必填 | 说明                 |
6313e41f4b71Sopenharmony_ci| --------- | ------ | ---- | -------------------- |
6314e41f4b71Sopenharmony_ci| keyPrefix | string | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
6315e41f4b71Sopenharmony_ci
6316e41f4b71Sopenharmony_ci**返回值:**
6317e41f4b71Sopenharmony_ci
6318e41f4b71Sopenharmony_ci| 类型                                                 | 说明                                    |
6319e41f4b71Sopenharmony_ci| ---------------------------------------------------- | --------------------------------------- |
6320e41f4b71Sopenharmony_ci| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise对象。返回具有指定前缀的结果集。 |
6321e41f4b71Sopenharmony_ci
6322e41f4b71Sopenharmony_ci**错误码:**
6323e41f4b71Sopenharmony_ci
6324e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6325e41f4b71Sopenharmony_ci
6326e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6327e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6328e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6329e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6330e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6331e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6332e41f4b71Sopenharmony_ci
6333e41f4b71Sopenharmony_ci**示例:**
6334e41f4b71Sopenharmony_ci
6335e41f4b71Sopenharmony_ci```ts
6336e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6337e41f4b71Sopenharmony_ci
6338e41f4b71Sopenharmony_citry {
6339e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6340e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6341e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6342e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6343e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6344e41f4b71Sopenharmony_ci      key: key + i,
6345e41f4b71Sopenharmony_ci      value: {
6346e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6347e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6348e41f4b71Sopenharmony_ci      }
6349e41f4b71Sopenharmony_ci    }
6350e41f4b71Sopenharmony_ci    entries.push(entry);
6351e41f4b71Sopenharmony_ci  }
6352e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
6353e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6354e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6355e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6356e41f4b71Sopenharmony_ci  });
6357e41f4b71Sopenharmony_ci  kvStore.getResultSet('batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
6358e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set');
6359e41f4b71Sopenharmony_ci    resultSet = result;
6360e41f4b71Sopenharmony_ci    if (kvStore != null) {
6361e41f4b71Sopenharmony_ci      kvStore.closeResultSet(resultSet).then(() => {
6362e41f4b71Sopenharmony_ci        console.info('Succeeded in closing result set');
6363e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
6364e41f4b71Sopenharmony_ci        console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
6365e41f4b71Sopenharmony_ci      });
6366e41f4b71Sopenharmony_ci    }
6367e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6368e41f4b71Sopenharmony_ci    console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
6369e41f4b71Sopenharmony_ci  });
6370e41f4b71Sopenharmony_ci} catch (e) {
6371e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6372e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
6373e41f4b71Sopenharmony_ci}
6374e41f4b71Sopenharmony_ci```
6375e41f4b71Sopenharmony_ci
6376e41f4b71Sopenharmony_ci### getResultSet
6377e41f4b71Sopenharmony_ci
6378e41f4b71Sopenharmony_cigetResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
6379e41f4b71Sopenharmony_ci
6380e41f4b71Sopenharmony_ci获取与指定设备ID和Key前缀匹配的KVStoreResultSet对象,使用callback异步回调。
6381e41f4b71Sopenharmony_ci> **说明:** 
6382e41f4b71Sopenharmony_ci>
6383e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6384e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6385e41f4b71Sopenharmony_ci
6386e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
6387e41f4b71Sopenharmony_ci
6388e41f4b71Sopenharmony_ci**参数:**
6389e41f4b71Sopenharmony_ci
6390e41f4b71Sopenharmony_ci| 参数名    | 类型                                                     | 必填 | 说明                                                         |
6391e41f4b71Sopenharmony_ci| --------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
6392e41f4b71Sopenharmony_ci| deviceId  | string                                                       | 是   | 标识要查询其数据的设备。                                     |
6393e41f4b71Sopenharmony_ci| keyPrefix | string                                                       | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
6394e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | 是   | 回调函数。返回与指定设备ID和Key前缀匹配的KVStoreResultSet对象。 |
6395e41f4b71Sopenharmony_ci
6396e41f4b71Sopenharmony_ci**错误码:**
6397e41f4b71Sopenharmony_ci
6398e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6399e41f4b71Sopenharmony_ci
6400e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6401e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6402e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6403e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6404e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6405e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6406e41f4b71Sopenharmony_ci
6407e41f4b71Sopenharmony_ci**示例:**
6408e41f4b71Sopenharmony_ci
6409e41f4b71Sopenharmony_ci```ts
6410e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6411e41f4b71Sopenharmony_ci
6412e41f4b71Sopenharmony_citry {
6413e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6414e41f4b71Sopenharmony_ci  kvStore.getResultSet('localDeviceId', 'batch_test_string_key', async (err: BusinessError, result: distributedKVStore.KVStoreResultSet) => {
6415e41f4b71Sopenharmony_ci    if (err != undefined) {
6416e41f4b71Sopenharmony_ci      console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
6417e41f4b71Sopenharmony_ci      return;
6418e41f4b71Sopenharmony_ci    }
6419e41f4b71Sopenharmony_ci    console.info('Succeeded in getting resultSet');
6420e41f4b71Sopenharmony_ci    resultSet = result;
6421e41f4b71Sopenharmony_ci    if (kvStore != null) {
6422e41f4b71Sopenharmony_ci      kvStore.closeResultSet(resultSet, (err: BusinessError) => {
6423e41f4b71Sopenharmony_ci        if (err != undefined) {
6424e41f4b71Sopenharmony_ci          console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
6425e41f4b71Sopenharmony_ci          return;
6426e41f4b71Sopenharmony_ci        }
6427e41f4b71Sopenharmony_ci        console.info('Succeeded in closing resultSet');
6428e41f4b71Sopenharmony_ci      })
6429e41f4b71Sopenharmony_ci    }
6430e41f4b71Sopenharmony_ci  });
6431e41f4b71Sopenharmony_ci} catch (e) {
6432e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6433e41f4b71Sopenharmony_ci  console.error(`Failed to get resultSet.code is ${error.code},message is ${error.message}`);
6434e41f4b71Sopenharmony_ci}
6435e41f4b71Sopenharmony_ci```
6436e41f4b71Sopenharmony_ci
6437e41f4b71Sopenharmony_ci### getResultSet
6438e41f4b71Sopenharmony_ci
6439e41f4b71Sopenharmony_cigetResultSet(deviceId: string, keyPrefix: string): Promise&lt;KVStoreResultSet&gt;
6440e41f4b71Sopenharmony_ci
6441e41f4b71Sopenharmony_ci获取与指定设备ID和Key前缀匹配的KVStoreResultSet对象,使用Promise异步回调。
6442e41f4b71Sopenharmony_ci> **说明:** 
6443e41f4b71Sopenharmony_ci>
6444e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6445e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6446e41f4b71Sopenharmony_ci
6447e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
6448e41f4b71Sopenharmony_ci
6449e41f4b71Sopenharmony_ci**参数:**
6450e41f4b71Sopenharmony_ci
6451e41f4b71Sopenharmony_ci| 参数名    | 类型 | 必填 | 说明                     |
6452e41f4b71Sopenharmony_ci| --------- | -------- | ---- | ------------------------ |
6453e41f4b71Sopenharmony_ci| deviceId  | string   | 是   | 标识要查询其数据的设备。 |
6454e41f4b71Sopenharmony_ci| keyPrefix | string   | 是   | 表示要匹配的键前缀。不能包含'^',包含'^'的话将导致谓词失效,查询结果会返回数据库中的所有数据。 |
6455e41f4b71Sopenharmony_ci
6456e41f4b71Sopenharmony_ci**返回值:**
6457e41f4b71Sopenharmony_ci
6458e41f4b71Sopenharmony_ci| 类型                                                   | 说明                                                         |
6459e41f4b71Sopenharmony_ci| ------------------------------------------------------ | ------------------------------------------------------------ |
6460e41f4b71Sopenharmony_ci| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise对象。返回与指定设备ID和Key前缀匹配的KVStoreResultSet对象。 |
6461e41f4b71Sopenharmony_ci
6462e41f4b71Sopenharmony_ci**错误码:**
6463e41f4b71Sopenharmony_ci
6464e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6465e41f4b71Sopenharmony_ci
6466e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6467e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6468e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6469e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6470e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6471e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6472e41f4b71Sopenharmony_ci
6473e41f4b71Sopenharmony_ci**示例:**
6474e41f4b71Sopenharmony_ci
6475e41f4b71Sopenharmony_ci<!--code_no_check-->
6476e41f4b71Sopenharmony_ci```ts
6477e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6478e41f4b71Sopenharmony_ci
6479e41f4b71Sopenharmony_citry {
6480e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6481e41f4b71Sopenharmony_ci  kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result: distributedKVStore.KVStoreResultSet) => {
6482e41f4b71Sopenharmony_ci    console.info('Succeeded in getting resultSet');
6483e41f4b71Sopenharmony_ci    resultSet = result;
6484e41f4b71Sopenharmony_ci    if (kvStore != null) {
6485e41f4b71Sopenharmony_ci      kvStore.closeResultSet(resultSet).then(() => {
6486e41f4b71Sopenharmony_ci        console.info('Succeeded in closing resultSet');
6487e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
6488e41f4b71Sopenharmony_ci        console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
6489e41f4b71Sopenharmony_ci      });
6490e41f4b71Sopenharmony_ci    }
6491e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6492e41f4b71Sopenharmony_ci    console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
6493e41f4b71Sopenharmony_ci  });
6494e41f4b71Sopenharmony_ci} catch (e) {
6495e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6496e41f4b71Sopenharmony_ci  console.error(`Failed to get resultSet.code is ${error.code},message is ${error.message}`);
6497e41f4b71Sopenharmony_ci}
6498e41f4b71Sopenharmony_ci```
6499e41f4b71Sopenharmony_ci
6500e41f4b71Sopenharmony_ci### getResultSet
6501e41f4b71Sopenharmony_ci
6502e41f4b71Sopenharmony_cigetResultSet(deviceId: string, query: Query, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
6503e41f4b71Sopenharmony_ci
6504e41f4b71Sopenharmony_ci获取与指定设备ID和Query对象匹配的KVStoreResultSet对象,使用callback异步回调。
6505e41f4b71Sopenharmony_ci> **说明:** 
6506e41f4b71Sopenharmony_ci>
6507e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6508e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6509e41f4b71Sopenharmony_ci
6510e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
6511e41f4b71Sopenharmony_ci
6512e41f4b71Sopenharmony_ci**参数:**
6513e41f4b71Sopenharmony_ci
6514e41f4b71Sopenharmony_ci| 参数名   | 类型                                                     | 必填 | 说明                                                         |
6515e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
6516e41f4b71Sopenharmony_ci| deviceId | string                                                       | 是   | KVStoreResultSet对象所属的设备ID。                           |
6517e41f4b71Sopenharmony_ci| query    | [Query](#query)                                               | 是   | 表示查询对象。                                               |
6518e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | 是   | 回调函数。返回与指定设备ID和Query对象匹配的KVStoreResultSet对象。 |
6519e41f4b71Sopenharmony_ci
6520e41f4b71Sopenharmony_ci**错误码:**
6521e41f4b71Sopenharmony_ci
6522e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6523e41f4b71Sopenharmony_ci
6524e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6525e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6526e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6527e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6528e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6529e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6530e41f4b71Sopenharmony_ci
6531e41f4b71Sopenharmony_ci**示例:**
6532e41f4b71Sopenharmony_ci
6533e41f4b71Sopenharmony_ci```ts
6534e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6535e41f4b71Sopenharmony_ci
6536e41f4b71Sopenharmony_citry {
6537e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6538e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6539e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6540e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6541e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6542e41f4b71Sopenharmony_ci      key: key + i,
6543e41f4b71Sopenharmony_ci      value: {
6544e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6545e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6546e41f4b71Sopenharmony_ci      }
6547e41f4b71Sopenharmony_ci    }
6548e41f4b71Sopenharmony_ci    entries.push(entry);
6549e41f4b71Sopenharmony_ci  }
6550e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
6551e41f4b71Sopenharmony_ci    if (err != undefined) {
6552e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6553e41f4b71Sopenharmony_ci      return;
6554e41f4b71Sopenharmony_ci    }
6555e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6556e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
6557e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
6558e41f4b71Sopenharmony_ci    if (kvStore != null) {
6559e41f4b71Sopenharmony_ci      kvStore.getResultSet('localDeviceId', query, async (err: BusinessError, result: distributedKVStore.KVStoreResultSet) => {
6560e41f4b71Sopenharmony_ci        if (err != undefined) {
6561e41f4b71Sopenharmony_ci          console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
6562e41f4b71Sopenharmony_ci          return;
6563e41f4b71Sopenharmony_ci        }
6564e41f4b71Sopenharmony_ci        console.info('Succeeded in getting resultSet');
6565e41f4b71Sopenharmony_ci        resultSet = result;
6566e41f4b71Sopenharmony_ci        if (kvStore != null) {
6567e41f4b71Sopenharmony_ci          kvStore.closeResultSet(resultSet, (err: BusinessError) => {
6568e41f4b71Sopenharmony_ci            if (err != undefined) {
6569e41f4b71Sopenharmony_ci              console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
6570e41f4b71Sopenharmony_ci              return;
6571e41f4b71Sopenharmony_ci            }
6572e41f4b71Sopenharmony_ci            console.info('Succeeded in closing resultSet');
6573e41f4b71Sopenharmony_ci          })
6574e41f4b71Sopenharmony_ci        }
6575e41f4b71Sopenharmony_ci      });
6576e41f4b71Sopenharmony_ci    }
6577e41f4b71Sopenharmony_ci  });
6578e41f4b71Sopenharmony_ci} catch (e) {
6579e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6580e41f4b71Sopenharmony_ci  console.error(`Failed to get resultSet.code is ${error.code},message is ${error.message}`);
6581e41f4b71Sopenharmony_ci}
6582e41f4b71Sopenharmony_ci```
6583e41f4b71Sopenharmony_ci
6584e41f4b71Sopenharmony_ci### getResultSet
6585e41f4b71Sopenharmony_ci
6586e41f4b71Sopenharmony_cigetResultSet(deviceId: string, query: Query): Promise&lt;KVStoreResultSet&gt;
6587e41f4b71Sopenharmony_ci
6588e41f4b71Sopenharmony_ci获取与指定设备ID和Query对象匹配的KVStoreResultSet对象,使用Promise异步回调。
6589e41f4b71Sopenharmony_ci> **说明:** 
6590e41f4b71Sopenharmony_ci>
6591e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6592e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6593e41f4b71Sopenharmony_ci
6594e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
6595e41f4b71Sopenharmony_ci
6596e41f4b71Sopenharmony_ci**参数:**
6597e41f4b71Sopenharmony_ci
6598e41f4b71Sopenharmony_ci| 参数名   | 类型       | 必填 | 说明                               |
6599e41f4b71Sopenharmony_ci| -------- | -------------- | ---- | ---------------------------------- |
6600e41f4b71Sopenharmony_ci| deviceId | string         | 是   | KVStoreResultSet对象所属的设备ID。 |
6601e41f4b71Sopenharmony_ci| query    | [Query](#query) | 是   | 表示查询对象。                     |
6602e41f4b71Sopenharmony_ci
6603e41f4b71Sopenharmony_ci**返回值:**
6604e41f4b71Sopenharmony_ci
6605e41f4b71Sopenharmony_ci| 类型                                                   | 说明                                                         |
6606e41f4b71Sopenharmony_ci| ------------------------------------------------------ | ------------------------------------------------------------ |
6607e41f4b71Sopenharmony_ci| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise对象。返回与指定设备ID和Query对象匹配的KVStoreResultSet对象。 |
6608e41f4b71Sopenharmony_ci
6609e41f4b71Sopenharmony_ci**错误码:**
6610e41f4b71Sopenharmony_ci
6611e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6612e41f4b71Sopenharmony_ci
6613e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6614e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6615e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6616e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6617e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6618e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6619e41f4b71Sopenharmony_ci
6620e41f4b71Sopenharmony_ci**示例:**
6621e41f4b71Sopenharmony_ci
6622e41f4b71Sopenharmony_ci<!--code_no_check-->
6623e41f4b71Sopenharmony_ci```ts
6624e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6625e41f4b71Sopenharmony_ci
6626e41f4b71Sopenharmony_citry {
6627e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6628e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6629e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6630e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6631e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6632e41f4b71Sopenharmony_ci      key: key + i,
6633e41f4b71Sopenharmony_ci      value: {
6634e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6635e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6636e41f4b71Sopenharmony_ci      }
6637e41f4b71Sopenharmony_ci    }
6638e41f4b71Sopenharmony_ci    entries.push(entry);
6639e41f4b71Sopenharmony_ci  }
6640e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
6641e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6642e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6643e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6644e41f4b71Sopenharmony_ci  });
6645e41f4b71Sopenharmony_ci  const query = new distributedKVStore.Query();
6646e41f4b71Sopenharmony_ci  query.prefixKey("batch_test");
6647e41f4b71Sopenharmony_ci  if (kvStore != null) {
6648e41f4b71Sopenharmony_ci    kvStore.getResultSet('localDeviceId', query).then((result: distributedKVStore.KVStoreResultSet) => {
6649e41f4b71Sopenharmony_ci      console.info('Succeeded in getting resultSet');
6650e41f4b71Sopenharmony_ci      resultSet = result;
6651e41f4b71Sopenharmony_ci      if (kvStore != null) {
6652e41f4b71Sopenharmony_ci        kvStore.closeResultSet(resultSet).then(() => {
6653e41f4b71Sopenharmony_ci          console.info('Succeeded in closing resultSet');
6654e41f4b71Sopenharmony_ci        }).catch((err: BusinessError) => {
6655e41f4b71Sopenharmony_ci          console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
6656e41f4b71Sopenharmony_ci        });
6657e41f4b71Sopenharmony_ci      }
6658e41f4b71Sopenharmony_ci    }).catch((err: BusinessError) => {
6659e41f4b71Sopenharmony_ci      console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
6660e41f4b71Sopenharmony_ci    });
6661e41f4b71Sopenharmony_ci  }
6662e41f4b71Sopenharmony_ci  query.deviceId('localDeviceId');
6663e41f4b71Sopenharmony_ci  console.info("GetResultSet " + query.getSqlLike());
6664e41f4b71Sopenharmony_ci
6665e41f4b71Sopenharmony_ci} catch (e) {
6666e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6667e41f4b71Sopenharmony_ci  console.error(`Failed to get resultSet.code is ${error.code},message is ${error.message}`);
6668e41f4b71Sopenharmony_ci}
6669e41f4b71Sopenharmony_ci```
6670e41f4b71Sopenharmony_ci
6671e41f4b71Sopenharmony_ci### getResultSet
6672e41f4b71Sopenharmony_ci
6673e41f4b71Sopenharmony_cigetResultSet(query: Query): Promise&lt;KVStoreResultSet&gt;
6674e41f4b71Sopenharmony_ci
6675e41f4b71Sopenharmony_ci获取与本设备指定Query对象匹配的KVStoreResultSet对象,使用Promise异步回调。
6676e41f4b71Sopenharmony_ci
6677e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
6678e41f4b71Sopenharmony_ci
6679e41f4b71Sopenharmony_ci**参数:**
6680e41f4b71Sopenharmony_ci
6681e41f4b71Sopenharmony_ci| 参数名 | 类型           | 必填 | 说明           |
6682e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | -------------- |
6683e41f4b71Sopenharmony_ci| query  | [Query](#query) | 是   | 表示查询对象。 |
6684e41f4b71Sopenharmony_ci
6685e41f4b71Sopenharmony_ci**返回值:**
6686e41f4b71Sopenharmony_ci
6687e41f4b71Sopenharmony_ci| 类型                                                 | 说明                                                         |
6688e41f4b71Sopenharmony_ci| ---------------------------------------------------- | ------------------------------------------------------------ |
6689e41f4b71Sopenharmony_ci| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise对象。获取与本设备指定Query对象匹配的KVStoreResultSet对象。 |
6690e41f4b71Sopenharmony_ci
6691e41f4b71Sopenharmony_ci**错误码:**
6692e41f4b71Sopenharmony_ci
6693e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6694e41f4b71Sopenharmony_ci
6695e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6696e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6697e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6698e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6699e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6700e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6701e41f4b71Sopenharmony_ci
6702e41f4b71Sopenharmony_ci**示例:**
6703e41f4b71Sopenharmony_ci
6704e41f4b71Sopenharmony_ci```ts
6705e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6706e41f4b71Sopenharmony_ci
6707e41f4b71Sopenharmony_citry {
6708e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6709e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6710e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6711e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6712e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6713e41f4b71Sopenharmony_ci      key: key + i,
6714e41f4b71Sopenharmony_ci      value: {
6715e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6716e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6717e41f4b71Sopenharmony_ci      }
6718e41f4b71Sopenharmony_ci    }
6719e41f4b71Sopenharmony_ci    entries.push(entry);
6720e41f4b71Sopenharmony_ci  }
6721e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
6722e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6723e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6724e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6725e41f4b71Sopenharmony_ci  });
6726e41f4b71Sopenharmony_ci  const query = new distributedKVStore.Query();
6727e41f4b71Sopenharmony_ci  query.prefixKey("batch_test");
6728e41f4b71Sopenharmony_ci  kvStore.getResultSet(query).then((result: distributedKVStore.KVStoreResultSet) => {
6729e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set');
6730e41f4b71Sopenharmony_ci    resultSet = result;
6731e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6732e41f4b71Sopenharmony_ci    console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
6733e41f4b71Sopenharmony_ci  });
6734e41f4b71Sopenharmony_ci} catch (e) {
6735e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6736e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
6737e41f4b71Sopenharmony_ci}
6738e41f4b71Sopenharmony_ci```
6739e41f4b71Sopenharmony_ci
6740e41f4b71Sopenharmony_ci### getResultSet
6741e41f4b71Sopenharmony_ci
6742e41f4b71Sopenharmony_cigetResultSet(query: Query, callback:AsyncCallback&lt;KVStoreResultSet&gt;): void
6743e41f4b71Sopenharmony_ci
6744e41f4b71Sopenharmony_ci获取与本设备指定Query对象匹配的KVStoreResultSet对象,使用callback异步回调。
6745e41f4b71Sopenharmony_ci> **说明:** 
6746e41f4b71Sopenharmony_ci>
6747e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6748e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6749e41f4b71Sopenharmony_ci
6750e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
6751e41f4b71Sopenharmony_ci
6752e41f4b71Sopenharmony_ci**参数:**
6753e41f4b71Sopenharmony_ci
6754e41f4b71Sopenharmony_ci| 参数名   | 类型           | 必填 | 说明                               |
6755e41f4b71Sopenharmony_ci| -------- | -------------- | ---- | ---------------------------------- |
6756e41f4b71Sopenharmony_ci| query    | [Query](#query) | 是   | 表示查询对象。                     |
6757e41f4b71Sopenharmony_ci| callback    | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | 是   | 回调函数,获取与指定Predicates对象匹配的KVStoreResultSet对象。         |
6758e41f4b71Sopenharmony_ci
6759e41f4b71Sopenharmony_ci
6760e41f4b71Sopenharmony_ci**错误码:**
6761e41f4b71Sopenharmony_ci
6762e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6763e41f4b71Sopenharmony_ci
6764e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6765e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6766e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.|
6767e41f4b71Sopenharmony_ci| 15100001     | Over max  limits.                      |
6768e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6769e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6770e41f4b71Sopenharmony_ci
6771e41f4b71Sopenharmony_ci**示例:**
6772e41f4b71Sopenharmony_ci
6773e41f4b71Sopenharmony_ci```ts
6774e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6775e41f4b71Sopenharmony_ci
6776e41f4b71Sopenharmony_citry {
6777e41f4b71Sopenharmony_ci  let resultSet: distributedKVStore.KVStoreResultSet;
6778e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6779e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6780e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6781e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6782e41f4b71Sopenharmony_ci      key: key + i,
6783e41f4b71Sopenharmony_ci      value: {
6784e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6785e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6786e41f4b71Sopenharmony_ci      }
6787e41f4b71Sopenharmony_ci    }
6788e41f4b71Sopenharmony_ci    entries.push(entry);
6789e41f4b71Sopenharmony_ci  }
6790e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
6791e41f4b71Sopenharmony_ci    if (err != undefined) {
6792e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6793e41f4b71Sopenharmony_ci      return;
6794e41f4b71Sopenharmony_ci    }
6795e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6796e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
6797e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
6798e41f4b71Sopenharmony_ci    if (kvStore != null) {
6799e41f4b71Sopenharmony_ci      kvStore.getResultSet(query, async (err: BusinessError, result: distributedKVStore.KVStoreResultSet) => {
6800e41f4b71Sopenharmony_ci        if (err != undefined) {
6801e41f4b71Sopenharmony_ci          console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
6802e41f4b71Sopenharmony_ci          return;
6803e41f4b71Sopenharmony_ci        }
6804e41f4b71Sopenharmony_ci        console.info('Succeeded in getting resultSet');
6805e41f4b71Sopenharmony_ci        resultSet = result;
6806e41f4b71Sopenharmony_ci        if (kvStore != null) {
6807e41f4b71Sopenharmony_ci          kvStore.closeResultSet(resultSet, (err: BusinessError) => {
6808e41f4b71Sopenharmony_ci            if (err != undefined) {
6809e41f4b71Sopenharmony_ci              console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
6810e41f4b71Sopenharmony_ci              return;
6811e41f4b71Sopenharmony_ci            }
6812e41f4b71Sopenharmony_ci            console.info('Succeeded in closing resultSet');
6813e41f4b71Sopenharmony_ci          })
6814e41f4b71Sopenharmony_ci        }
6815e41f4b71Sopenharmony_ci      });
6816e41f4b71Sopenharmony_ci    }
6817e41f4b71Sopenharmony_ci  });
6818e41f4b71Sopenharmony_ci} catch (e) {
6819e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6820e41f4b71Sopenharmony_ci  console.error(`Failed to get resultSet`);
6821e41f4b71Sopenharmony_ci}
6822e41f4b71Sopenharmony_ci```
6823e41f4b71Sopenharmony_ci
6824e41f4b71Sopenharmony_ci### getResultSize
6825e41f4b71Sopenharmony_ci
6826e41f4b71Sopenharmony_cigetResultSize(query: Query, callback: AsyncCallback&lt;number&gt;): void
6827e41f4b71Sopenharmony_ci
6828e41f4b71Sopenharmony_ci获取与本设备指定Query对象匹配的结果数,使用callback异步回调。
6829e41f4b71Sopenharmony_ci
6830e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
6831e41f4b71Sopenharmony_ci
6832e41f4b71Sopenharmony_ci**参数:**
6833e41f4b71Sopenharmony_ci
6834e41f4b71Sopenharmony_ci| 参数名   | 类型                        | 必填 | 说明                                              |
6835e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ------------------------------------------------- |
6836e41f4b71Sopenharmony_ci| query    | [Query](#query)              | 是   | 表示查询对象。                                    |
6837e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。返回与本设备指定Query对象匹配的结果数。 |
6838e41f4b71Sopenharmony_ci
6839e41f4b71Sopenharmony_ci**错误码:**
6840e41f4b71Sopenharmony_ci
6841e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6842e41f4b71Sopenharmony_ci
6843e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6844e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6845e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
6846e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6847e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6848e41f4b71Sopenharmony_ci
6849e41f4b71Sopenharmony_ci**示例:**
6850e41f4b71Sopenharmony_ci
6851e41f4b71Sopenharmony_ci```ts
6852e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6853e41f4b71Sopenharmony_ci
6854e41f4b71Sopenharmony_citry {
6855e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6856e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6857e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6858e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6859e41f4b71Sopenharmony_ci      key: key + i,
6860e41f4b71Sopenharmony_ci      value: {
6861e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6862e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6863e41f4b71Sopenharmony_ci      }
6864e41f4b71Sopenharmony_ci    }
6865e41f4b71Sopenharmony_ci    entries.push(entry);
6866e41f4b71Sopenharmony_ci  }
6867e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
6868e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6869e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
6870e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
6871e41f4b71Sopenharmony_ci    if (kvStore != null) {
6872e41f4b71Sopenharmony_ci      kvStore.getResultSize(query, async (err: BusinessError, resultSize: number) => {
6873e41f4b71Sopenharmony_ci        if (err != undefined) {
6874e41f4b71Sopenharmony_ci          console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
6875e41f4b71Sopenharmony_ci          return;
6876e41f4b71Sopenharmony_ci        }
6877e41f4b71Sopenharmony_ci        console.info('Succeeded in getting result set size');
6878e41f4b71Sopenharmony_ci      });
6879e41f4b71Sopenharmony_ci    }
6880e41f4b71Sopenharmony_ci  });
6881e41f4b71Sopenharmony_ci} catch (e) {
6882e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6883e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
6884e41f4b71Sopenharmony_ci}
6885e41f4b71Sopenharmony_ci```
6886e41f4b71Sopenharmony_ci
6887e41f4b71Sopenharmony_ci### getResultSize
6888e41f4b71Sopenharmony_ci
6889e41f4b71Sopenharmony_cigetResultSize(query: Query): Promise&lt;number&gt;
6890e41f4b71Sopenharmony_ci
6891e41f4b71Sopenharmony_ci获取与本设备指定Query对象匹配的结果数,使用Promise异步回调。
6892e41f4b71Sopenharmony_ci
6893e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.Core
6894e41f4b71Sopenharmony_ci
6895e41f4b71Sopenharmony_ci**参数:**
6896e41f4b71Sopenharmony_ci
6897e41f4b71Sopenharmony_ci| 参数名 | 类型           | 必填 | 说明           |
6898e41f4b71Sopenharmony_ci| ------ | -------------- | ---- | -------------- |
6899e41f4b71Sopenharmony_ci| query  | [Query](#query) | 是   | 表示查询对象。 |
6900e41f4b71Sopenharmony_ci
6901e41f4b71Sopenharmony_ci**返回值:**
6902e41f4b71Sopenharmony_ci
6903e41f4b71Sopenharmony_ci| 类型                  | 说明                                                 |
6904e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------------------------- |
6905e41f4b71Sopenharmony_ci| Promise&lt;number&gt; | Promise对象。获取与本设备指定Query对象匹配的结果数。 |
6906e41f4b71Sopenharmony_ci
6907e41f4b71Sopenharmony_ci**错误码:**
6908e41f4b71Sopenharmony_ci
6909e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6910e41f4b71Sopenharmony_ci
6911e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6912e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6913e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes:1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
6914e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6915e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6916e41f4b71Sopenharmony_ci
6917e41f4b71Sopenharmony_ci**示例:**
6918e41f4b71Sopenharmony_ci
6919e41f4b71Sopenharmony_ci```ts
6920e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6921e41f4b71Sopenharmony_ci
6922e41f4b71Sopenharmony_citry {
6923e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6924e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6925e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6926e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6927e41f4b71Sopenharmony_ci      key: key + i,
6928e41f4b71Sopenharmony_ci      value: {
6929e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6930e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6931e41f4b71Sopenharmony_ci      }
6932e41f4b71Sopenharmony_ci    }
6933e41f4b71Sopenharmony_ci    entries.push(entry);
6934e41f4b71Sopenharmony_ci  }
6935e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
6936e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
6937e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6938e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
6939e41f4b71Sopenharmony_ci  });
6940e41f4b71Sopenharmony_ci  const query = new distributedKVStore.Query();
6941e41f4b71Sopenharmony_ci  query.prefixKey("batch_test");
6942e41f4b71Sopenharmony_ci  kvStore.getResultSize(query).then((resultSize: number) => {
6943e41f4b71Sopenharmony_ci    console.info('Succeeded in getting result set size');
6944e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
6945e41f4b71Sopenharmony_ci    console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
6946e41f4b71Sopenharmony_ci  });
6947e41f4b71Sopenharmony_ci} catch (e) {
6948e41f4b71Sopenharmony_ci  let error = e as BusinessError;
6949e41f4b71Sopenharmony_ci  console.error(`An unexpected error occurred.code is ${error.code},message is ${error.code}`);
6950e41f4b71Sopenharmony_ci}
6951e41f4b71Sopenharmony_ci```
6952e41f4b71Sopenharmony_ci
6953e41f4b71Sopenharmony_ci### getResultSize
6954e41f4b71Sopenharmony_ci
6955e41f4b71Sopenharmony_cigetResultSize(deviceId: string, query: Query, callback: AsyncCallback&lt;number&gt;): void;
6956e41f4b71Sopenharmony_ci
6957e41f4b71Sopenharmony_ci获取与指定设备ID和Query对象匹配的结果数,使用callback异步回调。
6958e41f4b71Sopenharmony_ci> **说明:** 
6959e41f4b71Sopenharmony_ci>
6960e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
6961e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
6962e41f4b71Sopenharmony_ci
6963e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
6964e41f4b71Sopenharmony_ci
6965e41f4b71Sopenharmony_ci**参数:**
6966e41f4b71Sopenharmony_ci
6967e41f4b71Sopenharmony_ci| 参数名   | 类型                    | 必填 | 说明                                                |
6968e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | --------------------------------------------------- |
6969e41f4b71Sopenharmony_ci| deviceId | string                      | 是   | KVStoreResultSet对象所属的设备ID。                  |
6970e41f4b71Sopenharmony_ci| query    | [Query](#query)              | 是   | 表示查询对象。                                      |
6971e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。返回与指定设备ID和Query对象匹配的结果数。 |
6972e41f4b71Sopenharmony_ci
6973e41f4b71Sopenharmony_ci**错误码:**
6974e41f4b71Sopenharmony_ci
6975e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
6976e41f4b71Sopenharmony_ci
6977e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
6978e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
6979e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
6980e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
6981e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
6982e41f4b71Sopenharmony_ci
6983e41f4b71Sopenharmony_ci**示例:**
6984e41f4b71Sopenharmony_ci
6985e41f4b71Sopenharmony_ci```ts
6986e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
6987e41f4b71Sopenharmony_ci
6988e41f4b71Sopenharmony_citry {
6989e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
6990e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
6991e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
6992e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
6993e41f4b71Sopenharmony_ci      key: key + i,
6994e41f4b71Sopenharmony_ci      value: {
6995e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
6996e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
6997e41f4b71Sopenharmony_ci      }
6998e41f4b71Sopenharmony_ci    }
6999e41f4b71Sopenharmony_ci    entries.push(entry);
7000e41f4b71Sopenharmony_ci  }
7001e41f4b71Sopenharmony_ci  kvStore.putBatch(entries, async (err: BusinessError) => {
7002e41f4b71Sopenharmony_ci    if (err != undefined) {
7003e41f4b71Sopenharmony_ci      console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
7004e41f4b71Sopenharmony_ci      return;
7005e41f4b71Sopenharmony_ci    }
7006e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
7007e41f4b71Sopenharmony_ci    const query = new distributedKVStore.Query();
7008e41f4b71Sopenharmony_ci    query.prefixKey("batch_test");
7009e41f4b71Sopenharmony_ci    if (kvStore != null) {
7010e41f4b71Sopenharmony_ci      kvStore.getResultSize('localDeviceId', query, async (err: BusinessError, resultSize: number) => {
7011e41f4b71Sopenharmony_ci        if (err != undefined) {
7012e41f4b71Sopenharmony_ci          console.error(`Failed to get resultSize.code is ${err.code},message is ${err.message}`);
7013e41f4b71Sopenharmony_ci          return;
7014e41f4b71Sopenharmony_ci        }
7015e41f4b71Sopenharmony_ci        console.info('Succeeded in getting resultSize');
7016e41f4b71Sopenharmony_ci      });
7017e41f4b71Sopenharmony_ci    }
7018e41f4b71Sopenharmony_ci  });
7019e41f4b71Sopenharmony_ci} catch (e) {
7020e41f4b71Sopenharmony_ci  let error = e as BusinessError;
7021e41f4b71Sopenharmony_ci  console.error(`Failed to get resultSize.code is ${error.code},message is ${error.message}`);
7022e41f4b71Sopenharmony_ci}
7023e41f4b71Sopenharmony_ci```
7024e41f4b71Sopenharmony_ci
7025e41f4b71Sopenharmony_ci### getResultSize
7026e41f4b71Sopenharmony_ci
7027e41f4b71Sopenharmony_cigetResultSize(deviceId: string, query: Query): Promise&lt;number&gt;
7028e41f4b71Sopenharmony_ci
7029e41f4b71Sopenharmony_ci获取与指定设备ID和Query对象匹配的结果数,使用Promise异步回调。
7030e41f4b71Sopenharmony_ci> **说明:** 
7031e41f4b71Sopenharmony_ci>
7032e41f4b71Sopenharmony_ci> 其中deviceId通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
7033e41f4b71Sopenharmony_ci> deviceId具体获取方式请参考[sync接口示例](#sync)。
7034e41f4b71Sopenharmony_ci
7035e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
7036e41f4b71Sopenharmony_ci
7037e41f4b71Sopenharmony_ci**参数:**
7038e41f4b71Sopenharmony_ci
7039e41f4b71Sopenharmony_ci| 参数名   | 类型       | 必填 | 说明                               |
7040e41f4b71Sopenharmony_ci| -------- | -------------- | ---- | ---------------------------------- |
7041e41f4b71Sopenharmony_ci| deviceId | string         | 是   | KVStoreResultSet对象所属的设备ID。 |
7042e41f4b71Sopenharmony_ci| query    | [Query](#query) | 是   | 表示查询对象。                     |
7043e41f4b71Sopenharmony_ci
7044e41f4b71Sopenharmony_ci**返回值:**
7045e41f4b71Sopenharmony_ci
7046e41f4b71Sopenharmony_ci| 类型                  | 说明                                                   |
7047e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------------------ |
7048e41f4b71Sopenharmony_ci| Promise&lt;number&gt; | Promise对象。返回与指定设备ID和Query对象匹配的结果数。 |
7049e41f4b71Sopenharmony_ci
7050e41f4b71Sopenharmony_ci**错误码:**
7051e41f4b71Sopenharmony_ci
7052e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[分布式键值数据库错误码](errorcode-distributedKVStore.md)和[通用错误码](../errorcode-universal.md)。
7053e41f4b71Sopenharmony_ci
7054e41f4b71Sopenharmony_ci| **错误码ID** | **错误信息**                           |
7055e41f4b71Sopenharmony_ci| ------------ | -------------------------------------- |
7056e41f4b71Sopenharmony_ci| 401          | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types.  |
7057e41f4b71Sopenharmony_ci| 15100003     | Database corrupted.                    |
7058e41f4b71Sopenharmony_ci| 15100005     | Database or result set already closed. |
7059e41f4b71Sopenharmony_ci
7060e41f4b71Sopenharmony_ci**示例:**
7061e41f4b71Sopenharmony_ci
7062e41f4b71Sopenharmony_ci```ts
7063e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
7064e41f4b71Sopenharmony_ci
7065e41f4b71Sopenharmony_citry {
7066e41f4b71Sopenharmony_ci  let entries: distributedKVStore.Entry[] = [];
7067e41f4b71Sopenharmony_ci  for (let i = 0; i < 10; i++) {
7068e41f4b71Sopenharmony_ci    let key = 'batch_test_string_key';
7069e41f4b71Sopenharmony_ci    let entry: distributedKVStore.Entry = {
7070e41f4b71Sopenharmony_ci      key: key + i,
7071e41f4b71Sopenharmony_ci      value: {
7072e41f4b71Sopenharmony_ci        type: distributedKVStore.ValueType.STRING,
7073e41f4b71Sopenharmony_ci        value: 'batch_test_string_value'
7074e41f4b71Sopenharmony_ci      }
7075e41f4b71Sopenharmony_ci    }
7076e41f4b71Sopenharmony_ci    entries.push(entry);
7077e41f4b71Sopenharmony_ci  }
7078e41f4b71Sopenharmony_ci  kvStore.putBatch(entries).then(async () => {
7079e41f4b71Sopenharmony_ci    console.info('Succeeded in putting batch');
7080e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
7081e41f4b71Sopenharmony_ci    console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
7082e41f4b71Sopenharmony_ci  });
7083e41f4b71Sopenharmony_ci  let query = new distributedKVStore.Query();
7084e41f4b71Sopenharmony_ci  query.prefixKey("batch_test");
7085e41f4b71Sopenharmony_ci  kvStore.getResultSize('localDeviceId', query).then((resultSize: number) => {
7086e41f4b71Sopenharmony_ci    console.info('Succeeded in getting resultSize');
7087e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
7088e41f4b71Sopenharmony_ci    console.error(`Failed to get resultSize.code is ${err.code},message is ${err.message}`);
7089e41f4b71Sopenharmony_ci  });
7090e41f4b71Sopenharmony_ci} catch (e) {
7091e41f4b71Sopenharmony_ci  let error = e as BusinessError;
7092e41f4b71Sopenharmony_ci  console.error(`Failed to get resultSize.code is ${error.code},message is ${error.message}`);
7093e41f4b71Sopenharmony_ci}
7094e41f4b71Sopenharmony_ci```
7095