未验证 提交 1ac6263d 编写于 作者: O openharmony_ci 提交者: Gitee

!17730 [翻译完成】#I6VBGL

Merge pull request !17730 from Annie_wang/PR17248
# @ohos.data.distributedKVStore (Distributed KV Store) # @ohos.data.distributedKVStore (Distributed KV Store)
The **distributedKVStore** module implements collaboration between databases for different devices that forms a Super Device. The APIs provided by this module can be used to save data to a distributed key-value (KV) store and perform operations, such as adding, deleting, modifying, querying, and synchronizing data in distributed KV stores. The **distributedKVStore** module implements collaboration between databases for different devices that forms a Super Device. You can use the APIs provided by this module to save application data to a distributed key-value (KV) store and perform operations, such as adding, deleting, modifying, querying, and synchronizing data in distributed KV stores.
The **distributedKVStore** module provides the following functions: The **distributedKVStore** module provides the following functions:
- [KVManager](#kvmanager): provides a **KVManager** instance to obtain KV store information. - [KVManager](#kvmanager): provides a **KVManager** instance to obtain KV store information.
- [KVStoreResultSet](#kvstoreresultset): provides APIs for obtaining KV store result sets. - [KVStoreResultSet](#kvstoreresultset): provides APIs for accessing the results obtained from a KV store.
- [Query](#query): provides APIs for setting predicates and querying data using predicates. - [Query](#query): provides APIs for setting predicates for data query.
- [SingleKVStore](#singlekvstore): provides APIs for querying data in single KV stores and synchronizing data. The single KV stores manage data without distinguishing devices. - [SingleKVStore](#singlekvstore): provides APIs for querying and synchronizing data in single KV stores. The single KV stores manage data without distinguishing devices.
- [DeviceKVStore](#devicekvstore): provides APIs for querying in device KV stores and synchronizing data. This class inherits from [SingleKVStore](#singlekvstore). The device KV stores manage data by device. - [DeviceKVStore](#devicekvstore): provides APIs for querying and synchronizing data in device KV stores. This class inherits from [SingleKVStore](#singlekvstore). The device KV stores manage data by device.
> **NOTE** > **NOTE**
> >
> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
> <br>All the APIs that need to obtain **deviceId** in this module are available only to system applications.
## Modules to Import ## Modules to Import
...@@ -22,13 +23,13 @@ import distributedKVStore from '@ohos.data.distributedKVStore'; ...@@ -22,13 +23,13 @@ import distributedKVStore from '@ohos.data.distributedKVStore';
## KVManagerConfig ## KVManagerConfig
Provides the **KVManager** instance configuration, including the bundle name of the invoker and the application context. Defines the **KVManager** instance configuration, including the bundle name of the invoker and the application context.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ---------- | --------------------- | ---- | ------------------------------------------------------------ | | ---------- | --------------------- | ---- | ------------------------------------------------------------ |
| context | Context | Yes |Application context.<br>For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md).<br>For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md).| | context | Context | Yes |Application context.<br>For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md).<br>For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md).<br>Since API version 10, the type of **context** is [BaseContext](js-apis-inner-application-baseContext.md).|
| bundleName | string | Yes | Bundle name. | | bundleName | string | Yes | Bundle name. |
## Constants ## Constants
...@@ -39,16 +40,16 @@ Provides constants of the distributed KV store. ...@@ -39,16 +40,16 @@ Provides constants of the distributed KV store.
| Name | Value | Description | | Name | Value | Description |
| --------------------- | ------- | --------------------------------------- | | --------------------- | ------- | --------------------------------------- |
| MAX_KEY_LENGTH | 1024 | Maximum length of a key in the distributed KV store, in bytes. | | MAX_KEY_LENGTH | 1024 | Maximum length of a key in a distributed KV store, in bytes. |
| MAX_VALUE_LENGTH | 4194303 | Maximum length of a value in the distributed KV store, in bytes.| | MAX_VALUE_LENGTH | 4194303 | Maximum length of a value in a distributed KV store, in bytes. |
| MAX_KEY_LENGTH_DEVICE | 896 | Maximum length of a device key, in bytes. | | MAX_KEY_LENGTH_DEVICE | 896 | Maximum length of a key in a device KV store, in bytes.|
| MAX_STORE_ID_LENGTH | 128 | Maximum length of a KV store ID, in bytes. | | MAX_STORE_ID_LENGTH | 128 | Maximum length of a KV store ID, in bytes. |
| MAX_QUERY_LENGTH | 512000 | Maximum query length, in bytes. | | MAX_QUERY_LENGTH | 512000 | Maximum query length, in bytes. |
| MAX_BATCH_SIZE | 128 | Maximum number of batch operations. | | MAX_BATCH_SIZE | 128 | Maximum number of batch operations. |
## ValueType ## ValueType
Enumerates the data types. Enumerates the types of the value in a KV pair.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -70,18 +71,18 @@ Defines the **value** object in a KV store. ...@@ -70,18 +71,18 @@ Defines the **value** object in a KV store.
| Name | Type |Mandatory | Description | | Name | Type |Mandatory | Description |
| ----- | ------- |-----|------------------------ | | ----- | ------- |-----|------------------------ |
| type | [ValueType](#valuetype) | Yes|Type of the value. | | type | [ValueType](#valuetype) | Yes|Type of the value. |
| value | Uint8Array \| string \| number \| boolean| Yes|Value of the KV pair stored in the KV store. | | value | Uint8Array \| string \| number \| boolean| Yes|Value of the KV pair. |
## Entry ## Entry
Defines the KV pairs stored in the KV store. Defines the KV pairs stored in a KV store.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ----- | --------------- | ---- | -------- | | ----- | --------------- | ---- | -------- |
| key | string | Yes | Key of the KV pair stored in the KV store. | | key | string | Yes | Key of a KV pair in the KV store. |
| value | [Value](#value) | Yes | Value of the KV pair stored in the KV store.| | value | [Value](#value) | Yes | Value of a KV pair in the KV store. |
## ChangeNotification ## ChangeNotification
...@@ -126,8 +127,8 @@ Enumerates the distributed KV store types. ...@@ -126,8 +127,8 @@ Enumerates the distributed KV store types.
| Name | Description | | Name | Description |
| -------------------- | ------------------------------------------------------------ | | -------------------- | ------------------------------------------------------------ |
| DEVICE_COLLABORATION | Device KV store.<br> The device KV store manages data by device, which eliminates conflicts. Data can be queried by device.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore| | DEVICE_COLLABORATION | Device KV store.<br>The device KV store manages data by device, which eliminates conflicts. Data can be queried by device.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
| SINGLE_VERSION | Single KV store.<br> The single KV store does not differentiate data by device. If the same key is modified by different devices, the data will be overwritten.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core| | SINGLE_VERSION | Single KV store.<br>The single KV store does not differentiate data by device. If entries with the same key are modified on different devices, the value will be overwritten.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core |
## SecurityLevel ## SecurityLevel
...@@ -135,12 +136,12 @@ Enumerates the KV store security levels. ...@@ -135,12 +136,12 @@ Enumerates the KV store security levels.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
| Name | Description | | Name | Description |
| -------: | ------------------------------------------------------------ | | ---: | ------------------------------------------------------------ |
| S1 | The KV store security level is low. If data leakage occurs, minor impact will be caused on the database. For example, a KV store that contains system data such as wallpapers.| | S1 | Low security level. Disclosure, tampering, corruption, or loss of the data may cause minor impact on an individual or group.<br>Examples: gender and nationality information, and user application records |
| S2 | The KV store security level is medium. If data leakage occurs, moderate impact will be caused on the database. For example, a KV store that contains information created by users or call records, such as audio or video clips.| | S2 | Medium security level. Disclosure, tampering, corruption, or loss of the data may cause major impact on an individual or group.<br>Examples: mailing addresses and nicknames of individuals |
| S3 | The KV store security level is high. If data leakage occurs, major impact will be caused on the database. For example, a KV store that contains information such as user fitness, health, and location data.| | S3 | High security level. Disclosure, tampering, corruption, or loss of the data may cause critical impact on an individual or group.<br>Examples: real-time precise positioning information and movement trajectory |
| S4 | The KV store security level is critical. If data leakage occurs, severe impact will be caused on the database. For example, a KV store that contains information such as authentication credentials and financial data.| | S4 | Critical security level. Disclosure, tampering, corruption, or loss of the data may cause significant adverse impact on an individual or group.<br>Examples: political opinions, religious and philosophical belief, trade union membership, genetic data, biological information, health and sexual life status, sexual orientation, device authentication, and personal credit card information |
## Options ## Options
...@@ -149,10 +150,10 @@ Provides KV store configuration. ...@@ -149,10 +150,10 @@ Provides KV store configuration.
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| --------------- | -------------- | ---- | -------------------------| | --------------- | -------------- | ---- | -------------------------|
| createIfMissing | boolean | No | Whether to create a KV store if no database file exists. By default, a KV store is created.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core| | createIfMissing | boolean | No | Whether to create a KV store if no database file exists. By default, a KV store is created.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core|
| encrypt | boolean | No | Whether to encrypt database files. By default, database files are not encrypted.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core| | encrypt | boolean | No | Whether to encrypt the KV store. By default, KV stores are not encrypted.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core |
| backup | boolean | No | Whether to back up database files. By default, database files are backed up. <br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core| | backup | boolean | No | Whether to back up database files. By default, database files are backed up. <br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core|
| autoSync | boolean | No | Whether to automatically synchronize database files. The value **false** (default) means to manually synchronize database files; the value **true** means to automatically synchronize database files.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core<br>**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC| | autoSync | boolean | No | Whether to automatically synchronize the KV store data. The value **true** means to automatically synchronize the KV store data; the value **false** (default) means the opposite.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core<br>**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC |
| kvStoreType | [KVStoreType](#kvstoretype) | No | Type of the KV store to create. By default, a device KV store is created. The device KV store stores data for multiple devices that collaborate with each other.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core| | kvStoreType | [KVStoreType](#kvstoretype) | No | Type of the KV store to create. By default, a device KV store is created.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core |
| securityLevel | [SecurityLevel](#securitylevel) | Yes |Security level of the KV store.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core| | securityLevel | [SecurityLevel](#securitylevel) | Yes |Security level of the KV store.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.Core|
| schema | [Schema](#schema) | No | Schema used to define the values stored in the KV store. By default, **schema** is not used.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore| | schema | [Schema](#schema) | No | Schema used to define the values stored in the KV store. By default, **schema** is not used.<br>**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore|
...@@ -165,7 +166,7 @@ Defines the schema of a KV store. You can create a **Schema** object and place i ...@@ -165,7 +166,7 @@ Defines the schema of a KV store. You can create a **Schema** object and place i
| Name | Type | Readable| Writable| Description | | Name | Type | Readable| Writable| Description |
| ------- | ----------------------- | ---- | ---- | -------------------------- | | ------- | ----------------------- | ---- | ---- | -------------------------- |
| root | [FieldNode](#fieldnode) | Yes | Yes | JSON root object. | | root | [FieldNode](#fieldnode) | Yes | Yes | JSON root object. |
| indexes | Array\<string> | Yes | Yes | String array in JSON format.| | indexes | Array\<string> | Yes | Yes | Array of strings in JSON format. |
| mode | number | Yes | Yes | Schema mode. | | mode | number | Yes | Yes | Schema mode. |
| skip | number | Yes | Yes | Size of a skip of the schema. | | skip | number | Yes | Yes | Size of a skip of the schema. |
...@@ -226,23 +227,22 @@ Appends a child node to this **FieldNode**. ...@@ -226,23 +227,22 @@ Appends a child node to this **FieldNode**.
**Example** **Example**
```js ```js
import ddm from '@ohos.data.distributedKVStore';
try { try {
let node = new ddm.FieldNode("root"); let node = new distributedKVStore.FieldNode("root");
let child1 = new ddm.FieldNode("child1"); let child1 = new distributedKVStore.FieldNode("child1");
let child2 = new ddm.FieldNode("child2"); let child2 = new distributedKVStore.FieldNode("child2");
let child3 = new ddm.FieldNode("child3"); let child3 = new distributedKVStore.FieldNode("child3");
node.appendChild(child1); node.appendChild(child1);
node.appendChild(child2); node.appendChild(child2);
node.appendChild(child3); node.appendChild(child3);
console.log("appendNode " + JSON.stringify(node)); console.info("appendNode " + JSON.stringify(node));
child1 = null; child1 = null;
child2 = null; child2 = null;
child3 = null; child3 = null;
node = null; node = null;
} catch (e) { } catch (e) {
console.log("AppendChild " + e); console.error("AppendChild " + e);
} }
``` ```
...@@ -250,7 +250,7 @@ try { ...@@ -250,7 +250,7 @@ try {
createKVManager(config: KVManagerConfig): KVManager createKVManager(config: KVManagerConfig): KVManager
Creates a **KVManager** instance to manage KV stores. Creates a **KVManager** instance for KV store management.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -276,7 +276,7 @@ import UIAbility from '@ohos.app.ability.UIAbility'; ...@@ -276,7 +276,7 @@ import UIAbility from '@ohos.app.ability.UIAbility';
let kvManager; let kvManager;
export default class EntryAbility extends UIAbility { export default class EntryAbility extends UIAbility {
onCreate() { onCreate() {
console.log("MyAbilityStage onCreate") console.info("MyAbilityStage onCreate")
let context = this.context let context = this.context
const kvManagerConfig = { const kvManagerConfig = {
context: context, context: context,
...@@ -284,7 +284,7 @@ export default class EntryAbility extends UIAbility { ...@@ -284,7 +284,7 @@ export default class EntryAbility extends UIAbility {
} }
try { try {
kvManager = distributedKVStore.createKVManager(kvManagerConfig); kvManager = distributedKVStore.createKVManager(kvManagerConfig);
console.log("Created KVManager successfully"); console.info("Succeeded in creating KVManager");
} catch (e) { } catch (e) {
console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`); console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
} }
...@@ -304,7 +304,7 @@ const kvManagerConfig = { ...@@ -304,7 +304,7 @@ const kvManagerConfig = {
} }
try { try {
kvManager = distributedKVStore.createKVManager(kvManagerConfig); kvManager = distributedKVStore.createKVManager(kvManagerConfig);
console.log("Created KVManager successfully"); console.info("Succeeded in creating KVManager");
} catch (e) { } catch (e) {
console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`); console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
} }
...@@ -316,7 +316,7 @@ Provides an instance to obtain information about a distributed KV store. Before ...@@ -316,7 +316,7 @@ Provides an instance to obtain information about a distributed KV store. Before
### getKVStore ### getKVStore
getKVStore&lt;T &gt;(storeId: string, options: Options, callback: AsyncCallback&lt;T&gt;): void getKVStore&lt;T&gt;(storeId: string, options: Options, callback: AsyncCallback&lt;T&gt;): void
Creates and obtains a distributed KV store. This API uses an asynchronous callback to return the result. Creates and obtains a distributed KV store. This API uses an asynchronous callback to return the result.
...@@ -343,7 +343,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -343,7 +343,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
let kvStore; let kvStore;
let kvManager;
try { try {
const options = { const options = {
createIfMissing: true, createIfMissing: true,
...@@ -355,20 +354,20 @@ try { ...@@ -355,20 +354,20 @@ try {
}; };
kvManager.getKVStore('storeId', options, function (err, store) { kvManager.getKVStore('storeId', options, function (err, store) {
if (err) { if (err) {
console.error(`Fail to get KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log("Succeeded in getting KVStore"); console.info("Succeeded in getting KVStore");
kvStore = store; kvStore = store;
}); });
} catch (e) { } catch (e) {
console.log(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
} }
``` ```
### getKVStore ### getKVStore
getKVStore&lt;T &gt;(storeId: string, options: Options): Promise&lt;T&gt; getKVStore&lt;T&gt;(storeId: string, options: Options): Promise&lt;T&gt;
Creates and obtains a distributed KV store. This API uses a promise to return the result. Creates and obtains a distributed KV store. This API uses a promise to return the result.
...@@ -400,7 +399,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -400,7 +399,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
let kvStore; let kvStore;
let kvManager;
try { try {
const options = { const options = {
createIfMissing: true, createIfMissing: true,
...@@ -411,13 +409,13 @@ try { ...@@ -411,13 +409,13 @@ try {
securityLevel: distributedKVStore.SecurityLevel.S2, securityLevel: distributedKVStore.SecurityLevel.S2,
}; };
kvManager.getKVStore('storeId', options).then((store) => { kvManager.getKVStore('storeId', options).then((store) => {
console.log("Succeeded in getting KVStore"); console.info("Succeeded in getting KVStore");
kvStore = store; kvStore = store;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.log(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -440,8 +438,6 @@ Closes a distributed KV store. This API uses an asynchronous callback to return ...@@ -440,8 +438,6 @@ Closes a distributed KV store. This API uses an asynchronous callback to return
**Example** **Example**
```js ```js
let kvStore;
let kvManager;
const options = { const options = {
createIfMissing: true, createIfMissing: true,
encrypt: false, encrypt: false,
...@@ -453,14 +449,20 @@ const options = { ...@@ -453,14 +449,20 @@ const options = {
} }
try { try {
kvManager.getKVStore('storeId', options, async function (err, store) { kvManager.getKVStore('storeId', options, async function (err, store) {
console.log('Succeeded in getting KVStore'); if (err != undefined) {
console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
return;
}
console.info('Succeeded in getting KVStore');
kvStore = store; kvStore = store;
kvStore = null;
store = null;
kvManager.closeKVStore('appId', 'storeId', function (err, data) { kvManager.closeKVStore('appId', 'storeId', function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to close KVStore.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing KVStore'); console.info('Succeeded in closing KVStore');
}); });
}); });
} catch (e) { } catch (e) {
...@@ -492,8 +494,6 @@ Closes a distributed KV store. This API uses a promise to return the result. ...@@ -492,8 +494,6 @@ Closes a distributed KV store. This API uses a promise to return the result.
**Example** **Example**
```js ```js
let kvManager;
let kvStore;
const options = { const options = {
createIfMissing: true, createIfMissing: true,
encrypt: false, encrypt: false,
...@@ -505,18 +505,20 @@ const options = { ...@@ -505,18 +505,20 @@ const options = {
} }
try { try {
kvManager.getKVStore('storeId', options).then(async (store) => { kvManager.getKVStore('storeId', options).then(async (store) => {
console.log('Succeeded in getting KVStore'); console.info('Succeeded in getting KVStore');
kvStore = store; kvStore = store;
kvStore = null;
store = null;
kvManager.closeKVStore('appId', 'storeId').then(() => { kvManager.closeKVStore('appId', 'storeId').then(() => {
console.log('Succeeded in closing KVStore'); console.info('Succeeded in closing KVStore');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to close KVStore.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to close KVStore.code is ${e.code},message is ${e.message}`); console.error(`Failed to close KVStore.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -547,8 +549,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -547,8 +549,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvManager;
let kvStore;
const options = { const options = {
createIfMissing: true, createIfMissing: true,
encrypt: false, encrypt: false,
...@@ -561,21 +561,23 @@ const options = { ...@@ -561,21 +561,23 @@ const options = {
try { try {
kvManager.getKVStore('store', options, async function (err, store) { kvManager.getKVStore('store', options, async function (err, store) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting KVStore'); console.info('Succeeded in getting KVStore');
kvStore = store; kvStore = store;
kvStore = null;
store = null;
kvManager.deleteKVStore('appId', 'storeId', function (err, data) { kvManager.deleteKVStore('appId', 'storeId', function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to delete KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete KVStore.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log(`Succeeded in deleting KVStore`); console.info(`Succeeded in deleting KVStore`);
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to delete KVStore.code is ${e.code},message is ${e.message}`); console.error(`Failed to delete KVStore.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -611,8 +613,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -611,8 +613,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvManager;
let kvStore;
const options = { const options = {
createIfMissing: true, createIfMissing: true,
encrypt: false, encrypt: false,
...@@ -624,18 +624,20 @@ const options = { ...@@ -624,18 +624,20 @@ const options = {
} }
try { try {
kvManager.getKVStore('storeId', options).then(async (store) => { kvManager.getKVStore('storeId', options).then(async (store) => {
console.log('Succeeded in getting KVStore'); console.info('Succeeded in getting KVStore');
kvStore = store; kvStore = store;
kvStore = null;
store = null;
kvManager.deleteKVStore('appId', 'storeId').then(() => { kvManager.deleteKVStore('appId', 'storeId').then(() => {
console.log('Succeeded in deleting KVStore'); console.info('Succeeded in deleting KVStore');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to delete KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete KVStore.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get KVStore.code is ${err.code},message is ${err.message}`); console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to delete KVStore.code is ${e.code},message is ${e.message}`); console.error(`Failed to delete KVStore.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -643,7 +645,7 @@ try { ...@@ -643,7 +645,7 @@ try {
getAllKVStoreId(appId: string, callback: AsyncCallback&lt;string[]&gt;): void getAllKVStoreId(appId: string, callback: AsyncCallback&lt;string[]&gt;): void
Obtains the IDs of all distributed KV stores that are created by [getKVStore](#getkvstore) and have not been deleted by [deleteKVStore](#deletekvstore). This API uses an asynchronous callback to return the result. Obtains IDs of all distributed KV stores that are created by [getKVStore](#getkvstore) and have not been deleted by [deleteKVStore](#deletekvstore). This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -657,18 +659,17 @@ Obtains the IDs of all distributed KV stores that are created by [getKVStore](#g ...@@ -657,18 +659,17 @@ Obtains the IDs of all distributed KV stores that are created by [getKVStore](#g
**Example** **Example**
```js ```js
let kvManager;
try { try {
kvManager.getAllKVStoreId('appId', function (err, data) { kvManager.getAllKVStoreId('appId', function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get AllKVStoreId.code is ${err.code},message is ${err.message}`); console.error(`Failed to get AllKVStoreId.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting AllKVStoreId'); console.info('Succeeded in getting AllKVStoreId');
console.log(`GetAllKVStoreId size = ${data.length}`); console.info(`GetAllKVStoreId size = ${data.length}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get AllKVStoreId.code is ${e.code},message is ${e.message}`); console.error(`Failed to get AllKVStoreId.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -676,7 +677,7 @@ try { ...@@ -676,7 +677,7 @@ try {
getAllKVStoreId(appId: string): Promise&lt;string[]&gt; getAllKVStoreId(appId: string): Promise&lt;string[]&gt;
Obtains the IDs of all distributed KV stores that are created by [getKVStore](#getkvstore) and have not been deleted by [deleteKVStore](#deletekvstore). This API uses a promise to return the result. Obtains IDs of all distributed KV stores that are created by [getKVStore](#getkvstore) and have not been deleted by [deleteKVStore](#deletekvstore). This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -690,22 +691,21 @@ Obtains the IDs of all distributed KV stores that are created by [getKVStore](#g ...@@ -690,22 +691,21 @@ Obtains the IDs of all distributed KV stores that are created by [getKVStore](#g
| Type | Description | | Type | Description |
| ----------------------- | ------------------------------------------------------ | | ----------------------- | ------------------------------------------------------ |
| Promise&lt;string[]&gt; | Promise used to return the IDs of all the distributed KV stores created. | | Promise&lt;string[]&gt; | Promise used to return IDs of all the distributed KV stores created. |
**Example** **Example**
```js ```js
let kvManager;
try { try {
console.log('GetAllKVStoreId'); console.info('GetAllKVStoreId');
kvManager.getAllKVStoreId('appId').then((data) => { kvManager.getAllKVStoreId('appId').then((data) => {
console.log('Succeeded in getting AllKVStoreId'); console.info('Succeeded in getting AllKVStoreId');
console.log(`GetAllKVStoreId size = ${data.length}`); console.info(`GetAllKVStoreId size = ${data.length}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get AllKVStoreId.code is ${err.code},message is ${err.message}`); console.error(`Failed to get AllKVStoreId.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get AllKVStoreId.code is ${e.code},message is ${e.message}`); console.error(`Failed to get AllKVStoreId.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -713,7 +713,7 @@ try { ...@@ -713,7 +713,7 @@ try {
on(event: 'distributedDataServiceDie', deathCallback: Callback&lt;void&gt;): void on(event: 'distributedDataServiceDie', deathCallback: Callback&lt;void&gt;): void
Subscribes to service status changes. Subscribes to service status changes. If a service is terminated, you need to register the callbacks for data change notifications and synchronization complete notifications again. In addition, an error will be returned for a synchronization operation.
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -727,15 +727,14 @@ Subscribes to service status changes. ...@@ -727,15 +727,14 @@ Subscribes to service status changes.
**Example** **Example**
```js ```js
let kvManager;
try { try {
console.log('KVManagerOn'); console.info('KVManagerOn');
const deathCallback = function () { const deathCallback = function () {
console.log('death callback call'); console.info('death callback call');
} }
kvManager.on('distributedDataServiceDie', deathCallback); kvManager.on('distributedDataServiceDie', deathCallback);
} catch (e) { } catch (e) {
console.log(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -743,7 +742,7 @@ try { ...@@ -743,7 +742,7 @@ try {
off(event: 'distributedDataServiceDie', deathCallback?: Callback&lt;void&gt;): void off(event: 'distributedDataServiceDie', deathCallback?: Callback&lt;void&gt;): void
Unsubscribes from service status changes. Unsubscribes from service status changes. The **deathCallback** parameter must be a callback registered for subscribing to service status changes. Otherwise, the unsubscription will fail.
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -752,26 +751,25 @@ Unsubscribes from service status changes. ...@@ -752,26 +751,25 @@ Unsubscribes from service status changes.
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ------------- | -------------------- | ---- | ------------------------------------------------------------ | | ------------- | -------------------- | ---- | ------------------------------------------------------------ |
| event | string | Yes | Event to unsubscribe from. The value is **distributedDataServiceDie**, which indicates a service status change event.| | event | string | Yes | Event to unsubscribe from. The value is **distributedDataServiceDie**, which indicates a service status change event.|
| deathCallback | Callback&lt;void&gt; | No | Callback for the service status change event. | | deathCallback | Callback&lt;void&gt; | No | Callback for the service status change event. If this parameter is not specified, all deathCallback subscriptions will be canceled. |
**Example** **Example**
```js ```js
let kvManager;
try { try {
console.log('KVManagerOff'); console.info('KVManagerOff');
const deathCallback = function () { const deathCallback = function () {
console.log('death callback call'); console.info('death callback call');
} }
kvManager.off('distributedDataServiceDie', deathCallback); kvManager.off('distributedDataServiceDie', deathCallback);
} catch (e) { } catch (e) {
console.log(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
} }
``` ```
## KVStoreResultSet ## KVStoreResultSet
Provides APIs for obtaining the distributed KV store result sets. Provides APIs for obtaining the distributed KV store result sets. A maximum of eight result sets can be opened at a time.
Before calling any API in **KVStoreResultSet**, you must use **[getKVStore](#getkvstore)** to construct a **SingleKVStore** or **DeviceKVStore** instance. Before calling any API in **KVStoreResultSet**, you must use **[getKVStore](#getkvstore)** to construct a **SingleKVStore** or **DeviceKVStore** instance.
...@@ -792,19 +790,19 @@ Obtains the total number of rows in the result set. ...@@ -792,19 +790,19 @@ Obtains the total number of rows in the result set.
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let count;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
count = resultSet.getCount();
console.info("getCount succeed:" + count);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const count = resultSet.getCount();
console.log("getCount succeed:" + count);
} catch (e) { } catch (e) {
console.log("getCount failed: " + e); console.error("getCount failed: " + e);
} }
``` ```
...@@ -812,7 +810,7 @@ try { ...@@ -812,7 +810,7 @@ try {
getPosition(): number getPosition(): number
Obtains the current data read position (position from which data is read) in the result set. Obtains the current data read position (position from which data is read) in the result set. The read position changes with the operations, such as [moveToFirst](#movetofirst) and [moveToLast](#movetolast).
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -820,24 +818,24 @@ Obtains the current data read position (position from which data is read) in the ...@@ -820,24 +818,24 @@ Obtains the current data read position (position from which data is read) in the
| Type | Description | | Type | Description |
| ------ | ------------------ | | ------ | ------------------ |
| number | Current data read position obtained.| | number | Current data read position obtained. The value must be greater than or equal to **-1**. The value **-1** means no data is read; the value **0** indicates the first row.|
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let position;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeeded.'); console.info('getResultSet succeeded.');
resultSet = result; resultSet = result;
position = resultSet.getPosition();
console.info("getPosition succeed:" + position);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const position = resultSet.getPosition();
console.log("getPosition succeed:" + position);
} catch (e) { } catch (e) {
console.log("getPosition failed: " + e); console.error("getPosition failed: " + e);
} }
``` ```
...@@ -858,19 +856,19 @@ Moves the data read position to the first row. If the result set is empty, **fal ...@@ -858,19 +856,19 @@ Moves the data read position to the first row. If the result set is empty, **fal
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let moved;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
moved = resultSet.moveToFirst();
console.info("moveToFirst succeed: " + moved);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const moved1 = resultSet.moveToFirst();
console.log("moveToFirst succeed: " + moved1);
} catch (e) { } catch (e) {
console.log("moveToFirst failed " + e); console.error("moveToFirst failed " + e);
} }
``` ```
...@@ -891,19 +889,19 @@ Moves the data read position to the last row. If the result set is empty, **fals ...@@ -891,19 +889,19 @@ Moves the data read position to the last row. If the result set is empty, **fals
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let moved;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
moved = resultSet.moveToLast();
console.info("moveToLast succeed:" + moved);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const moved2 = resultSet.moveToLast();
console.log("moveToLast succeed:" + moved2);
} catch (e) { } catch (e) {
console.log("moveToLast failed: " + e); console.error("moveToLast failed: " + e);
} }
``` ```
...@@ -911,7 +909,7 @@ try { ...@@ -911,7 +909,7 @@ try {
moveToNext(): boolean moveToNext(): boolean
Moves the data read position to the next row. If the result set is empty, **false** will be returned. Moves the data read position to the next row. If the result set is empty, **false** will be returned. This API applies when the whole result set is obtained.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -924,19 +922,22 @@ Moves the data read position to the next row. If the result set is empty, **fals ...@@ -924,19 +922,22 @@ Moves the data read position to the next row. If the result set is empty, **fals
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let moved;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
do {
moved = resultSet.moveToNext();
const entry = resultSet.getEntry();
console.info("moveToNext succeed: " + moved);
} while (moved)
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const moved3 = resultSet.moveToNext();
console.log("moveToNext succeed: " + moved3);
} catch (e) { } catch (e) {
console.log("moveToNext failed: " + e); console.error("moveToNext failed: " + e);
} }
``` ```
...@@ -944,7 +945,7 @@ try { ...@@ -944,7 +945,7 @@ try {
moveToPrevious(): boolean moveToPrevious(): boolean
Moves the data read position to the previous row. If the result set is empty, **false** will be returned. Moves the data read position to the previous row. If the result set is empty, **false** will be returned. This API applies when the whole result set is obtained.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -957,19 +958,20 @@ Moves the data read position to the previous row. If the result set is empty, ** ...@@ -957,19 +958,20 @@ Moves the data read position to the previous row. If the result set is empty, **
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let moved;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
moved = resultSet.moveToLast();
moved = resultSet.moveToPrevious();
console.info("moveToPrevious succeed:" + moved);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const moved4 = resultSet.moveToPrevious();
console.log("moveToPrevious succeed:" + moved4);
} catch (e) { } catch (e) {
console.log("moveToPrevious failed: " + e); console.error("moveToPrevious failed: " + e);
} }
``` ```
...@@ -977,7 +979,7 @@ try { ...@@ -977,7 +979,7 @@ try {
move(offset: number): boolean move(offset: number): boolean
Moves the data read position with the specified offset from the current position. Moves the data read position with the specified offset from the current position. That is, move the number of rows specified by **offset** from the current position.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -996,19 +998,19 @@ Moves the data read position with the specified offset from the current position ...@@ -996,19 +998,19 @@ Moves the data read position with the specified offset from the current position
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let moved;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('Succeeded in getting resultSet'); console.info('Succeeded in getting resultSet');
resultSet = result; resultSet = result;
moved = resultSet.move(2); // If the current position is 0, move the read position forward by two rows, that is, move to row 3.
console.info(`Succeeded in moving.moved = ${moved}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
}); });
const moved5 = resultSet.move(1);
console.log(`Succeeded in moving.moved5 = ${moved5}`);
} catch (e) { } catch (e) {
console.log(`Fail to move.code is ${e.code},message is ${e.message}`); console.error(`Failed to move.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -1035,19 +1037,19 @@ Moves the data read position from 0 to an absolute position. ...@@ -1035,19 +1037,19 @@ Moves the data read position from 0 to an absolute position.
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let moved;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('Succeeded in getting resultSet'); console.info('Succeeded in getting resultSet');
resultSet = result; resultSet = result;
moved = resultSet.moveToPosition(1);
console.info(`Succeeded in moving to position.moved=${moved}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
}); });
const moved6 = resultSet.moveToPosition(1);
console.log(`Succeeded in moving to position.moved6=${moved6}`);
} catch (e) { } catch (e) {
console.error(`Fail to move to position.code is ${e.code},message is ${e.message}`); console.error(`Failed to move to position.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -1068,19 +1070,19 @@ Checks whether the data read position is the first row. ...@@ -1068,19 +1070,19 @@ Checks whether the data read position is the first row.
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let isfirst;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
isfirst = resultSet.isFirst();
console.info("Check isFirst succeed:" + isfirst);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const isfirst = resultSet.isFirst();
console.log("Check isFirst succeed:" + isfirst);
} catch (e) { } catch (e) {
console.log("Check isFirst failed: " + e); console.error("Check isFirst failed: " + e);
} }
``` ```
...@@ -1101,19 +1103,19 @@ Checks whether the data read position is the last row. ...@@ -1101,19 +1103,19 @@ Checks whether the data read position is the last row.
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let islast;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
islast = resultSet.isLast();
console.info("Check isLast succeed: " + islast);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const islast = resultSet.isLast();
console.log("Check isLast succeed: " + islast);
} catch (e) { } catch (e) {
console.log("Check isLast failed: " + e); console.error("Check isLast failed: " + e);
} }
``` ```
...@@ -1134,19 +1136,18 @@ Checks whether the data read position is before the first row. ...@@ -1134,19 +1136,18 @@ Checks whether the data read position is before the first row.
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
const isbeforefirst = resultSet.isBeforeFirst();
console.info("Check isBeforeFirst succeed: " + isbeforefirst);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const isbeforefirst = resultSet.isBeforeFirst();
console.log("Check isBeforeFirst succeed: " + isbeforefirst);
} catch (e) { } catch (e) {
console.log("Check isBeforeFirst failed: " + e); console.error("Check isBeforeFirst failed: " + e);
} }
``` ```
...@@ -1167,19 +1168,18 @@ Checks whether the data read position is after the last row. ...@@ -1167,19 +1168,18 @@ Checks whether the data read position is after the last row.
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
const isafterlast = resultSet.isAfterLast();
console.info("Check isAfterLast succeed:" + isafterlast);
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const isafterlast = resultSet.isAfterLast();
console.log("Check isAfterLast succeed:" + isafterlast);
} catch (e) { } catch (e) {
console.log("Check isAfterLast failed: " + e); console.error("Check isAfterLast failed: " + e);
} }
``` ```
...@@ -1200,25 +1200,24 @@ Obtains the KV pair from the current position. ...@@ -1200,25 +1200,24 @@ Obtains the KV pair from the current position.
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('getResultSet succeed.'); console.info('getResultSet succeed.');
resultSet = result; resultSet = result;
const entry = resultSet.getEntry();
console.info("getEntry succeed:" + JSON.stringify(entry));
}).catch((err) => { }).catch((err) => {
console.log('getResultSet failed: ' + err); console.error('getResultSet failed: ' + err);
}); });
const entry = resultSet.getEntry();
console.log("getEntry succeed:" + JSON.stringify(entry));
} catch (e) { } catch (e) {
console.log("getEntry failed: " + e); console.error("getEntry failed: " + e);
} }
``` ```
## Query ## Query
Provides methods to create a **Query** object, which defines different data query criteria. Provides methods to create a **Query** object, which defines different data query criteria. A **Query** object supports a maximum of 256 predicates.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -1250,12 +1249,12 @@ Resets the **Query** object. ...@@ -1250,12 +1249,12 @@ Resets the **Query** object.
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.equalTo("key", "value"); query.equalTo("key", "value");
console.log("query is " + query.getSqlLike()); console.info("query is " + query.getSqlLike());
query.reset(); query.reset();
console.log("query is " + query.getSqlLike()); console.info("query is " + query.getSqlLike());
query = null; query = null;
} catch (e) { } catch (e) {
console.log("simply calls should be ok :" + e); console.error("simply calls should be ok :" + e);
} }
``` ```
...@@ -1286,7 +1285,7 @@ Creates a **Query** object to match the specified field whose value is equal to ...@@ -1286,7 +1285,7 @@ Creates a **Query** object to match the specified field whose value is equal to
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.equalTo("field", "value"); query.equalTo("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.ode is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.ode is ${e.code},message is ${e.message}`);
...@@ -1320,7 +1319,7 @@ Creates a **Query** object to match the specified field whose value is not equal ...@@ -1320,7 +1319,7 @@ Creates a **Query** object to match the specified field whose value is not equal
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.notEqualTo("field", "value"); query.notEqualTo("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1353,7 +1352,7 @@ Creates a **Query** object to match the specified field whose value is greater t ...@@ -1353,7 +1352,7 @@ Creates a **Query** object to match the specified field whose value is greater t
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.greaterThan("field", "value"); query.greaterThan("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1388,7 +1387,7 @@ Creates a **Query** object to match the specified field whose value is less than ...@@ -1388,7 +1387,7 @@ Creates a **Query** object to match the specified field whose value is less than
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.lessThan("field", "value"); query.lessThan("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1423,7 +1422,7 @@ Creates a **Query** object to match the specified field whose value is greater t ...@@ -1423,7 +1422,7 @@ Creates a **Query** object to match the specified field whose value is greater t
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.greaterThanOrEqualTo("field", "value"); query.greaterThanOrEqualTo("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1458,7 +1457,7 @@ Creates a **Query** object to match the specified field whose value is less than ...@@ -1458,7 +1457,7 @@ Creates a **Query** object to match the specified field whose value is less than
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.lessThanOrEqualTo("field", "value"); query.lessThanOrEqualTo("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1491,7 +1490,7 @@ Creates a **Query** object to match the specified field whose value is **null**. ...@@ -1491,7 +1490,7 @@ Creates a **Query** object to match the specified field whose value is **null**.
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.isNull("field"); query.isNull("field");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1525,7 +1524,7 @@ Creates a **Query** object to match the specified field whose value is within th ...@@ -1525,7 +1524,7 @@ Creates a **Query** object to match the specified field whose value is within th
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.inNumber("field", [0, 1]); query.inNumber("field", [0, 1]);
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1559,7 +1558,7 @@ Creates a **Query** object to match the specified field whose value is within th ...@@ -1559,7 +1558,7 @@ Creates a **Query** object to match the specified field whose value is within th
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.inString("field", ['test1', 'test2']); query.inString("field", ['test1', 'test2']);
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1593,7 +1592,7 @@ Creates a **Query** object to match the specified field whose value is not withi ...@@ -1593,7 +1592,7 @@ Creates a **Query** object to match the specified field whose value is not withi
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.notInNumber("field", [0, 1]); query.notInNumber("field", [0, 1]);
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1627,7 +1626,7 @@ Creates a **Query** object to match the specified field whose value is not withi ...@@ -1627,7 +1626,7 @@ Creates a **Query** object to match the specified field whose value is not withi
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.notInString("field", ['test1', 'test2']); query.notInString("field", ['test1', 'test2']);
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1661,7 +1660,7 @@ Creates a **Query** object to match the specified field whose value is similar t ...@@ -1661,7 +1660,7 @@ Creates a **Query** object to match the specified field whose value is similar t
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.like("field", "value"); query.like("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1695,7 +1694,7 @@ Creates a **Query** object to match the specified field whose value is not simil ...@@ -1695,7 +1694,7 @@ Creates a **Query** object to match the specified field whose value is not simil
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.unlike("field", "value"); query.unlike("field", "value");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1724,10 +1723,10 @@ try { ...@@ -1724,10 +1723,10 @@ try {
query.notEqualTo("field", "value1"); query.notEqualTo("field", "value1");
query.and(); query.and();
query.notEqualTo("field", "value2"); query.notEqualTo("field", "value2");
console.log("query is " + query.getSqlLike()); console.info("query is " + query.getSqlLike());
query = null; query = null;
} catch (e) { } catch (e) {
console.log("duplicated calls should be ok :" + e); console.error("duplicated calls should be ok :" + e);
} }
``` ```
...@@ -1753,10 +1752,10 @@ try { ...@@ -1753,10 +1752,10 @@ try {
query.notEqualTo("field", "value1"); query.notEqualTo("field", "value1");
query.or(); query.or();
query.notEqualTo("field", "value2"); query.notEqualTo("field", "value2");
console.log("query is " + query.getSqlLike()); console.info("query is " + query.getSqlLike());
query = null; query = null;
} catch (e) { } catch (e) {
console.log("duplicated calls should be ok :" + e); console.error("duplicated calls should be ok :" + e);
} }
``` ```
...@@ -1787,7 +1786,7 @@ try { ...@@ -1787,7 +1786,7 @@ try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.notEqualTo("field", "value"); query.notEqualTo("field", "value");
query.orderByAsc("field"); query.orderByAsc("field");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1821,7 +1820,7 @@ try { ...@@ -1821,7 +1820,7 @@ try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.notEqualTo("field", "value"); query.notEqualTo("field", "value");
query.orderByDesc("field"); query.orderByDesc("field");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1832,7 +1831,7 @@ try { ...@@ -1832,7 +1831,7 @@ try {
limit(total: number, offset: number): Query limit(total: number, offset: number): Query
Creates a **Query** object to specify the number of results and where to start. Creates a **Query** object to specify the number of records of the query result and where to start. This API must be called after the invocation of the **orderByAsc()**, **orderByDesc()**, and the query APIs of the **Query** object.
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -1858,7 +1857,7 @@ try { ...@@ -1858,7 +1857,7 @@ try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.notEqualTo("field", "value"); query.notEqualTo("field", "value");
query.limit(total, offset); query.limit(total, offset);
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1891,7 +1890,7 @@ Creates a **Query** object to match the specified field whose value is not **nul ...@@ -1891,7 +1890,7 @@ Creates a **Query** object to match the specified field whose value is not **nul
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.isNotNull("field"); query.isNotNull("field");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -1920,10 +1919,10 @@ try { ...@@ -1920,10 +1919,10 @@ try {
query.beginGroup(); query.beginGroup();
query.isNotNull("field"); query.isNotNull("field");
query.endGroup(); query.endGroup();
console.log("query is " + query.getSqlLike()); console.info("query is " + query.getSqlLike());
query = null; query = null;
} catch (e) { } catch (e) {
console.log("duplicated calls should be ok :" + e); console.error("duplicated calls should be ok :" + e);
} }
``` ```
...@@ -1949,10 +1948,10 @@ try { ...@@ -1949,10 +1948,10 @@ try {
query.beginGroup(); query.beginGroup();
query.isNotNull("field"); query.isNotNull("field");
query.endGroup(); query.endGroup();
console.log("query is " + query.getSqlLike()); console.info("query is " + query.getSqlLike());
query = null; query = null;
} catch (e) { } catch (e) {
console.log("duplicated calls should be ok :" + e); console.error("duplicated calls should be ok :" + e);
} }
``` ```
...@@ -1983,7 +1982,7 @@ try { ...@@ -1983,7 +1982,7 @@ try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.prefixKey("$.name"); query.prefixKey("$.name");
query.prefixKey("0"); query.prefixKey("0");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -2017,7 +2016,7 @@ try { ...@@ -2017,7 +2016,7 @@ try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.setSuggestIndex("$.name"); query.setSuggestIndex("$.name");
query.setSuggestIndex("0"); query.setSuggestIndex("0");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
query = null; query = null;
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
...@@ -2029,6 +2028,10 @@ try { ...@@ -2029,6 +2028,10 @@ try {
deviceId(deviceId:string):Query deviceId(deviceId:string):Query
Creates a **Query** object with the device ID as the key prefix. Creates a **Query** object with the device ID as the key prefix.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.Core **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
...@@ -2050,7 +2053,7 @@ Creates a **Query** object with the device ID as the key prefix. ...@@ -2050,7 +2053,7 @@ Creates a **Query** object with the device ID as the key prefix.
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
query.deviceId("deviceId"); query.deviceId("deviceId");
console.log(`query is ${query.getSqlLike()}`); console.info(`query is ${query.getSqlLike()}`);
} catch (e) { } catch (e) {
console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`); console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
} }
...@@ -2076,9 +2079,9 @@ Obtains the query statement of the **Query** object. ...@@ -2076,9 +2079,9 @@ Obtains the query statement of the **Query** object.
try { try {
let query = new distributedKVStore.Query(); let query = new distributedKVStore.Query();
let sql1 = query.getSqlLike(); let sql1 = query.getSqlLike();
console.log(`GetSqlLike sql= ${sql1}`); console.info(`GetSqlLike sql= ${sql1}`);
} catch (e) { } catch (e) {
console.log("duplicated calls should be ok : " + e); console.error("duplicated calls should be ok : " + e);
} }
``` ```
...@@ -2108,24 +2111,29 @@ Adds a KV pair of the specified type to this KV store. This API uses an asynchro ...@@ -2108,24 +2111,29 @@ Adds a KV pair of the specified type to this KV store. This API uses an asynchro
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log("Succeeded in putting"); console.info("Succeeded in putting");
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -2157,22 +2165,27 @@ Adds a KV pair of the specified type to this KV store. This API uses a promise t ...@@ -2157,22 +2165,27 @@ Adds a KV pair of the specified type to this KV store. This API uses a promise t
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => {
console.log(`Succeeded in putting.data=${data}`); console.info(`Succeeded in putting.data=${data}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -2191,22 +2204,27 @@ Batch inserts KV pairs to this single KV store. This API uses an asynchronous ca ...@@ -2191,22 +2204,27 @@ Batch inserts KV pairs to this single KV store. This API uses an asynchronous ca
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ------------------------ | ---- | ------------------------ | | -------- | ------------------------ | ---- | ------------------------ |
| entries | [Entry](#entry)[] | Yes | KV pairs to insert in batches.| | entries | [Entry](#entry)[] | Yes | KV pairs to insert in batches. An **entries** object allows a maximum of 128 entries.|
| callback | AsyncCallback&lt;void&gt; | Yes | Callback invoked to return the result. | | callback | AsyncCallback&lt;void&gt; | Yes | Callback invoked to return the result. |
**Error codes** **Error codes**
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -2220,20 +2238,20 @@ try { ...@@ -2220,20 +2238,20 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.getEntries('batch_test_string_key', function (err, entries) { kvStore.getEntries('batch_test_string_key', function (err, entries) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
} }
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
}); });
}); });
} catch (e) { } catch (e) {
...@@ -2253,7 +2271,7 @@ Batch inserts KV pairs to this single KV store. This API uses a promise to retur ...@@ -2253,7 +2271,7 @@ Batch inserts KV pairs to this single KV store. This API uses a promise to retur
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ------- | ----------------- | ---- | ------------------------ | | ------- | ----------------- | ---- | ------------------------ |
| entries | [Entry](#entry)[] | Yes | KV pairs to insert in batches.| | entries | [Entry](#entry)[] | Yes | KV pairs to insert in batches. An **entries** object allows a maximum of 128 entries.|
**Return value** **Return value**
...@@ -2265,15 +2283,20 @@ Batch inserts KV pairs to this single KV store. This API uses a promise to retur ...@@ -2265,15 +2283,20 @@ Batch inserts KV pairs to this single KV store. This API uses a promise to retur
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -2287,17 +2310,17 @@ try { ...@@ -2287,17 +2310,17 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries).then(async (entries) => { kvStore.putBatch(entries).then(async (entries) => {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.getEntries('batch_test_string_key').then((entries) => { kvStore.getEntries('batch_test_string_key').then((entries) => {
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`PutBatch ${entries}`); console.info(`PutBatch ${entries}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
...@@ -2325,15 +2348,20 @@ Writes data to this single KV store. This API uses an asynchronous callback to r ...@@ -2325,15 +2348,20 @@ Writes data to this single KV store. This API uses an asynchronous callback to r
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let v8Arr = []; let v8Arr = [];
let arr = new Uint8Array([4, 5, 6, 7]); let arr = new Uint8Array([4, 5, 6, 7]);
...@@ -2346,13 +2374,13 @@ try { ...@@ -2346,13 +2374,13 @@ try {
v8Arr.push(vb3); v8Arr.push(vb3);
kvStore.putBatch(v8Arr, async function (err, data) { kvStore.putBatch(v8Arr, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}) })
} catch (e) { } catch (e) {
console.error(`Fail to put batch.code is ${e.code},message is ${e.message}`); console.error(`Failed to put batch.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -2382,15 +2410,20 @@ Write data to this KV store. This API uses a promise to return the result. ...@@ -2382,15 +2410,20 @@ Write data to this KV store. This API uses a promise to return the result.
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let v8Arr = []; let v8Arr = [];
let arr = new Uint8Array([4, 5, 6, 7]); let arr = new Uint8Array([4, 5, 6, 7]);
...@@ -2402,7 +2435,7 @@ try { ...@@ -2402,7 +2435,7 @@ try {
v8Arr.push(vb2); v8Arr.push(vb2);
v8Arr.push(vb3); v8Arr.push(vb3);
kvStore.putBatch(v8Arr).then(async (data) => { kvStore.putBatch(v8Arr).then(async (data) => {
console.log(`Succeeded in putting patch`); console.info(`Succeeded in putting patch`);
}).catch((err) => { }).catch((err) => {
console.error(`putBatch fail.code is ${err.code},message is ${err.message}`); console.error(`putBatch fail.code is ${err.code},message is ${err.message}`);
}); });
...@@ -2435,25 +2468,30 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -2435,25 +2468,30 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting'); console.info('Succeeded in putting');
kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err, data) { kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to delete.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in deleting'); console.info('Succeeded in deleting');
}); });
}); });
} catch (e) { } catch (e) {
...@@ -2485,27 +2523,32 @@ Deletes a KV pair from this KV store. This API uses a promise to return the resu ...@@ -2485,27 +2523,32 @@ Deletes a KV pair from this KV store. This API uses a promise to return the resu
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => {
console.log(`Succeeded in putting: ${data}`); console.info(`Succeeded in putting: ${data}`);
kvStore.delete(KEY_TEST_STRING_ELEMENT).then((data) => { kvStore.delete(KEY_TEST_STRING_ELEMENT).then((data) => {
console.log('Succeeded in deleting'); console.info('Succeeded in deleting');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to delete.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -2526,7 +2569,7 @@ Deletes KV pairs from this KV store. This API uses an asynchronous callback to r ...@@ -2526,7 +2569,7 @@ Deletes KV pairs from this KV store. This API uses an asynchronous callback to r
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- | | ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- |
| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the KV pairs to delete. If this parameter is **null**, define the processing logic.| | predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the **KVStoreResultSet** object to obtain. If this parameter is **null**, define the processing logic.|
| callback | AsyncCallback&lt;void&gt; | Yes | Callback invoked to return the result. | | callback | AsyncCallback&lt;void&gt; | Yes | Callback invoked to return the result. |
**Error codes** **Error codes**
...@@ -2538,19 +2581,33 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -2538,19 +2581,33 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
kvStore.delete(predicates, function (err, data) { let arr = ["name"];
if (err == undefined) { predicates.inKeys(arr);
console.log('Succeeded in deleting'); kvStore.put("name", "bob", function (err, data) {
} else { if (err != undefined) {
console.error(`Fail to delete.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
return;
} }
console.info("Succeeded in putting");
kvStore.delete(predicates, function (err, data) {
if (err == undefined) {
console.info('Succeeded in deleting');
} else {
console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
}
});
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -2583,30 +2640,35 @@ Deletes KV pairs from this KV store. This API uses a promise to return the resul ...@@ -2583,30 +2640,35 @@ Deletes KV pairs from this KV store. This API uses a promise to return the resul
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
let arr = ["name"]; let arr = ["name"];
predicates.inKeys(arr); predicates.inKeys(arr);
kvStore.put("name", "bob").then((data) => { kvStore.put("name", "bob").then((data) => {
console.log(`Succeeded in putting: ${data}`); console.info(`Succeeded in putting: ${data}`);
kvStore.delete(predicates).then((data) => { kvStore.delete(predicates).then((data) => {
console.log('Succeeded in deleting'); console.info('Succeeded in deleting');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to delete.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -2632,15 +2694,20 @@ Batch deletes KV pairs from this single KV store. This API uses an asynchronous ...@@ -2632,15 +2694,20 @@ Batch deletes KV pairs from this single KV store. This API uses an asynchronous
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
let keys = []; let keys = [];
...@@ -2656,19 +2723,19 @@ try { ...@@ -2656,19 +2723,19 @@ try {
entries.push(entry); entries.push(entry);
keys.push(key + i); keys.push(key + i);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.deleteBatch(keys, async function (err, data) { kvStore.deleteBatch(keys, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to delete Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete Batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in deleting Batch'); console.info('Succeeded in deleting Batch');
}); });
}); });
} catch (e) { } catch (e) {
...@@ -2700,15 +2767,20 @@ Batch deletes KV pairs from this single KV store. This API uses a promise to ret ...@@ -2700,15 +2767,20 @@ Batch deletes KV pairs from this single KV store. This API uses a promise to ret
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
let keys = []; let keys = [];
...@@ -2724,16 +2796,16 @@ try { ...@@ -2724,16 +2796,16 @@ try {
entries.push(entry); entries.push(entry);
keys.push(key + i); keys.push(key + i);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries).then(async (data) => { kvStore.putBatch(entries).then(async (data) => {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.deleteBatch(keys).then((err) => { kvStore.deleteBatch(keys).then((err) => {
console.log('Succeeded in deleting Batch'); console.info('Succeeded in deleting Batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to delete Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete Batch.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -2745,6 +2817,10 @@ try { ...@@ -2745,6 +2817,10 @@ try {
removeDeviceData(deviceId: string, callback: AsyncCallback&lt;void&gt;): void removeDeviceData(deviceId: string, callback: AsyncCallback&lt;void&gt;): void
Deletes data of a device. This API uses an asynchronous callback to return the result. Deletes data of a device. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -2766,20 +2842,19 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -2766,20 +2842,19 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002'; const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err, data) { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err, data) {
console.log('Succeeded in putting data'); console.info('Succeeded in putting data');
const deviceid = 'no_exist_device_id'; const deviceid = 'no_exist_device_id';
kvStore.removeDeviceData(deviceid, async function (err, data) { kvStore.removeDeviceData(deviceid, async function (err, data) {
if (err == undefined) { if (err == undefined) {
console.log('succeeded in removing device data'); console.info('succeeded in removing device data');
} else { } else {
console.error(`Fail to remove device data.code is ${err.code},message is ${err.message} `); console.error(`Failed to remove device data.code is ${err.code},message is ${err.message} `);
kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err, data) { kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err, data) {
console.log('Succeeded in getting data'); console.info('Succeeded in getting data');
}); });
} }
}); });
...@@ -2794,6 +2869,10 @@ try { ...@@ -2794,6 +2869,10 @@ try {
removeDeviceData(deviceId: string): Promise&lt;void&gt; removeDeviceData(deviceId: string): Promise&lt;void&gt;
Deletes data of a device. This API uses a promise to return the result. Deletes data of a device. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -2820,25 +2899,24 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -2820,25 +2899,24 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-001'; const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) => { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((err) => {
console.log('Succeeded in putting data'); console.info('Succeeded in putting data');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put data.code is ${err.code},message is ${err.message} `); console.error(`Failed to put data.code is ${err.code},message is ${err.message} `);
}); });
const deviceid = 'no_exist_device_id'; const deviceid = 'no_exist_device_id';
kvStore.removeDeviceData(deviceid).then((err) => { kvStore.removeDeviceData(deviceid).then((err) => {
console.log('succeeded in removing device data'); console.info('succeeded in removing device data');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to remove device data.code is ${err.code},message is ${err.message} `); console.error(`Failed to remove device data.code is ${err.code},message is ${err.message} `);
}); });
kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => { kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
console.log('Succeeded in getting data'); console.info('Succeeded in getting data');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get data.code is ${err.code},message is ${err.message} `); console.error(`Failed to get data.code is ${err.code},message is ${err.message} `);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`) console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`)
...@@ -2873,26 +2951,25 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -2873,26 +2951,25 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log("Succeeded in putting"); console.info("Succeeded in putting");
kvStore.get(KEY_TEST_STRING_ELEMENT, function (err, data) { kvStore.get(KEY_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get.code is ${err.code},message is ${err.message}`); console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log(`Succeeded in getting data.data=${data}`); console.info(`Succeeded in getting data.data=${data}`);
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get.code is ${e.code},message is ${e.message}`); console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -2929,22 +3006,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -2929,22 +3006,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => {
console.log(`Succeeded in putting data.data=${data}`); console.info(`Succeeded in putting data.data=${data}`);
kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => { kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
console.log(`Succeeded in getting data.data=${data}`); console.info(`Succeeded in getting data.data=${data}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get.code is ${err.code},message is ${err.message}`); console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get.code is ${e.code},message is ${e.message}`); console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -2975,7 +3051,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -2975,7 +3051,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -2989,21 +3064,21 @@ try { ...@@ -2989,21 +3064,21 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.getEntries('batch_test_string_key', function (err, entries) { kvStore.getEntries('batch_test_string_key', function (err, entries) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
}); });
}); });
} catch (e) { } catch (e) {
...@@ -3043,7 +3118,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3043,7 +3118,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -3057,17 +3131,17 @@ try { ...@@ -3057,17 +3131,17 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries).then(async (entries) => { kvStore.putBatch(entries).then(async (entries) => {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.getEntries('batch_test_string_key').then((entries) => { kvStore.getEntries('batch_test_string_key').then((entries) => {
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`PutBatch ${entries}`); console.info(`PutBatch ${entries}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
...@@ -3101,7 +3175,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3101,7 +3175,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
var arr = new Uint8Array([21, 31]); var arr = new Uint8Array([21, 31]);
let entries = []; let entries = [];
...@@ -3116,23 +3189,23 @@ try { ...@@ -3116,23 +3189,23 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: {entries}`); console.info(`entries: {entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getEntries(query, function (err, entries) { kvStore.getEntries(query, function (err, entries) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get Entries.code is ${e.code},message is ${e.message}`); console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -3168,7 +3241,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3168,7 +3241,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
var arr = new Uint8Array([21, 31]); var arr = new Uint8Array([21, 31]);
let entries = []; let entries = [];
...@@ -3183,22 +3255,22 @@ try { ...@@ -3183,22 +3255,22 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: {entries}`); console.info(`entries: {entries}`);
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getEntries(query).then((entries) => { kvStore.getEntries(query).then((entries) => {
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`) console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`)
}); });
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
} catch (e) { } catch (e) {
console.error(`Fail to get Entries.code is ${e.code},message is ${e.message}`); console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -3223,13 +3295,14 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3223,13 +3295,14 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -3246,23 +3319,23 @@ try { ...@@ -3246,23 +3319,23 @@ try {
} }
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
kvStore.getResultSet('batch_test_string_key', async function (err, result) { kvStore.getResultSet('batch_test_string_key', async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}) })
}); });
}); });
...@@ -3297,13 +3370,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3297,13 +3370,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -3319,20 +3392,20 @@ try { ...@@ -3319,20 +3392,20 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
}); });
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet).then((err) => {
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -3360,13 +3433,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3360,13 +3433,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -3383,18 +3456,18 @@ try { ...@@ -3383,18 +3456,18 @@ try {
} }
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSet(query, async function (err, result) { kvStore.getResultSet(query, async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
}); });
}); });
} catch (e) { } catch (e) {
...@@ -3428,13 +3501,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3428,13 +3501,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -3450,17 +3523,17 @@ try { ...@@ -3450,17 +3523,17 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSet(query).then((result) => { kvStore.getResultSet(query).then((result) => {
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -3490,6 +3563,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3490,6 +3563,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
...@@ -3498,24 +3572,23 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3498,24 +3572,23 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let resultSet; let resultSet;
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
predicates.prefixKey("batch_test_string_key"); predicates.prefixKey("batch_test_string_key");
kvStore.getResultSet(predicates, async function (err, result) { kvStore.getResultSet(predicates, async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}) })
}); });
} catch (e) { } catch (e) {
...@@ -3551,6 +3624,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3551,6 +3624,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
...@@ -3559,21 +3633,20 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3559,21 +3633,20 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let resultSet; let resultSet;
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
predicates.prefixKey("batch_test_string_key"); predicates.prefixKey("batch_test_string_key");
kvStore.getResultSet(predicates).then((result) => { kvStore.getResultSet(predicates).then((result) => {
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
}); });
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet).then((err) => {
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -3598,14 +3671,13 @@ Closes the **KVStoreResultSet** object returned by [SingleKvStore.getResultSet]( ...@@ -3598,14 +3671,13 @@ Closes the **KVStoreResultSet** object returned by [SingleKvStore.getResultSet](
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet = null; let resultSet = null;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err == undefined) { if (err == undefined) {
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
} else { } else {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
} }
}); });
} catch (e) { } catch (e) {
...@@ -3636,13 +3708,12 @@ Closes the **KVStoreResultSet** object returned by [SingleKvStore.getResultSet]( ...@@ -3636,13 +3708,12 @@ Closes the **KVStoreResultSet** object returned by [SingleKvStore.getResultSet](
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet = null; let resultSet = null;
kvStore.closeResultSet(resultSet).then(() => { kvStore.closeResultSet(resultSet).then(() => {
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -3676,7 +3747,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3676,7 +3747,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -3691,15 +3761,15 @@ try { ...@@ -3691,15 +3761,15 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSize(query, async function (err, resultSize) { kvStore.getResultSize(query, async function (err, resultSize) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get result size.code is ${err.code},message is ${err.message}`); console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set size'); console.info('Succeeded in getting result set size');
}); });
}); });
} catch (e) { } catch (e) {
...@@ -3739,7 +3809,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3739,7 +3809,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -3754,16 +3823,16 @@ try { ...@@ -3754,16 +3823,16 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSize(query).then((resultSize) => { kvStore.getResultSize(query).then((resultSize) => {
console.log('Succeeded in getting result set size'); console.info('Succeeded in getting result set size');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get result size.code is ${err.code},message is ${err.message}`); console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -3796,12 +3865,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3796,12 +3865,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
let file = "BK001"; let file = "BK001";
try { try {
kvStore.backup(file, (err, data) => { kvStore.backup(file, (err, data) => {
if (err) { if (err) {
console.error(`Fail to backup.code is ${err.code},message is ${err.message} `); console.error(`Failed to backup.code is ${err.code},message is ${err.message} `);
} else { } else {
console.info(`Succeeded in backupping data.data=${data}`); console.info(`Succeeded in backupping data.data=${data}`);
} }
...@@ -3842,13 +3910,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3842,13 +3910,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
let file = "BK001"; let file = "BK001";
try { try {
kvStore.backup(file).then((data) => { kvStore.backup(file).then((data) => {
console.info(`Succeeded in backupping data.data=${data}`); console.info(`Succeeded in backupping data.data=${data}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to backup.code is ${err.code},message is ${err.message}`); console.error(`Failed to backup.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -3881,12 +3948,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3881,12 +3948,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
let file = "BK001"; let file = "BK001";
try { try {
kvStore.restore(file, (err, data) => { kvStore.restore(file, (err, data) => {
if (err) { if (err) {
console.error(`Fail to restore.code is ${err.code},message is ${err.message}`); console.error(`Failed to restore.code is ${err.code},message is ${err.message}`);
} else { } else {
console.info(`Succeeded in restoring data.data=${data}`); console.info(`Succeeded in restoring data.data=${data}`);
} }
...@@ -3927,13 +3993,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -3927,13 +3993,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
let file = "BK001"; let file = "BK001";
try { try {
kvStore.restore(file).then((data) => { kvStore.restore(file).then((data) => {
console.info(`Succeeded in restoring data.data=${data}`); console.info(`Succeeded in restoring data.data=${data}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to restore.code is ${err.code},message is ${err.message}`); console.error(`Failed to restore.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -3958,12 +4023,11 @@ Deletes a backup file. This API uses an asynchronous callback to return the resu ...@@ -3958,12 +4023,11 @@ Deletes a backup file. This API uses an asynchronous callback to return the resu
**Example** **Example**
```js ```js
let kvStore;
let files = ["BK001", "BK002"]; let files = ["BK001", "BK002"];
try { try {
kvStore.deleteBackup(files, (err, data) => { kvStore.deleteBackup(files, (err, data) => {
if (err) { if (err) {
console.error(`Fail to delete Backup.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
} else { } else {
console.info(`Succeed in deleting Backup.data=${data}`); console.info(`Succeed in deleting Backup.data=${data}`);
} }
...@@ -3996,16 +4060,15 @@ Deletes a backup file. This API uses a promise to return the result. ...@@ -3996,16 +4060,15 @@ Deletes a backup file. This API uses a promise to return the result.
**Example** **Example**
```js ```js
let kvStore;
let files = ["BK001", "BK002"]; let files = ["BK001", "BK002"];
try { try {
kvStore.deleteBackup(files).then((data) => { kvStore.deleteBackup(files).then((data) => {
console.info(`Succeed in deleting Backup.data=${data}`); console.info(`Succeed in deleting Backup.data=${data}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to delete Backup.code is ${err.code},message is ${err.message}`); console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
}) })
} catch (e) { } catch (e) {
console.log(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -4027,14 +4090,19 @@ Starts the transaction in this single KV store. This API uses an asynchronous ca ...@@ -4027,14 +4090,19 @@ Starts the transaction in this single KV store. This API uses an asynchronous ca
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
function putBatchString(len, prefix) { function putBatchString(len, prefix) {
let entries = []; let entries = [];
for (var i = 0; i < len; i++) { for (var i = 0; i < len; i++) {
...@@ -4053,27 +4121,27 @@ function putBatchString(len, prefix) { ...@@ -4053,27 +4121,27 @@ function putBatchString(len, prefix) {
try { try {
var count = 0; var count = 0;
kvStore.on('dataChange', 0, function (data) { kvStore.on('dataChange', 0, function (data) {
console.log(`startTransaction 0 ${data}`); console.info(`startTransaction 0 ${data}`);
count++; count++;
}); });
kvStore.startTransaction(async function (err, data) { kvStore.startTransaction(async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to start Transaction.code is ${err.code},message is ${err.message}`); console.error(`Failed to start Transaction.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in starting Transaction'); console.info('Succeeded in starting Transaction');
let entries = putBatchString(10, 'batch_test_string_key'); let entries = putBatchString(10, 'batch_test_string_key');
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to start Transaction.code is ${e.code},message is ${e.message}`); console.error(`Failed to start Transaction.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -4095,27 +4163,32 @@ Starts the transaction in this single KV store. This API uses a promise to retur ...@@ -4095,27 +4163,32 @@ Starts the transaction in this single KV store. This API uses a promise to retur
For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md). For details about the error codes, see [Distributed KV Store Error Codes](../errorcodes/errorcode-distributedKVStore.md).
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | ---------------------------------------- |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md).
| ID| **Error Message** |
| ------------ | -------------------------------------------- |
| 14800047 | The WAL file size exceeds the default limit. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
var count = 0; var count = 0;
kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) { kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) {
console.log(`startTransaction 0 ${data}`); console.info(`startTransaction 0 ${data}`);
count++; count++;
}); });
kvStore.startTransaction().then(async (err) => { kvStore.startTransaction().then(async (err) => {
console.log('Succeeded in starting Transaction'); console.info('Succeeded in starting Transaction');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to start Transaction.code is ${err.code},message is ${err.message}`); console.error(`Failed to start Transaction.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to start Transaction.code is ${e.code},message is ${e.message}`); console.error(`Failed to start Transaction.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -4144,13 +4217,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4144,13 +4217,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.commit(function (err, data) { kvStore.commit(function (err, data) {
if (err == undefined) { if (err == undefined) {
console.log('Succeeded in committing'); console.info('Succeeded in committing');
} else { } else {
console.error(`Fail to commit.code is ${err.code},message is ${err.message}`); console.error(`Failed to commit.code is ${err.code},message is ${err.message}`);
} }
}); });
} catch (e) { } catch (e) {
...@@ -4183,12 +4255,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4183,12 +4255,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.commit().then(async (err) => { kvStore.commit().then(async (err) => {
console.log('Succeeded in committing'); console.info('Succeeded in committing');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to commit.code is ${err.code},message is ${err.message}`); console.error(`Failed to commit.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.ode is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.ode is ${e.code},message is ${e.message}`);
...@@ -4220,13 +4291,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4220,13 +4291,12 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.rollback(function (err,data) { kvStore.rollback(function (err,data) {
if (err == undefined) { if (err == undefined) {
console.log('Succeeded in rolling back'); console.info('Succeeded in rolling back');
} else { } else {
console.error(`Fail to rollback.code is ${err.code},message is ${err.message}`); console.error(`Failed to rollback.code is ${err.code},message is ${err.message}`);
} }
}); });
}catch(e) { }catch(e) {
...@@ -4259,12 +4329,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4259,12 +4329,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.rollback().then(async (err) => { kvStore.rollback().then(async (err) => {
console.log('Succeeded in rolling back'); console.info('Succeeded in rolling back');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to rollback.code is ${err.code},message is ${err.message}`); console.error(`Failed to rollback.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4289,13 +4358,12 @@ Sets data synchronization, which can be enabled or disabled. This API uses an as ...@@ -4289,13 +4358,12 @@ Sets data synchronization, which can be enabled or disabled. This API uses an as
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.enableSync(true, function (err, data) { kvStore.enableSync(true, function (err, data) {
if (err == undefined) { if (err == undefined) {
console.log('Succeeded in enabling sync'); console.info('Succeeded in enabling sync');
} else { } else {
console.error(`Fail to enable sync.code is ${err.code},message is ${err.message}`); console.error(`Failed to enable sync.code is ${err.code},message is ${err.message}`);
} }
}); });
} catch (e) { } catch (e) {
...@@ -4326,12 +4394,11 @@ Sets data synchronization, which can be enabled or disabled. This API uses a pro ...@@ -4326,12 +4394,11 @@ Sets data synchronization, which can be enabled or disabled. This API uses a pro
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.enableSync(true).then((err) => { kvStore.enableSync(true).then((err) => {
console.log('Succeeded in enabling sync'); console.info('Succeeded in enabling sync');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to enable sync.code is ${err.code},message is ${err.message}`); console.error(`Failed to enable sync.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4357,16 +4424,15 @@ Sets the data synchronization range. This API uses an asynchronous callback to r ...@@ -4357,16 +4424,15 @@ Sets the data synchronization range. This API uses an asynchronous callback to r
**Example** **Example**
```js ```js
let kvStore;
try { try {
const localLabels = ['A', 'B']; const localLabels = ['A', 'B'];
const remoteSupportLabels = ['C', 'D']; const remoteSupportLabels = ['C', 'D'];
kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err, data) { kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to set syncRange.code is ${err.code},message is ${err.message}`); console.error(`Failed to set syncRange.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in setting syncRange'); console.info('Succeeded in setting syncRange');
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4397,14 +4463,13 @@ Sets the data synchronization range. This API uses a promise to return the resul ...@@ -4397,14 +4463,13 @@ Sets the data synchronization range. This API uses a promise to return the resul
**Example** **Example**
```js ```js
let kvStore;
try { try {
const localLabels = ['A', 'B']; const localLabels = ['A', 'B'];
const remoteSupportLabels = ['C', 'D']; const remoteSupportLabels = ['C', 'D'];
kvStore.setSyncRange(localLabels, remoteSupportLabels).then((err) => { kvStore.setSyncRange(localLabels, remoteSupportLabels).then((err) => {
console.log('Succeeded in setting syncRange'); console.info('Succeeded in setting syncRange');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to set syncRange.code is ${err.code},message is ${err.message}`); console.error(`Failed to set syncRange.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4429,15 +4494,14 @@ Sets the default delay allowed for KV store synchronization. This API uses an as ...@@ -4429,15 +4494,14 @@ Sets the default delay allowed for KV store synchronization. This API uses an as
**Example** **Example**
```js ```js
let kvStore;
try { try {
const defaultAllowedDelayMs = 500; const defaultAllowedDelayMs = 500;
kvStore.setSyncParam(defaultAllowedDelayMs, function (err, data) { kvStore.setSyncParam(defaultAllowedDelayMs, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to set syncParam.code is ${err.code},message is ${err.message}`); console.error(`Failed to set syncParam.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in setting syncParam'); console.info('Succeeded in setting syncParam');
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4467,13 +4531,12 @@ Sets the default delay allowed for KV store synchronization. This API uses a pro ...@@ -4467,13 +4531,12 @@ Sets the default delay allowed for KV store synchronization. This API uses a pro
**Example** **Example**
```js ```js
let kvStore;
try { try {
const defaultAllowedDelayMs = 500; const defaultAllowedDelayMs = 500;
kvStore.setSyncParam(defaultAllowedDelayMs).then((err) => { kvStore.setSyncParam(defaultAllowedDelayMs).then((err) => {
console.log('Succeeded in setting syncParam'); console.info('Succeeded in setting syncParam');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to set syncParam.code is ${err.code},message is ${err.message}`); console.error(`Failed to set syncParam.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4484,8 +4547,8 @@ try { ...@@ -4484,8 +4547,8 @@ try {
sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void
Synchronizes the KV store manually. For details about the synchronization modes of the distributed data service, see [Distributed Data Service Overview](../../database/database-mdds-overview.md). Synchronizes the KV store manually. For details about the synchronization modes of KV stores, see [Cross-Device Synchronization of KV Stores](../../database/data-sync-of-kv-store.md).
> **NOTE** > **NOTE**<br/>
> >
> The value of **deviceIds** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications. > The value of **deviceIds** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
...@@ -4516,7 +4579,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4516,7 +4579,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
let devManager; let devManager;
let kvStore;
const KEY_TEST_SYNC_ELEMENT = 'key_test_sync'; const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
const VALUE_TEST_SYNC_ELEMENT = 'value-string-001'; const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
// create deviceManager // create deviceManager
...@@ -4532,19 +4594,19 @@ deviceManager.createDeviceManager('bundleName', (err, value) => { ...@@ -4532,19 +4594,19 @@ deviceManager.createDeviceManager('bundleName', (err, value) => {
} }
try { try {
kvStore.on('syncComplete', function (data) { kvStore.on('syncComplete', function (data) {
console.log('Sync dataChange'); console.info('Sync dataChange');
}); });
kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err, data) { kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to sync.code is ${err.code},message is ${err.message}`); console.error(`Failed to sync.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting data'); console.info('Succeeded in putting data');
const mode = distributedKVStore.SyncMode.PULL_ONLY; const mode = distributedKVStore.SyncMode.PULL_ONLY;
kvStore.sync(deviceIds, mode, 1000); kvStore.sync(deviceIds, mode, 1000);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to sync.code is ${e.code},message is ${e.message}`); console.error(`Failed to sync.code is ${e.code},message is ${e.message}`);
} }
} }
}); });
...@@ -4554,7 +4616,7 @@ deviceManager.createDeviceManager('bundleName', (err, value) => { ...@@ -4554,7 +4616,7 @@ deviceManager.createDeviceManager('bundleName', (err, value) => {
sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
Synchronizes the KV store manually. This API returns the result synchronously. For details about the synchronization modes of the distributed data service, see [Distributed Data Service Overview](../../database/database-mdds-overview.md). Synchronizes the KV store manually. This API returns the result synchronously. For details about the synchronization modes of KV stores, see [Cross-Device Synchronization of KV Stores](../../database/data-sync-of-kv-store.md).
> **NOTE**<br/> > **NOTE**<br/>
> >
> The value of **deviceIds** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications. > The value of **deviceIds** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
...@@ -4587,7 +4649,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4587,7 +4649,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
let devManager; let devManager;
let kvStore;
const KEY_TEST_SYNC_ELEMENT = 'key_test_sync'; const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
const VALUE_TEST_SYNC_ELEMENT = 'value-string-001'; const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
// create deviceManager // create deviceManager
...@@ -4603,14 +4664,14 @@ deviceManager.createDeviceManager('bundleName', (err, value) => { ...@@ -4603,14 +4664,14 @@ deviceManager.createDeviceManager('bundleName', (err, value) => {
} }
try { try {
kvStore.on('syncComplete', function (data) { kvStore.on('syncComplete', function (data) {
console.log('Sync dataChange'); console.info('Sync dataChange');
}); });
kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err, data) { kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to sync.code is ${err.code},message is ${err.message}`); console.error(`Failed to sync.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting data'); console.info('Succeeded in putting data');
const mode = distributedKVStore.SyncMode.PULL_ONLY; const mode = distributedKVStore.SyncMode.PULL_ONLY;
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
...@@ -4618,7 +4679,7 @@ deviceManager.createDeviceManager('bundleName', (err, value) => { ...@@ -4618,7 +4679,7 @@ deviceManager.createDeviceManager('bundleName', (err, value) => {
kvStore.sync(deviceIds, query, mode, 1000); kvStore.sync(deviceIds, query, mode, 1000);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to sync.code is ${e.code},message is ${e.message}`); console.error(`Failed to sync.code is ${e.code},message is ${e.message}`);
} }
} }
}); });
...@@ -4646,16 +4707,15 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4646,16 +4707,15 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max subscribe limits. | | 15100001 | Over max limits. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) { kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
console.log(`dataChange callback call data: ${data}`); console.info(`dataChange callback call data: ${data}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4680,20 +4740,19 @@ Subscribes to synchronization complete events. ...@@ -4680,20 +4740,19 @@ Subscribes to synchronization complete events.
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_FLOAT_ELEMENT = 'key_test_float'; const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
const VALUE_TEST_FLOAT_ELEMENT = 321.12; const VALUE_TEST_FLOAT_ELEMENT = 321.12;
try { try {
kvStore.on('syncComplete', function (data) { kvStore.on('syncComplete', function (data) {
console.log(`syncComplete ${data}`); console.info(`syncComplete ${data}`);
}); });
kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) => { kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then((data) => {
console.log('succeeded in putting'); console.info('succeeded in putting');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to subscribe syncComplete.code is ${e.code},message is ${e.message}`); console.error(`Failed to subscribe syncComplete.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -4723,10 +4782,9 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4723,10 +4782,9 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
class KvstoreModel { class KvstoreModel {
call(data) { call(data) {
console.log(`dataChange : ${data}`); console.info(`dataChange : ${data}`);
} }
subscribeDataChange() { subscribeDataChange() {
...@@ -4735,7 +4793,7 @@ class KvstoreModel { ...@@ -4735,7 +4793,7 @@ class KvstoreModel {
kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, this.call); kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, this.call);
} }
} catch (err) { } catch (err) {
console.error(`Fail to subscribeDataChange.code is ${err.code},message is ${err.message}`); console.error(`Failed to subscribeDataChange.code is ${err.code},message is ${err.message}`);
} }
} }
...@@ -4745,7 +4803,7 @@ class KvstoreModel { ...@@ -4745,7 +4803,7 @@ class KvstoreModel {
kvStore.off('dataChange', this.call); kvStore.off('dataChange', this.call);
} }
} catch (err) { } catch (err) {
console.error(`Fail to unsubscribeDataChange.code is ${err.code},message is ${err.message}`); console.error(`Failed to unsubscribeDataChange.code is ${err.code},message is ${err.message}`);
} }
} }
} }
...@@ -4769,10 +4827,9 @@ Unsubscribes from synchronization complete events. ...@@ -4769,10 +4827,9 @@ Unsubscribes from synchronization complete events.
**Example** **Example**
```js ```js
let kvStore;
class KvstoreModel { class KvstoreModel {
call(data) { call(data) {
console.log(`syncComplete : ${data}`); console.info(`syncComplete : ${data}`);
} }
subscribeDataChange() { subscribeDataChange() {
...@@ -4781,7 +4838,7 @@ class KvstoreModel { ...@@ -4781,7 +4838,7 @@ class KvstoreModel {
kvStore.on('syncComplete', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, this.call); kvStore.on('syncComplete', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, this.call);
} }
} catch (err) { } catch (err) {
console.error(`Fail to subscribeDataChange.code is ${err.code},message is ${err.message}`); console.error(`Failed to subscribeDataChange.code is ${err.code},message is ${err.message}`);
} }
} }
...@@ -4791,7 +4848,7 @@ class KvstoreModel { ...@@ -4791,7 +4848,7 @@ class KvstoreModel {
kvStore.off('dsyncComplete', this.call); kvStore.off('dsyncComplete', this.call);
} }
} catch (err) { } catch (err) {
console.error(`Fail to unsubscribeDataChange.code is ${err.code},message is ${err.message}`); console.error(`Failed to unsubscribeDataChange.code is ${err.code},message is ${err.message}`);
} }
} }
} }
...@@ -4822,14 +4879,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4822,14 +4879,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.getSecurityLevel(function (err, data) { kvStore.getSecurityLevel(function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get SecurityLevel.code is ${err.code},message is ${err.message}`); console.error(`Failed to get SecurityLevel.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting securityLevel'); console.info('Succeeded in getting securityLevel');
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4861,12 +4917,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4861,12 +4917,11 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
kvStore.getSecurityLevel().then((data) => { kvStore.getSecurityLevel().then((data) => {
console.log('Succeeded in getting securityLevel'); console.info('Succeeded in getting securityLevel');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get SecurityLevel.code is ${err.code},message is ${err.message}`); console.error(`Failed to get SecurityLevel.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
...@@ -4911,26 +4966,25 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4911,26 +4966,25 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log("Succeeded in putting"); console.info("Succeeded in putting");
kvStore.get(KEY_TEST_STRING_ELEMENT, function (err, data) { kvStore.get(KEY_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get.code is ${err.code},message is ${err.message}`); console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log(`Succeeded in getting data.data=${data}`); console.info(`Succeeded in getting data.data=${data}`);
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get.code is ${e.code},message is ${e.message}`); console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -4967,22 +5021,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -4967,22 +5021,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string'; const KEY_TEST_STRING_ELEMENT = 'key_test_string';
const VALUE_TEST_STRING_ELEMENT = 'value-test-string'; const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then((data) => {
console.log(`Succeeded in putting data.data=${data}`); console.info(`Succeeded in putting data.data=${data}`);
kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => { kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
console.log(`Succeeded in getting data.data=${data}`); console.info(`Succeeded in getting data.data=${data}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get.code is ${err.code},message is ${err.message}`); console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get.code is ${e.code},message is ${e.message}`); console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -4991,6 +5044,10 @@ try { ...@@ -4991,6 +5044,10 @@ try {
get(deviceId: string, key: string, callback: AsyncCallback&lt;boolean | string | number | Uint8Array&gt;): void get(deviceId: string, key: string, callback: AsyncCallback&lt;boolean | string | number | Uint8Array&gt;): void
Obtains a string value that matches the specified device ID and key. This API uses an asynchronous callback to return the result. Obtains a string value that matches the specified device ID and key. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5015,26 +5072,25 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5015,26 +5072,25 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002'; const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err, data) { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put.code is ${err.code},message is ${err.message}`); console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting'); console.info('Succeeded in putting');
kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, function (err, data) { kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get.code is ${err.code},message is ${err.message}`); console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting'); console.info('Succeeded in getting');
}); });
}) })
} catch (e) { } catch (e) {
console.error(`Fail to get.code is ${e.code},message is ${e.message}`); console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5043,6 +5099,10 @@ try { ...@@ -5043,6 +5099,10 @@ try {
get(deviceId: string, key: string): Promise&lt;boolean | string | number | Uint8Array&gt; get(deviceId: string, key: string): Promise&lt;boolean | string | number | Uint8Array&gt;
Obtains a string value that matches the specified device ID and key. This API uses a promise to return the result. Obtains a string value that matches the specified device ID and key. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5072,22 +5132,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5072,22 +5132,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
const KEY_TEST_STRING_ELEMENT = 'key_test_string_2'; const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
const VALUE_TEST_STRING_ELEMENT = 'value-string-002'; const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
try { try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async (data) => { kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async (data) => {
console.log('Succeeded in putting'); console.info('Succeeded in putting');
kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) => { kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) => {
console.log('Succeeded in getting'); console.info('Succeeded in getting');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get.code is ${err.code},message is ${err.message}`); console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
}); });
}).catch((error) => { }).catch((error) => {
console.error(`Fail to put.code is ${error.code},message is ${error.message}`); console.error(`Failed to put.code is ${error.code},message is ${error.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get.code is ${e.code},message is ${e.message}`); console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5118,7 +5177,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5118,7 +5177,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -5132,21 +5190,21 @@ try { ...@@ -5132,21 +5190,21 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.getEntries('batch_test_string_key', function (err, entries) { kvStore.getEntries('batch_test_string_key', function (err, entries) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
}); });
}); });
} catch (e) { } catch (e) {
...@@ -5186,7 +5244,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5186,7 +5244,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -5200,17 +5257,17 @@ try { ...@@ -5200,17 +5257,17 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries).then(async (entries) => { kvStore.putBatch(entries).then(async (entries) => {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
kvStore.getEntries('batch_test_string_key').then((entries) => { kvStore.getEntries('batch_test_string_key').then((entries) => {
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`PutBatch ${entries}`); console.info(`PutBatch ${entries}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put Batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
...@@ -5222,6 +5279,10 @@ try { ...@@ -5222,6 +5279,10 @@ try {
getEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;Entry[]&gt;): void getEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;Entry[]&gt;): void
Obtains all KV pairs that match the specified device ID and key prefix. This API uses an asynchronous callback to return the result. Obtains all KV pairs that match the specified device ID and key prefix. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5245,7 +5306,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5245,7 +5306,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -5259,25 +5319,25 @@ try { ...@@ -5259,25 +5319,25 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries : ${entries}`); console.info(`entries : ${entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err, entries) { kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err, entries) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting entries'); console.info('Succeeded in getting entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to put batch.code is ${e.code},message is ${e.message}`); console.error(`Failed to put batch.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5286,6 +5346,10 @@ try { ...@@ -5286,6 +5346,10 @@ try {
getEntries(deviceId: string, keyPrefix: string): Promise&lt;Entry[]&gt; getEntries(deviceId: string, keyPrefix: string): Promise&lt;Entry[]&gt;
Obtains all KV pairs that match the specified device ID and key prefix. This API uses a promise to return the result. Obtains all KV pairs that match the specified device ID and key prefix. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5314,7 +5378,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5314,7 +5378,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -5328,23 +5391,23 @@ try { ...@@ -5328,23 +5391,23 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => { kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => {
console.log('Succeeded in getting entries'); console.info('Succeeded in getting entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
console.log(`entries[0].value: ${entries[0].value}`); console.info(`entries[0].value: ${entries[0].value}`);
console.log(`entries[0].value.value: ${entries[0].value.value}`); console.info(`entries[0].value.value: ${entries[0].value.value}`);
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to put batch.code is ${e.code},message is ${e.message}`); console.error(`Failed to put batch.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5375,7 +5438,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5375,7 +5438,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
var arr = new Uint8Array([21, 31]); var arr = new Uint8Array([21, 31]);
let entries = []; let entries = [];
...@@ -5390,23 +5452,23 @@ try { ...@@ -5390,23 +5452,23 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: {entries}`); console.info(`entries: {entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getEntries(query, function (err, entries) { kvStore.getEntries(query, function (err, entries) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get Entries.code is ${e.code},message is ${e.message}`); console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5442,7 +5504,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5442,7 +5504,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
var arr = new Uint8Array([21, 31]); var arr = new Uint8Array([21, 31]);
let entries = []; let entries = [];
...@@ -5457,22 +5518,22 @@ try { ...@@ -5457,22 +5518,22 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: {entries}`); console.info(`entries: {entries}`);
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting Batch'); console.info('Succeeded in putting Batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getEntries(query).then((entries) => { kvStore.getEntries(query).then((entries) => {
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get Entries.code is ${err.code},message is ${err.message}`) console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`)
}); });
console.log('Succeeded in getting Entries'); console.info('Succeeded in getting Entries');
} catch (e) { } catch (e) {
console.error(`Fail to get Entries.code is ${e.code},message is ${e.message}`); console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5481,6 +5542,10 @@ try { ...@@ -5481,6 +5542,10 @@ try {
getEntries(deviceId: string, query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void getEntries(deviceId: string, query: Query, callback: AsyncCallback&lt;Entry[]&gt;): void
Obtains the KV pairs that match the specified device ID and **Query** object. This API uses an asynchronous callback to return the result. Obtains the KV pairs that match the specified device ID and **Query** object. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5504,7 +5569,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5504,7 +5569,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
var arr = new Uint8Array([21, 31]); var arr = new Uint8Array([21, 31]);
let entries = []; let entries = [];
...@@ -5519,29 +5583,29 @@ try { ...@@ -5519,29 +5583,29 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
var query = new distributedKVStore.Query(); var query = new distributedKVStore.Query();
query.deviceId('localDeviceId'); query.deviceId('localDeviceId');
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getEntries('localDeviceId', query, function (err, entries) { kvStore.getEntries('localDeviceId', query, function (err, entries) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting entries'); console.info('Succeeded in getting entries');
console.log(`entries.length: ${entries.length}`); console.info(`entries.length: ${entries.length}`);
console.log(`entries[0]: ${entries[0]}`); console.info(`entries[0]: ${entries[0]}`);
}) })
}); });
console.log('Succeeded in getting entries'); console.info('Succeeded in getting entries');
} catch (e) { } catch (e) {
console.error(`Fail to get entries.code is ${e.code},message is ${e.message}`); console.error(`Failed to get entries.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5550,6 +5614,10 @@ try { ...@@ -5550,6 +5614,10 @@ try {
getEntries(deviceId: string, query: Query): Promise&lt;Entry[]&gt; getEntries(deviceId: string, query: Query): Promise&lt;Entry[]&gt;
Obtains the KV pairs that match the specified device ID and **Query** object. This API uses a promise to return the result. Obtains the KV pairs that match the specified device ID and **Query** object. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5578,7 +5646,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5578,7 +5646,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
var arr = new Uint8Array([21, 31]); var arr = new Uint8Array([21, 31]);
let entries = []; let entries = [];
...@@ -5593,23 +5660,23 @@ try { ...@@ -5593,23 +5660,23 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
console.log(`entries: ${entries}`); console.info(`entries: ${entries}`);
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
var query = new distributedKVStore.Query(); var query = new distributedKVStore.Query();
query.deviceId('localDeviceId'); query.deviceId('localDeviceId');
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getEntries('localDeviceId', query).then((entries) => { kvStore.getEntries('localDeviceId', query).then((entries) => {
console.log('Succeeded in getting entries'); console.info('Succeeded in getting entries');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get entries.code is ${err.code},message is ${err.message}`); console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
}); });
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
console.log('Succeeded in getting entries'); console.info('Succeeded in getting entries');
} catch (e) { } catch (e) {
console.error(`Fail to get entries.code is ${e.code},message is ${e.message}`); console.error(`Failed to get entries.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5634,13 +5701,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5634,13 +5701,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -5657,23 +5724,23 @@ try { ...@@ -5657,23 +5724,23 @@ try {
} }
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
kvStore.getResultSet('batch_test_string_key', async function (err, result) { kvStore.getResultSet('batch_test_string_key', async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}) })
}); });
}); });
...@@ -5708,13 +5775,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5708,13 +5775,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -5730,20 +5797,20 @@ try { ...@@ -5730,20 +5797,20 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
kvStore.getResultSet('batch_test_string_key').then((result) => { kvStore.getResultSet('batch_test_string_key').then((result) => {
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
}); });
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet).then((err) => {
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -5755,6 +5822,10 @@ try { ...@@ -5755,6 +5822,10 @@ try {
getResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void getResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
Obtains a **KVStoreResultSet** object that matches the specified device ID and key prefix. This API uses an asynchronous callback to return the result. Obtains a **KVStoreResultSet** object that matches the specified device ID and key prefix. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5764,7 +5835,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and k ...@@ -5764,7 +5835,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and k
| --------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | --------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| deviceId | string | Yes | ID of the target device. | | deviceId | string | Yes | ID of the target device. |
| keyPrefix | string | Yes | Key prefix to match. | | keyPrefix | string | Yes | Key prefix to match. |
| callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Yes | Callback invoked to return the **KVStoreResultSet** object that matches the specified device ID and key prefix.| | callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Yes | Callback invoked to return the **KvStoreResultSet** object that matches the specified device ID and key prefix.|
**Error codes** **Error codes**
...@@ -5772,32 +5843,32 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5772,32 +5843,32 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
kvStore.getResultSet('localDeviceId', 'batch_test_string_key', async function (err, result) { kvStore.getResultSet('localDeviceId', 'batch_test_string_key', async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting resultSet'); console.info('Succeeded in getting resultSet');
resultSet = result; resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing resultSet'); console.info('Succeeded in closing resultSet');
}) })
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get resultSet.code is ${e.code},message is ${e.message}`); console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5806,6 +5877,10 @@ try { ...@@ -5806,6 +5877,10 @@ try {
getResultSet(deviceId: string, keyPrefix: string): Promise&lt;KVStoreResultSet&gt; getResultSet(deviceId: string, keyPrefix: string): Promise&lt;KVStoreResultSet&gt;
Obtains a **KVStoreResultSet** object that matches the specified device ID and key prefix. This API uses a promise to return the result. Obtains a **KVStoreResultSet** object that matches the specified device ID and key prefix. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5820,7 +5895,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and k ...@@ -5820,7 +5895,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and k
| Type | Description | | Type | Description |
| ------------------------------------------------------ | ------------------------------------------------------------ | | ------------------------------------------------------ | ------------------------------------------------------------ |
| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise used to return the **KVStoreResultSet** object that matches the specified device ID and key prefix.| | Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise used to return the **KvStoreResultSet** object that matches the specified device ID and key prefix.|
**Error codes** **Error codes**
...@@ -5828,28 +5903,28 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5828,28 +5903,28 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result) => { kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result) => {
console.log('Succeeded in getting resultSet'); console.info('Succeeded in getting resultSet');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
}); });
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet).then((err) => {
console.log('Succeeded in closing resultSet'); console.info('Succeeded in closing resultSet');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get resultSet.code is ${e.code},message is ${e.message}`); console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5858,6 +5933,10 @@ try { ...@@ -5858,6 +5933,10 @@ try {
getResultSet(deviceId: string, query: Query, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void getResultSet(deviceId: string, query: Query, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
Obtains a **KVStoreResultSet** object that matches the specified device ID and **Query** object. This API uses an asynchronous callback to return the result. Obtains a **KVStoreResultSet** object that matches the specified device ID and **Query** object. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5867,7 +5946,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and * ...@@ -5867,7 +5946,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and *
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| deviceId | string | Yes | ID of the device to which the **KVStoreResultSet** object belongs. | | deviceId | string | Yes | ID of the device to which the **KVStoreResultSet** object belongs. |
| query | [Query](#query) | Yes | **Query** object to match. | | query | [Query](#query) | Yes | **Query** object to match. |
| callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Yes | Callback invoked to return the **KVStoreResultSet** object that matches the specified device ID and **Query** object.| | callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Yes | Callback invoked to return the **KvStoreResultSet** object that matches the specified device ID and **Query** object.|
**Error codes** **Error codes**
...@@ -5875,13 +5954,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5875,13 +5954,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -5898,30 +5977,30 @@ try { ...@@ -5898,30 +5977,30 @@ try {
} }
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSet('localDeviceId', query, async function (err, result) { kvStore.getResultSet('localDeviceId', query, async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting resultSet'); console.info('Succeeded in getting resultSet');
resultSet = result; resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing resultSet'); console.info('Succeeded in closing resultSet');
}) })
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get resultSet.code is ${e.code},message is ${e.message}`); console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -5930,6 +6009,10 @@ try { ...@@ -5930,6 +6009,10 @@ try {
getResultSet(deviceId: string, query: Query): Promise&lt;KVStoreResultSet&gt; getResultSet(deviceId: string, query: Query): Promise&lt;KVStoreResultSet&gt;
Obtains a **KVStoreResultSet** object that matches the specified device ID and **Query** object. This API uses a promise to return the result. Obtains a **KVStoreResultSet** object that matches the specified device ID and **Query** object. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -5944,7 +6027,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and * ...@@ -5944,7 +6027,7 @@ Obtains a **KVStoreResultSet** object that matches the specified device ID and *
| Type | Description | | Type | Description |
| ------------------------------------------------------ | ------------------------------------------------------------ | | ------------------------------------------------------ | ------------------------------------------------------------ |
| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise used to return the **KVStoreResultSet** object that matches the specified device ID and **Query** object.| | Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise used to return the **KvStoreResultSet** object that matches the specified device ID and **Query** object.|
**Error codes** **Error codes**
...@@ -5952,13 +6035,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -5952,13 +6035,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -5974,28 +6057,28 @@ try { ...@@ -5974,28 +6057,28 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSet('localDeviceId', query).then((result) => { kvStore.getResultSet('localDeviceId', query).then((result) => {
console.log('Succeeded in getting resultSet'); console.info('Succeeded in getting resultSet');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
}); });
query.deviceId('localDeviceId'); query.deviceId('localDeviceId');
console.log("GetResultSet " + query.getSqlLike()); console.info("GetResultSet " + query.getSqlLike());
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet).then((err) => {
console.log('Succeeded in closing resultSet'); console.info('Succeeded in closing resultSet');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultSet.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get resultSet.code is ${e.code},message is ${e.message}`); console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -6025,13 +6108,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6025,13 +6108,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -6047,17 +6130,17 @@ try { ...@@ -6047,17 +6130,17 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSet(query).then((result) => { kvStore.getResultSet(query).then((result) => {
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -6066,24 +6149,23 @@ try { ...@@ -6066,24 +6149,23 @@ try {
### getResultSet ### getResultSet
getResultSet(deviceId: string, query: Query): Promise&lt;KVStoreResultSet&gt; getResultSet(query: Query, callback:AsyncCallback&lt;KVStoreResultSet&gt;): void
Obtains a **KVStoreResultSet** object that matches the specified device ID and **Query** object. This API uses a promise to return the result. Obtains a **KVStoreResultSet** object that matches the specified **Query** object for this device. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.Core
**Parameters** **Parameters**
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | -------------- | ---- | ---------------------------------- | | -------- | -------------- | ---- | ---------------------------------- |
| deviceId | string | Yes | ID of the device to which the **KVStoreResultSet** object belongs.|
| query | [Query](#query) | Yes | **Query** object to match. | | query | [Query](#query) | Yes | **Query** object to match. |
| callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Yes | Callback invoked to return the **KVStoreResultSet** object obtained. |
**Return value**
| Type | Description |
| ---------------------------------------------------- | ------------------------------------------------------------ |
| Promise&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Promise used to return the **KVStoreResultSet** object obtained.|
**Error codes** **Error codes**
...@@ -6091,13 +6173,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6091,13 +6173,13 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
**Example** **Example**
```js ```js
let kvStore;
try { try {
let resultSet; let resultSet;
let entries = []; let entries = [];
...@@ -6112,29 +6194,32 @@ try { ...@@ -6112,29 +6194,32 @@ try {
} }
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries, async function (err, data) {
console.log('Succeeded in putting batch'); if (err != undefined) {
}).catch((err) => { console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); return;
}); }
const query = new distributedKVStore.Query(); console.info('Succeeded in putting batch');
query.prefixKey("batch_test"); const query = new distributedKVStore.Query();
kvStore.getResultSet('localDeviceId', query).then((result) => { query.prefixKey("batch_test");
console.log('Succeeded in getting resultSet'); kvStore.getResultSet(query, async function (err, result) {
resultSet = result; if (err != undefined) {
}).catch((err) => { console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
console.error(`Fail to get resultSet.code is ${err.code},message is ${err.message}`); return;
}); }
query.deviceId('localDeviceId'); console.info('Succeeded in getting resultSet');
console.log("GetResultSet " + query.getSqlLike()); resultSet = result;
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet, function (err, data) {
console.log('Succeeded in closing resultSet'); if (err != undefined) {
}).catch((err) => { console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
console.error(`Fail to close resultSet.code is ${err.code},message is ${err.message}`); return;
}
console.info('Succeeded in closing resultSet');
})
});
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get resultSet.code is ${e.code},message is ${e.message}`); console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -6152,7 +6237,7 @@ Obtains a **KVStoreResultSet** object that matches the specified predicate objec ...@@ -6152,7 +6237,7 @@ Obtains a **KVStoreResultSet** object that matches the specified predicate objec
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the **KVStoreResultSet** object to obtain. If this parameter is **null**, define the processing logic. | | predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the KV pairs to delete. If this parameter is **null**, define the processing logic. |
| callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Yes | Callback invoked to return the **KVStoreResultSet** object obtained.| | callback | AsyncCallback&lt;[KVStoreResultSet](#kvstoreresultset)&gt; | Yes | Callback invoked to return the **KVStoreResultSet** object obtained.|
**Error codes** **Error codes**
...@@ -6161,6 +6246,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6161,6 +6246,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
...@@ -6169,24 +6255,23 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6169,24 +6255,23 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let resultSet; let resultSet;
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
predicates.prefixKey("batch_test_string_key"); predicates.prefixKey("batch_test_string_key");
kvStore.getResultSet(predicates, async function (err, result) { kvStore.getResultSet(predicates, async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}) })
}); });
} catch (e) { } catch (e) {
...@@ -6208,7 +6293,7 @@ Obtains a **KVStoreResultSet** object that matches the specified predicate objec ...@@ -6208,7 +6293,7 @@ Obtains a **KVStoreResultSet** object that matches the specified predicate objec
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- | | ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- |
| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the **KVStoreResultSet** object to obtain. If this parameter is **null**, define the processing logic.| | predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the KV pairs to delete. If this parameter is **null**, define the processing logic.|
**Return value** **Return value**
...@@ -6222,6 +6307,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6222,6 +6307,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
...@@ -6230,21 +6316,20 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6230,21 +6316,20 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let resultSet; let resultSet;
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
predicates.prefixKey("batch_test_string_key"); predicates.prefixKey("batch_test_string_key");
kvStore.getResultSet(predicates).then((result) => { kvStore.getResultSet(predicates).then((result) => {
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
}); });
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet).then((err) => {
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -6256,6 +6341,10 @@ try { ...@@ -6256,6 +6341,10 @@ try {
getResultSet(deviceId: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void getResultSet(deviceId: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;KVStoreResultSet&gt;): void
Obtains a **KVStoreResultSet** object that matches the specified predicate object and device ID. This API uses an asynchronous callback to return the result. Obtains a **KVStoreResultSet** object that matches the specified predicate object and device ID. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System API**: This is a system API. **System API**: This is a system API.
...@@ -6275,6 +6364,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6275,6 +6364,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
...@@ -6283,24 +6373,23 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6283,24 +6373,23 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let resultSet; let resultSet;
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
predicates.prefixKey("batch_test_string_key"); predicates.prefixKey("batch_test_string_key");
kvStore.getResultSet('localDeviceId', predicates, async function (err, result) { kvStore.getResultSet('localDeviceId', predicates, async function (err, result) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
kvStore.closeResultSet(resultSet, function (err, data) { kvStore.closeResultSet(resultSet, function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}) })
}); });
} catch (e) { } catch (e) {
...@@ -6313,6 +6402,10 @@ try { ...@@ -6313,6 +6402,10 @@ try {
getResultSet(deviceId: string, predicates: dataSharePredicates.DataSharePredicates): Promise&lt;KVStoreResultSet&gt; getResultSet(deviceId: string, predicates: dataSharePredicates.DataSharePredicates): Promise&lt;KVStoreResultSet&gt;
Obtains a **KVStoreResultSet** object that matches the specified predicate object and device ID. This API uses a promise to return the result. Obtains a **KVStoreResultSet** object that matches the specified predicate object and device ID. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System API**: This is a system API. **System API**: This is a system API.
...@@ -6323,7 +6416,7 @@ Obtains a **KVStoreResultSet** object that matches the specified predicate objec ...@@ -6323,7 +6416,7 @@ Obtains a **KVStoreResultSet** object that matches the specified predicate objec
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- | | ---------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- |
| deviceId | string | Yes | ID of the target device. | | deviceId | string | Yes | ID of the target device. |
| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the **KVStoreResultSet** object to obtain. If this parameter is **null**, define the processing logic.| | predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | **DataSharePredicates** object that specifies the KV pairs to delete. If this parameter is **null**, define the processing logic.|
**Return value** **Return value**
...@@ -6337,6 +6430,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6337,6 +6430,7 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
| ID| **Error Message** | | ID| **Error Message** |
| ------------ | -------------------------------------- | | ------------ | -------------------------------------- |
| 15100001 | Over max limits. |
| 15100003 | Database corrupted. | | 15100003 | Database corrupted. |
| 15100005 | Database or result set already closed. | | 15100005 | Database or result set already closed. |
...@@ -6344,21 +6438,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6344,21 +6438,21 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
```js ```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'; import dataSharePredicates from '@ohos.data.dataSharePredicates';
let kvStore;
try { try {
let resultSet; let resultSet;
let predicates = new dataSharePredicates.DataSharePredicates(); let predicates = new dataSharePredicates.DataSharePredicates();
predicates.prefixKey("batch_test_string_key"); predicates.prefixKey("batch_test_string_key");
kvStore.getResultSet('localDeviceId', predicates).then((result) => { kvStore.getResultSet('localDeviceId', predicates).then((result) => {
console.log('Succeeded in getting result set'); console.info('Succeeded in getting result set');
resultSet = result; resultSet = result;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
}); });
kvStore.closeResultSet(resultSet).then((err) => { kvStore.closeResultSet(resultSet).then((err) => {
console.log('Succeeded in closing result set'); console.info('Succeeded in closing result set');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to close resultset.code is ${err.code},message is ${err.message}`); console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -6392,7 +6486,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6392,7 +6486,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -6407,15 +6500,15 @@ try { ...@@ -6407,15 +6500,15 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSize(query, async function (err, resultSize) { kvStore.getResultSize(query, async function (err, resultSize) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get result size.code is ${err.code},message is ${err.message}`); console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting result set size'); console.info('Succeeded in getting result set size');
}); });
}); });
} catch (e) { } catch (e) {
...@@ -6455,7 +6548,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6455,7 +6548,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -6470,16 +6562,16 @@ try { ...@@ -6470,16 +6562,16 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSize(query).then((resultSize) => { kvStore.getResultSize(query).then((resultSize) => {
console.log('Succeeded in getting result set size'); console.info('Succeeded in getting result set size');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get result size.code is ${err.code},message is ${err.message}`); console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`); console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
...@@ -6491,6 +6583,10 @@ try { ...@@ -6491,6 +6583,10 @@ try {
getResultSize(deviceId: string, query: Query, callback: AsyncCallback&lt;number&gt;): void; getResultSize(deviceId: string, query: Query, callback: AsyncCallback&lt;number&gt;): void;
Obtains the number of results that matches the specified device ID and **Query** object. This API uses an asynchronous callback to return the result. Obtains the number of results that matches the specified device ID and **Query** object. This API uses an asynchronous callback to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -6514,7 +6610,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6514,7 +6610,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -6530,23 +6625,23 @@ try { ...@@ -6530,23 +6625,23 @@ try {
} }
kvStore.putBatch(entries, async function (err, data) { kvStore.putBatch(entries, async function (err, data) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
const query = new distributedKVStore.Query(); const query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSize('localDeviceId', query, async function (err, resultSize) { kvStore.getResultSize('localDeviceId', query, async function (err, resultSize) {
if (err != undefined) { if (err != undefined) {
console.error(`Fail to get resultSize.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSize.code is ${err.code},message is ${err.message}`);
return; return;
} }
console.log('Succeeded in getting resultSize'); console.info('Succeeded in getting resultSize');
; ;
}); });
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get resultSize.code is ${e.code},message is ${e.message}`); console.error(`Failed to get resultSize.code is ${e.code},message is ${e.message}`);
} }
``` ```
...@@ -6555,6 +6650,10 @@ try { ...@@ -6555,6 +6650,10 @@ try {
getResultSize(deviceId: string, query: Query): Promise&lt;number&gt; getResultSize(deviceId: string, query: Query): Promise&lt;number&gt;
Obtains the number of results that matches the specified device ID and **Query** object. This API uses a promise to return the result. Obtains the number of results that matches the specified device ID and **Query** object. This API uses a promise to return the result.
> **NOTE**<br/>
>
> **deviceId** is obtained by [deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are system interfaces and available only to system applications.
> For details about how to obtain **deviceId**, see [sync()](#sync).
**System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore **System capability**: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
...@@ -6583,7 +6682,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err ...@@ -6583,7 +6682,6 @@ For details about the error codes, see [Distributed KV Store Error Codes](../err
**Example** **Example**
```js ```js
let kvStore;
try { try {
let entries = []; let entries = [];
for (var i = 0; i < 10; i++) { for (var i = 0; i < 10; i++) {
...@@ -6598,19 +6696,20 @@ try { ...@@ -6598,19 +6696,20 @@ try {
entries.push(entry); entries.push(entry);
} }
kvStore.putBatch(entries).then(async (err) => { kvStore.putBatch(entries).then(async (err) => {
console.log('Succeeded in putting batch'); console.info('Succeeded in putting batch');
}).catch((err) => { }).catch((err) => {
console.error(`Fail to put batch.code is ${err.code},message is ${err.message}`); console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
}); });
var query = new distributedKVStore.Query(); var query = new distributedKVStore.Query();
query.prefixKey("batch_test"); query.prefixKey("batch_test");
kvStore.getResultSize('localDeviceId', query).then((resultSize) => { kvStore.getResultSize('localDeviceId', query).then((resultSize) => {
console.log('Succeeded in getting resultSize'); console.info('Succeeded in getting resultSize');
; ;
}).catch((err) => { }).catch((err) => {
console.error(`Fail to get resultSize.code is ${err.code},message is ${err.message}`); console.error(`Failed to get resultSize.code is ${err.code},message is ${err.message}`);
}); });
} catch (e) { } catch (e) {
console.error(`Fail to get resultSize.code is ${e.code},message is ${e.message}`); console.error(`Failed to get resultSize.code is ${e.code},message is ${e.message}`);
} }
``` ```
<!--no_check-->
\ No newline at end of file
...@@ -8,19 +8,21 @@ ...@@ -8,19 +8,21 @@
**Error Message** **Error Message**
Over max subscribe limits. Over max limits.
**Description** **Description**
The number of subscriptions has reached the limit for **on('dataChange')**. The number of subscriptions or the number of opened result sets has reached the limit.
**Possible Causes** **Possible Causes**
The number of subscriptions has reached the limit for **on('dataChange')**. 1. The number of subscriptions made through **on()** reaches 8.
2. The number of result sets opened by **getResultSet()** reaches 8.
**Solution** **Solution**
Unregister unnecessary subscriptions and try again. 1. Cancel the subscriptions that are not required.
2. Close the result sets that are no longer required.
## 15100002 Parameter Configuration Changes ## 15100002 Parameter Configuration Changes
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册