diff --git a/en/application-dev/database/data-sync-of-rdb-store.md b/en/application-dev/database/data-sync-of-rdb-store.md
index 2d6d5a73e0cf7cfae28d7d6296039e28994477a8..7bcc40f6230871e7e9a3af7150cd943b426109c1 100644
--- a/en/application-dev/database/data-sync-of-rdb-store.md
+++ b/en/application-dev/database/data-sync-of-rdb-store.md
@@ -10,9 +10,16 @@ You can synchronize the application data in a local RDB store on a device to oth
OpenHamony supports synchronization of the relational data of an application across multiple devices.
-- Distributed table list
After a table is created for an application in an RDB store, you can set it as a distributed table. When querying the RDB store of a remote device, you can obtain the distributed table name of the remote device based on the local table name.
+- Distributed table list
-- Synchronization mode
Data can be synchronized between devices in either of the following ways:
- Pushing data from a local device to a remote device.
- Pulling data from a remote device to a local device.
+ After a table is created for an application in an RDB store, you can set it as a distributed table. When querying the RDB store of a remote device, you can obtain the distributed table name of the remote device based on the local table name.
+
+- Synchronization mode
+
+ Data can be synchronized between devices in either of the following ways:
+
+ - Pushing data from a local device to a remote device.
+ - Pulling data from a remote device to a local device.
## Working Principles
@@ -44,12 +51,10 @@ When data is added, deleted, or modified, a notification is sent to the subscrib
- Each RDB store supports a maximum of eight callbacks for subscription of data change notifications.
-- Third-party applications cannot call the distributed APIs that must be specified with the device.
-
## Available APIs
-The following table lists the APIs for cross-device data synchronization of RDB stores. Most of the APIs are executed asynchronously, using a callback or promise to return the result. The following table uses the callback-based APIs as an example. For more information about the APIs, see [RDB Store](../reference/apis/js-apis-data-relationalStore.md).
+Most of the APIs for cross-device data synchronization of RDB stores are executed asynchronously in callback or promise mode. The following table uses the callback-based APIs as an example. For more information about the APIs, see [RDB Store](../reference/apis/js-apis-data-relationalStore.md).
| API| Description|
| -------- | -------- |
@@ -73,7 +78,7 @@ The following table lists the APIs for cross-device data synchronization of RDB
import relationalStore from '@ohos.data.relationalStore';
```
-2. Request permissions.
+2. Apply for the required permission.
1. Request the **ohos.permission.DISTRIBUTED_DATASYNC** permission. For details, see [Declaring Permissions in the Configuration File](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file).
2. Display a dialog box to ask authorization from the user when the application is started for the first time. For details, see [Requesting User Authorization](../security/accesstoken-guidelines.md#requesting-user-authorization).
@@ -142,32 +147,33 @@ The following table lists the APIs for cross-device data synchronization of RDB
> **NOTE**
>
- > **deviceIds** is obtained by using [devManager.getTrustedDeviceListSync](../reference/apis/js-apis-device-manager.md#gettrusteddevicelistsync). The APIs of the **deviceManager** module are all system interfaces and available only to system applications.
+ > The value of **deviceIds** can be obtained by [deviceManager.getAvailableDeviceListSync](../reference/apis/js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
```js
// Obtain device IDs.
- import deviceManager from '@ohos.distributedHardware.deviceManager';
-
- deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.info(`Failed to create device manager. Code:${err.code},message:${err.message}`);
- return;
- }
- let devices = manager.getTrustedDeviceListSync();
- let deviceId = devices[0].deviceId;
-
- // Construct a predicate object for querying the distributed table.
- let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
- // Query data from the specified remote device and return the query result.
- store.remoteQuery(deviceId, 'EMPLOYEE', predicates, ['ID', 'NAME', 'AGE', 'SALARY', 'CODES'],
- function (err, resultSet) {
- if (err) {
- console.error(`Failed to remoteQuery data. Code:${err.code},message:${err.message}`);
- return;
- }
- console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`);
+ import deviceManager from '@ohos.distributedDeviceManager';
+ let dmInstance = null;
+ let deviceId = null;
+
+ try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ deviceId = devices[0].networkId;
+
+ // Construct a predicate object for querying the distributed table.
+ let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
+ // Query data from the specified remote device and return the query result.
+ store.remoteQuery(deviceId, 'EMPLOYEE', predicates, ['ID', 'NAME', 'AGE', 'SALARY', 'CODES'],
+ function (err, resultSet) {
+ if (err) {
+ console.error(`Failed to remoteQuery data. Code:${err.code},message:${err.message}`);
+ return;
}
- )
- })
- ```
+ console.info(`ResultSet column names: ${resultSet.columnNames}, column count: ${resultSet.columnCount}`);
+ }
+ )
+ } catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+ }
+ ```
\ No newline at end of file
diff --git a/en/application-dev/reference/apis/js-apis-data-relationalStore.md b/en/application-dev/reference/apis/js-apis-data-relationalStore.md
index 8d30126fec7cf31a42a9ae3bacf5d66db8b83238..cc77cf104bf296e0ef08ba948f2e47c537d73be8 100644
--- a/en/application-dev/reference/apis/js-apis-data-relationalStore.md
+++ b/en/application-dev/reference/apis/js-apis-data-relationalStore.md
@@ -577,7 +577,7 @@ Defines the data types allowed.
## ValuesBucket
-Defines the types of the key and value in a KV pair. This type is not multi-thread safe. If a **ValuesBucket** instance is operated by multiple threads at the same time in an application, use a lock for the instance.
+Enumerates the types of the key in a KV pair. This type is not multi-thread safe. If a **ValuesBucket** instance is operated by multiple threads at the same time in an application, use a lock for the instance.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -587,13 +587,14 @@ Defines the types of the key and value in a KV pair. This type is not multi-thre
## PRIKeyType10+
-Represents the type of the primary key in a row of a database table.
+Enumerates the types of the primary key in a row of a database table.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type | Description |
| ---------------- | ---------------------------------- |
-| number \| string | The type of the primary key can be number or string.|
+| number | The primary key is a number.|
+| string | The primary key is a string.|
## UTCTime10+
@@ -798,7 +799,8 @@ Sets an **RdbPredicates** to specify the remote devices to connect on the networ
> **NOTE**
>
-> The value of **devices** 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 **devices** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
+If **inDevices** is specified in **predicates** when **sync()** is called, data is synchronized with the specified device. If **inDevices** is not specified, data is synchronized with all devices on the network by default.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -817,22 +819,20 @@ Sets an **RdbPredicates** to specify the remote devices to connect on the networ
**Example**
```js
-import deviceManager from '@ohos.distributedHardware.deviceManager';
+import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
let deviceIds = [];
-deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.log("create device manager failed, err=" + err);
- return;
- }
- dmInstance = manager;
- let devices = dmInstance.getTrustedDeviceListSync();
- for (var i = 0; i < devices.length; i++) {
- deviceIds[i] = devices[i].deviceId;
- }
-})
-
+try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ for (var i = 0; i < devices.length; i++) {
+ deviceIds[i] = devices[i].networkId;
+ }
+} catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+}
+
let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
predicates.inDevices(deviceIds);
```
@@ -844,6 +844,7 @@ inAllDevices(): RdbPredicates
Sets an **RdbPredicates** to specify all remote devices on the network to connect during distributed database synchronization.
+
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
**Return value**
@@ -2733,7 +2734,7 @@ Queries data from the RDB store of a remote device based on specified conditions
> **NOTE**
>
-> The value of **device** 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 **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -2758,19 +2759,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example**
```js
-import deviceManager from '@ohos.distributedHardware.deviceManager';
+import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
let deviceId = null;
-deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.log("create device manager failed, err=" + err);
- return;
- }
- dmInstance = manager;
- let devices = dmInstance.getTrustedDeviceListSync();
- deviceId = devices[0].deviceId;
-})
+try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ deviceId = devices[0].networkId;
+} catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+}
let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.greaterThan("id", 0);
@@ -2803,7 +2802,7 @@ Queries data from the RDB store of a remote device based on specified conditions
> **NOTE**
>
-> The value of **device** 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 **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -2833,19 +2832,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example**
```js
-import deviceManager from '@ohos.distributedHardware.deviceManager';
+import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
let deviceId = null;
-deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.log("create device manager failed, err=" + err);
- return;
- }
- dmInstance = manager;
- let devices = dmInstance.getTrustedDeviceListSync();
- deviceId = devices[0].deviceId;
-})
+try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ deviceId = devices[0].networkId;
+} catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+}
let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.greaterThan("id", 0);
@@ -3586,6 +3583,8 @@ store.setDistributedTables(["EMPLOYEE"], relationalStore.DistributedType.DISTRIB
})
```
+
+
### setDistributedTables10+
setDistributedTables(tables: Array<string>, type: DistributedType, config: DistributedConfig, callback: AsyncCallback<void>): void
@@ -3682,7 +3681,7 @@ Obtains the distributed table name of a remote device based on the local table n
> **NOTE**
>
-> The value of **device** 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 **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
@@ -3707,19 +3706,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example**
```js
-import deviceManager from '@ohos.distributedHardware.deviceManager';
+import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
let deviceId = null;
-deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.log("create device manager failed, err=" + err);
- return;
- }
- dmInstance = manager;
- let devices = dmInstance.getTrustedDeviceListSync();
- deviceId = devices[0].deviceId;
-})
+try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ deviceId = devices[0].networkId;
+} catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+}
store.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) {
if (err) {
@@ -3738,7 +3735,7 @@ Obtains the distributed table name of a remote device based on the local table n
> **NOTE**
>
-> The value of **device** 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 **device** can be obtained by [deviceManager.getAvailableDeviceListSync](js-apis-distributedDeviceManager.md#getavailabledevicelistsync).
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
@@ -3768,19 +3765,17 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example**
```js
-import deviceManager from '@ohos.distributedHardware.deviceManager';
+import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
let deviceId = null;
-deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.log("create device manager failed, err=" + err);
- return;
- }
- dmInstance = manager;
- let devices = dmInstance.getTrustedDeviceListSync();
- deviceId = devices[0].deviceId;
-})
+try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ deviceId = devices[0].networkId;
+} catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+}
let promise = store.obtainDistributedTableName(deviceId, "EMPLOYEE");
promise.then((tableName) => {
@@ -3819,21 +3814,19 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example**
```js
-import deviceManager from '@ohos.distributedHardware.deviceManager';
+import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
let deviceIds = [];
-deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.log("create device manager failed, err=" + err);
- return;
- }
- dmInstance = manager;
- let devices = dmInstance.getTrustedDeviceListSync();
- for (var i = 0; i < devices.length; i++) {
- deviceIds[i] = devices[i].deviceId;
- }
-})
+try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ for (var i = 0; i < devices.length; i++) {
+ deviceIds[i] = devices[i].networkId;
+ }
+} catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+}
let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.inDevices(deviceIds);
@@ -3883,21 +3876,19 @@ For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode
**Example**
```js
-import deviceManager from '@ohos.distributedHardware.deviceManager';
+import deviceManager from '@ohos.distributedDeviceManager';
let dmInstance = null;
let deviceIds = [];
-deviceManager.createDeviceManager("com.example.appdatamgrverify", (err, manager) => {
- if (err) {
- console.log("create device manager failed, err=" + err);
- return;
- }
- dmInstance = manager;
- let devices = dmInstance.getTrustedDeviceListSync();
- for (var i = 0; i < devices.length; i++) {
- deviceIds[i] = devices[i].deviceId;
- }
-})
+try {
+ dmInstance = deviceManager.createDeviceManager("com.example.appdatamgrverify");
+ let devices = dmInstance.getAvailableDeviceListSync();
+ for (var i = 0; i < devices.length; i++) {
+ deviceIds[i] = devices[i].networkId;
+ }
+} catch (err) {
+ console.error("createDeviceManager errCode:" + err.code + ",errMessage:" + err.message);
+}
let predicates = new relationalStore.RdbPredicates('EMPLOYEE');
predicates.inDevices(deviceIds);
@@ -4129,7 +4120,7 @@ Registers an intra-process or inter-process event listener for the RDB store. Th
| Name | Type | Mandatory| Description |
| ------------ | --------------- | ---- | ------------------------------------------------------------ |
| event | string | Yes | Event name to observe. |
-| interProcess | boolean | Yes | Type of the event to observe.
The value **true** means the inter-process event.
The value **false** means the intra-process event. |
+| interProcess | boolean | Yes | Type of the event to observe.
The value **true** means the inter-process event.
The value **false** means the intra-process event.|
| observer | Callback\ | Yes | Callback invoked to return the result. |
**Error codes**