diff --git a/en/application-dev/database/database-relational-guidelines.md b/en/application-dev/database/database-relational-guidelines.md
index b56401dbedca72e76af3b15efdd63883885bf3d6..3a85b9ceab78ff6eadecd5bbb9c572977a8f7da1 100644
--- a/en/application-dev/database/database-relational-guidelines.md
+++ b/en/application-dev/database/database-relational-guidelines.md
@@ -74,6 +74,8 @@ The RDB provides APIs for inserting, deleting, updating, and querying data in th
| RdbStore | query(predicates: RdbPredicates, columns?: Array<string>): Promise<ResultSet> | Queries data in the RDB store based on the specified **RdbPredicates** object. This API uses a promise to return the result.
- **predicates**: conditions for querying data.
- **columns**: columns to query. If this parameter is not specified, the query applies to all columns.|
| RdbStore | querySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<ResultSet>):void | Queries data in the RDB store using the specified SQL statement. This API uses a callback to return the result.
- **sql**: SQL statement.
- **bindArgs**: arguments in the SQL statement.
- **callback**: callback invoked to return the result. If the operation is successful, a **ResultSet** object will be returned.|
| RdbStore | querySql(sql: string, bindArgs?: Array<ValueType>):Promise<ResultSet> | Queries data in the RDB store using the specified SQL statement. This API uses a promise to return the result.
- **sql**: SQL statement.
- **bindArgs**: arguments in the SQL statement.|
+ | RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>): void |Queries data from the RDB store of a remote device based on specified conditions. This API uses an asynchronous callback to return the result.
- **device**: network ID of the remote device.
- **table**: name of the table to query.
- **predicates**: conditions for querying data.
- **columns**: columns to query. If this parameter is not specified, the query applies to all columns.
- **callback**: callback invoked to return the result. If the operation is successful, a **ResultSet** object will be returned.|
+ | RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string>): Promise<ResultSet> | Queries data from the RDB store of a remote device based on specified conditions. This API uses a promise to return the result.
- **device**: network ID of the remote device.
- **table**: name of the table to query.
- **predicates**: conditions for querying data.
- **columns**: columns to query. If this parameter is not specified, the query applies to all columns.|
### Using Predicates
@@ -85,34 +87,34 @@ The RDB provides **RdbPredicates** for you to set database operation conditions.
| -------- | -------- | -------- |
| RdbPredicates |inDevices(devices: Array\): RdbPredicates | Specifies remote devices on the network with RDB stores to be synchronized.
- **devices**: IDs of the remote devices on the network.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
| RdbPredicates |inAllDevices(): RdbPredicates | Connects to all remote devices on the network with RDB stores to be synchronized.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | equalTo(field: string, value: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | notEqualTo(field: string, value: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value not equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | equalTo(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **ValueType** and value equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | notEqualTo(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **ValueType** and value not equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
| RdbPredicates | beginWrap(): RdbPredicates | Adds a left parenthesis to the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** with a left parenthesis.|
| RdbPredicates | endWrap(): RdbPredicates | Adds a right parenthesis to the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** with a right parenthesis.|
| RdbPredicates | or(): RdbPredicates | Adds the OR condition to the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** with the OR condition.|
| RdbPredicates | and(): RdbPredicates | Adds the AND condition to the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** with the AND condition.|
-| RdbPredicates | contains(field: string, value: string): RdbPredicates | Sets the **RdbPredicates** to match a string containing the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified string.|
-| RdbPredicates | beginsWith(field: string, value: string): RdbPredicates | Sets the **RdbPredicates** to match a string that starts with the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | endsWith(field: string, value: string): RdbPredicates | Sets the **RdbPredicates** to match a string that ends with the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | isNull(field: string): RdbPredicates | Sets the **RdbPredicates** to match the field whose value is null.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | isNotNull(field: string): RdbPredicates | Sets the **RdbPredicates** to match the field whose value is not null.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | like(field: string, value: string): RdbPredicates | Sets the **RdbPredicates** to match a string that is similar to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | glob(field: string, value: string): RdbPredicates | Sets the **RdbPredicates** to match the specified string.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | between(field: string, low: ValueType, high: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value within the specified range.
- **field**: column name in the database table.
- **low**: minimum value that matches the **RdbPredicates**.
- **high**: maximum value that matches the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value out of the specified range.
- **field**: column name in the database table.
- **low**: minimum value that matches the **RdbPredicates**.
- **high**: maximum value that matches the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | greaterThan(field: string, value: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value greater than the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | lessThan(field: string, value: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value less than the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value greater than or equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **ValueType** and value less than or equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | orderByAsc(field: string): RdbPredicates | Sets the **RdbPredicates** to match the column with values sorted in ascending order.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | orderByDesc(field: string): RdbPredicates | Sets the **RdbPredicates** to match the column with values sorted in descending order.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | distinct(): RdbPredicates | Sets the **RdbPredicates** to filter out duplicate records.
- **RdbPredicates**: returns a **RdbPredicates** object that can filter out duplicate records.|
-| RdbPredicates | limitAs(value: number): RdbPredicates | Sets the **RdbPredicates** to specify the maximum number of records.
- **value**: maximum number of records.
- **RdbPredicates**: returns a **RdbPredicates** object that can be used to set the maximum number of records.|
+| RdbPredicates | contains(field: string, value: string): RdbPredicates | Sets an **RdbPredicates** to match a string containing the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified string.|
+| RdbPredicates | beginsWith(field: string, value: string): RdbPredicates | Sets an **RdbPredicates** to match a string that starts with the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | endsWith(field: string, value: string): RdbPredicates | Sets an **RdbPredicates** to match a string that ends with the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | isNull(field: string): RdbPredicates | Sets an **RdbPredicates** to match the field whose value is null.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | isNotNull(field: string): RdbPredicates | Sets an **RdbPredicates** to match the field whose value is not null.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | like(field: string, value: string): RdbPredicates | Sets an **RdbPredicates** to match a string that is similar to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | glob(field: string, value: string): RdbPredicates | Sets an **RdbPredicates** to match the specified string.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | between(field: string, low: ValueType, high: ValueType): RdbPredicates | Sets ta **RdbPredicates** to match the field with data type **ValueType** and value within the specified range.
- **field**: column name in the database table.
- **low**: minimum value that matches the **RdbPredicates**.
- **high**: maximum value that matches the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **ValueType** and value out of the specified range.
- **field**: column name in the database table.
- **low**: minimum value that matches the **RdbPredicates**.
- **high**: maximum value that matches the **RdbPredicates**.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | greaterThan(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **ValueType** and value greater than the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | lessThan(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **ValueType** and value less than the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **ValueType** and value greater than or equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **ValueType** and value less than or equal to the specified value.
- **field**: column name in the database table.
- **value**: value specified.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | orderByAsc(field: string): RdbPredicates | Sets an **RdbPredicates** to match the column with values sorted in ascending order.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | orderByDesc(field: string): RdbPredicates | Sets an **RdbPredicates** to match the column with values sorted in descending order.
- **field**: column name in the database table.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | distinct(): RdbPredicates | Sets an **RdbPredicates** to filter out duplicate records.
- **RdbPredicates**: returns a **RdbPredicates** object that can filter out duplicate records.|
+| RdbPredicates | limitAs(value: number): RdbPredicates | Sets an **RdbPredicates** to specify the maximum number of records.
- **value**: maximum number of records.
- **RdbPredicates**: returns a **RdbPredicates** object that can be used to set the maximum number of records.|
| RdbPredicates | offsetAs(rowOffset: number): RdbPredicates | Sets the **RdbPredicates** to specify the start position of the returned result.
- **rowOffset**: start position of the returned result. The value is a positive integer.
- **RdbPredicates**: returns a **RdbPredicates** object that specifies the start position of the returned result.|
-| RdbPredicates | groupBy(fields: Array<string>): RdbPredicates | Sets the **RdbPredicates** to group rows that have the same value into summary rows.
- **fields**: names of the columns grouped for querying data.
- **RdbPredicates**: returns a **RdbPredicates** object that groups rows with the same value.|
-| RdbPredicates | indexedBy(indexName: string): RdbPredicates | Sets the **RdbPredicates** to specify the index column.
- **indexName**: name of the index column.
- **RdbPredicates**: returns a **RdbPredicates** object that specifies the index column.|
-| RdbPredicates | in(field: string, value: Array<ValueType>): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **Array<ValueType>** and value within the specified range.
- **field**: column name in the database table.
- **value**: array of **ValueType** to match.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
-| RdbPredicates | notIn(field: string, value: Array<ValueType>): RdbPredicates | Sets the **RdbPredicates** to match the field with data type **Array<ValueType>** and value out of the specified range.
- **field**: column name in the database table.
- **value**: array of **ValueType** to match.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | groupBy(fields: Array<string>): RdbPredicates | Sets an **RdbPredicates** to group rows that have the same value into summary rows.
- **fields**: names of the columns grouped for querying data.
- **RdbPredicates**: returns a **RdbPredicates** object that groups rows with the same value.|
+| RdbPredicates | indexedBy(indexName: string): RdbPredicates | Sets an **RdbPredicates** to specify the index column.
- **indexName**: name of the index column.
- **RdbPredicates**: returns a **RdbPredicates** object that specifies the index column.|
+| RdbPredicates | in(field: string, value: Array<ValueType>): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **Array<ValueType>** and value within the specified range.
- **field**: column name in the database table.
- **value**: array of **ValueType** to match.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
+| RdbPredicates | notIn(field: string, value: Array<ValueType>): RdbPredicates | Sets an **RdbPredicates** to match the field with data type **Array<ValueType>** and value out of the specified range.
- **field**: column name in the database table.
- **value**: array of **ValueType** to match.
- **RdbPredicates**: returns a **RdbPredicates** object that matches the specified field.|
### Using the Result Set
@@ -131,8 +133,8 @@ A result set can be regarded as a row of data in the queried results. It allows
| ResultSet | goToPreviousRow(): boolean | Moves the result set to the previous row.|
| ResultSet | getColumnIndex(columnName: string): number | Obtains the column index based on the specified column name.|
| ResultSet | getColumnName(columnIndex: number): string | Obtains the column name based on the specified column index.|
-| ResultSet | goToFirstRow(): boolean | Checks whether the result set is located in the first row.|
-| ResultSet | goToLastRow(): boolean | Checks whether the result set is located in the last row.|
+| ResultSet | goToFirstRow(): boolean | Moves to the first row of the result set.|
+| ResultSet | goToLastRow(): boolean | Moves to the last row of the result set.|
| ResultSet | getString(columnIndex: number): string | Obtains the value in the specified column of the current row, in a string.|
| ResultSet | getBlob(columnIndex: number): Uint8Array | Obtains the values in the specified column of the current row, in a byte array.|
| ResultSet | getDouble(columnIndex: number): number | Obtains the values in the specified column of the current row, in double.|
@@ -162,7 +164,7 @@ You can obtain the distributed table name for a remote device based on the local
| Class| API| Description|
| -------- | -------- | -------- |
-| RdbStore | obtainDistributedTableName(device: string, table: string, callback: AsyncCallback\): void | Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the database of a remote device is queried. This API uses an asynchronous callback to return the result.
- **device**: remote device.
- **table**: local table name.
- **callback**: callback used to return the result. If the operation is successful, the distributed table name of the remote device will be returned. |
+| RdbStore | obtainDistributedTableName(device: string, table: string, callback: AsyncCallback\): void | Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the database of a remote device is queried. This API uses an asynchronous callback to return the result.
- **device**: remote device.
- **table**: local table name.
- **callback**: callback used to return the result. If the operation is successful, the distributed table name of the remote device will be returned.|
| RdbStore | obtainDistributedTableName(device: string, table: string): Promise\ | Obtains the distributed table name for a remote device based on the local table name. The distributed table name is used to query the RDB store of the remote device. This API uses a promise to return the result.
- **device**: remote device.
- **table**: local table name.|
**Synchronizing Data Between Devices**
@@ -172,7 +174,7 @@ You can obtain the distributed table name for a remote device based on the local
| Class| API| Description|
| -------- | -------- | -------- |
| RdbStore | sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback\>): void | Synchronizes data between devices. This API uses a callback to return the result.
- **mode**: data synchronization mode. **SYNC_MODE_PUSH** means to push data from the local device to a remote device. **SYNC_MODE_PULL** means to pull data from a remote device to the local device.
- **predicates**: data and devices to be synchronized.
- **callback**: callback invoked to return the result. In the result, **string** indicates the device ID, and **number** indicates the synchronization status of each device. The value **0** indicates a success, and other values indicate a failure.|
-| RdbStore | sync(mode: SyncMode, predicates: RdbPredicates): Promise\> | Synchronizes data between devices. This API uses a promise to return the result.
- **mode**: data synchronization mode. **SYNC_MODE_PUSH** means to push data from the local device to a remote device. **SYNC_MODE_PULL** means to pull data from a remote device to the local device.
- **predicates**: data and devices to be synchronized. |
+| RdbStore | sync(mode: SyncMode, predicates: RdbPredicates): Promise\> | Synchronizes data between devices. This API uses a promise to return the result.
- **mode**: data synchronization mode. **SYNC_MODE_PUSH** means to push data from the local device to a remote device. **SYNC_MODE_PULL** means to pull data from a remote device to the local device.
- **predicates**: data and devices to be synchronized.|
**Registering an RDB Store Observer**
@@ -210,6 +212,16 @@ You can obtain the distributed table name for a remote device based on the local
| RdbStore |restore(srcName:string, callback: AsyncCallback<void>):void| Restores an RDB store using a backup file. This API uses an asynchronous callback to return the result.
- **srcName**: name of the RDB backup file.
- **callback**: callback invoked to return the result.|
| RdbStore |restore(srcName:string): Promise<void>| Restores an RDB store using a backup file. This API uses a promise to return the result.
- **srcName**: name of the RDB backup file.|
+**Transaction**
+
+Table 15 Transaction APIs
+
+| Class| API| Description|
+| -------- | -------- | -------- |
+| RdbStore |beginTransaction():void| Starts the transaction before executing SQL statements.|
+| RdbStore |commit():void| Commits the executed SQL statements.|
+| RdbStore |rollBack():void| Rolls back the SQL statements that have been executed.|
+
## How to Develop
1. Create an RDB store.
@@ -270,7 +282,7 @@ You can obtain the distributed table name for a remote device based on the local
const blobType = resultSet.getBlob(resultSet.getColumnIndex("blobType"))
resultSet.close()
})
- ```
+ ```
4. Set the distributed tables to be synchronized.
@@ -278,9 +290,9 @@ You can obtain the distributed table name for a remote device based on the local
```js
"requestPermissions":
- {
- "name": "ohos.permission.DISTRIBUTED_DATASYNC"
- }
+ {
+ "name": "ohos.permission.DISTRIBUTED_DATASYNC"
+ }
```
(2) Obtain the required permissions.
@@ -321,7 +333,7 @@ You can obtain the distributed table name for a remote device based on the local
promise.then((result) => {
console.log('sync done.')
for (let i = 0; i < result.length; i++) {
- console.log('device=' + result[i][0] + ' status=' + result[i][1])
+ console.log('device=' + result[i][0] + 'status=' + result[i][1])
}
}).catch((err) => {
console.log('sync failed')
@@ -339,7 +351,7 @@ You can obtain the distributed table name for a remote device based on the local
```js
function storeObserver(devices) {
for (let i = 0; i < devices.length; i++) {
- console.log('device=' + device[i] + ' data changed')
+ console.log('device=' + device[i] + 'data changed')
}
}
try {
@@ -361,8 +373,34 @@ You can obtain the distributed table name for a remote device based on the local
let tableName = rdbStore.obtainDistributedTableName(deviceId, "test");
let resultSet = rdbStore.querySql("SELECT * FROM " + tableName)
```
-
-8. Back up and restore an RDB store.
+
+8. Query data of a remote device.
+
+
+ (1) Construct a predicate object for querying distributed tables, and specify the remote distributed table name and the remote device.
+
+ (2) Call the resultSet() API to obtain the result.
+
+ The sample code is as follows:
+
+ ```js
+ let rdbPredicate = new data_rdb.RdbPredicates('employee')
+ predicates.greaterThan("id", 0)
+ let promiseQuery = rdbStore.remoteQuery('12345678abcde', 'employee', rdbPredicate)
+ promiseQuery.then((resultSet) => {
+ while (resultSet.goToNextRow()) {
+ let idx = resultSet.getLong(0);
+ let name = resultSet.getString(1);
+ let age = resultSet.getLong(2);
+ console.info(idx + " " + name + " " + age);
+ }
+ resultSet.close();
+ }).catch((err) => {
+ console.info("failed to remoteQuery, err: " + err)
+ })
+ ```
+
+9. Back up and restore an RDB store.
(1) Back up the current RDB store.
@@ -372,23 +410,17 @@ You can obtain the distributed table name for a remote device based on the local
```js
let promiseBackup = rdbStore.backup("dbBackup.db")
- promiseBackup.then(()=>{
+ promiseBackup.then(() => {
console.info('Backup success.')
- }).catch((err)=>{
+ }).catch((err) => {
console.info('Backup failed, err: ' + err)
})
```
```js
let promiseRestore = rdbStore.restore("dbBackup.db")
- promiseRestore.then(()=>{
+ promiseRestore.then(() => {
console.info('Restore success.')
- }).catch((err)=>{
+ }).catch((err) => {
console.info('Restore failed, err: ' + err)
})
```
-
-## Samples
-The following samples are provided for you to better understand the RDB development:
-- [`Rdb`: eTS RDB (API8)](https://gitee.com/openharmony/app_samples/tree/master/data/Rdb)
-- [`DistributedRdb`: eTS Distributed Relational Database (API8)](https://gitee.com/openharmony/app_samples/tree/master/data/DistributedRdb)
-- [Relational Database](https://gitee.com/openharmony/codelabs/tree/master/Data/JSRelationshipData)
diff --git a/en/application-dev/reference/apis/js-apis-data-rdb.md b/en/application-dev/reference/apis/js-apis-data-rdb.md
index 38c07d6247487e037e9158a00e5c2f752621b44e..adf54efbe8e95058c353a049211cec7c20e72ae3 100644
--- a/en/application-dev/reference/apis/js-apis-data-rdb.md
+++ b/en/application-dev/reference/apis/js-apis-data-rdb.md
@@ -85,7 +85,7 @@ promise.then(async (rdbStore) => {
deleteRdbStore(context: Context, name: string, callback: AsyncCallback<void>): void
-Deletes an RDB store. This API uses an asynchronous callback to return the result.
+Deletes an RDB store. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -211,7 +211,7 @@ predicates.inAllDevices()
equalTo(field: string, value: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value equal to the specified value.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value equal to the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -238,7 +238,7 @@ predicates.equalTo("NAME", "lisi")
notEqualTo(field: string, value: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value not equal to the specified value.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value not equal to the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -362,7 +362,7 @@ predicates.equalTo("NAME", "Lisa")
contains(field: string, value: string): RdbPredicates
-Sets the **RdbPredicates** to match a string containing the specified value.
+Sets an **RdbPredicates** to match a string containing the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -389,7 +389,7 @@ predicates.contains("NAME", "os")
beginsWith(field: string, value: string): RdbPredicates
-Sets the **RdbPredicates** to match a string that starts with the specified value.
+Sets an **RdbPredicates** to match a string that starts with the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -416,7 +416,7 @@ predicates.beginsWith("NAME", "os")
endsWith(field: string, value: string): RdbPredicates
-Sets the **RdbPredicates** to match a string that ends with the specified value.
+Sets an **RdbPredicates** to match a string that ends with the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -443,7 +443,7 @@ predicates.endsWith("NAME", "se")
isNull(field: string): RdbPredicates
-Sets the **RdbPredicates** to match the field whose value is null.
+Sets an **RdbPredicates** to match the field whose value is null.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -469,7 +469,7 @@ predicates.isNull("NAME")
isNotNull(field: string): RdbPredicates
-Sets the **RdbPredicates** to match the field whose value is not null.
+Sets an **RdbPredicates** to match the field whose value is not null.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -495,7 +495,7 @@ predicates.isNotNull("NAME")
like(field: string, value: string): RdbPredicates
-Sets the **RdbPredicates** to match a string that is similar to the specified value.
+Sets an **RdbPredicates** to match a string that is similar to the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -522,7 +522,7 @@ predicates.like("NAME", "%os%")
glob(field: string, value: string): RdbPredicates
-Sets the **RdbPredicates** to match the specified string.
+Sets an **RdbPredicates** to match the specified string.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -549,7 +549,7 @@ predicates.glob("NAME", "?h*g")
between(field: string, low: ValueType, high: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value within the specified range.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value within the specified range.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -577,7 +577,7 @@ predicates.between("AGE", 10, 50)
notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value out of the specified range.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value out of the specified range.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -604,7 +604,7 @@ predicates.notBetween("AGE", 10, 50)
greaterThan(field: string, value: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value greater than the specified value.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value greater than the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -631,7 +631,7 @@ predicates.greaterThan("AGE", 18)
lessThan(field: string, value: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value less than the specified value.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value less than the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -659,7 +659,7 @@ predicates.lessThan("AGE", 20)
greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value greater than or equal to the specified value.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value greater than or equal to the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -687,7 +687,7 @@ predicates.greaterThanOrEqualTo("AGE", 18)
lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **ValueType** and value less than or equal to the specified value.
+Sets an **RdbPredicates** to match the field with data type **ValueType** and value less than or equal to the specified value.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -715,7 +715,7 @@ predicates.lessThanOrEqualTo("AGE", 20)
orderByAsc(field: string): RdbPredicates
-Sets the **RdbPredicates** to match the column with values sorted in ascending order.
+Sets an **RdbPredicates** to match the column with values sorted in ascending order.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -742,7 +742,7 @@ predicates.orderByAsc("NAME")
orderByDesc(field: string): RdbPredicates
-Sets the **RdbPredicates** to match the column with values sorted in descending order.
+Sets an **RdbPredicates** to match the column with values sorted in descending order.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -768,7 +768,7 @@ predicates.orderByDesc("AGE")
distinct(): RdbPredicates
-Sets the **RdbPredicates** to filter out duplicate records.
+Sets an **RdbPredicates** to filter out duplicate records.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -789,7 +789,7 @@ predicates.equalTo("NAME", "Rose").distinct("NAME")
limitAs(value: number): RdbPredicates
-Sets the **RdbPredicates** to specify the maximum number of records.
+Sets an **RdbPredicates** to specify the maximum number of records.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -815,7 +815,7 @@ predicates.equalTo("NAME", "Rose").limitAs(3)
offsetAs(rowOffset: number): RdbPredicates
-Sets the **RdbPredicates** to specify the start position of the returned result.
+Sets an **RdbPredicates** to specify the start position of the returned result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -841,7 +841,7 @@ predicates.equalTo("NAME", "Rose").offsetAs(3)
groupBy(fields: Array<string>): RdbPredicates
-Sets the **RdbPredicates** to group rows that have the same value into summary rows.
+Sets an **RdbPredicates** to group rows that have the same value into summary rows.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -866,7 +866,7 @@ predicates.groupBy(["AGE", "NAME"])
indexedBy(field: string): RdbPredicates
-Sets the **RdbPredicates** object to specify the index column.
+Sets an **RdbPredicates** object to specify the index column.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -893,7 +893,7 @@ predicates.indexedBy("SALARY_INDEX")
in(field: string, value: Array<ValueType>): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **Array<ValueType>** and value within the specified range.
+Sets an **RdbPredicates** to match the field with data type **Array<ValueType>** and value within the specified range.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -921,7 +921,7 @@ predicates.in("AGE", [18, 20])
notIn(field: string, value: Array<ValueType>): RdbPredicates
-Sets the **RdbPredicates** to match the field with data type **Array<ValueType>** and value out of the specified range.
+Sets an **RdbPredicates** to match the field with data type **Array<ValueType>** and value out of the specified range.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -972,12 +972,12 @@ const valueBucket = {
"SALARY": 100.5,
"CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
-rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
- if (err) {
- console.info("Failed to insert data, err: " + err)
- return
+rdbStore.insert("EMPLOYEE", valueBucket, function (status, rowId) {
+ if (status) {
+ console.log("Failed to insert data");
+ return;
}
- console.log("Inserted first row: " + ret)
+ console.log("Inserted data, rowId = " + rowId);
})
```
@@ -1010,19 +1010,113 @@ const valueBucket = {
"CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let promise = rdbStore.insert("EMPLOYEE", valueBucket)
-promise.then(async (ret) => {
- console.log("Inserted first row: " + ret)
-}).catch((err) => {
- console.log("Failed to insert data, err: " + err)
+promise.then((rowId) => {
+ console.log("Inserted data, rowId = " + rowId);
+}).catch((status) => {
+ console.log("Failed to insert data");
})
```
+### batchInsert9+
+
+batchInsert(table: string, values: Array<ValuesBucket>, callback: AsyncCallback<number>):void
+
+Batch inserts data into a table. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
+
+**Parameters**
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| table | string | Yes| Name of the target table.|
+| values | Array<[ValuesBucket](#valuesbucket)> | Yes| An array of data to insert.|
+| callback | AsyncCallback<number> | Yes| Callback invoked to return the result. If the operation is successful, the number of inserted data records is returned. Otherwise, **-1** is returned.|
+
+**Example**
+```js
+const valueBucket1 = {
+ "NAME": "Lisa",
+ "AGE": 18,
+ "SALARY": 100.5,
+ "CODES": new Uint8Array([1, 2, 3, 4, 5])
+}
+const valueBucket2 = {
+ "NAME": "Jack",
+ "AGE": 19,
+ "SALARY": 101.5,
+ "CODES": new Uint8Array([6, 7, 8, 9, 10])
+}
+const valueBucket3 = {
+ "NAME": "Tom",
+ "AGE": 20,
+ "SALARY": 102.5,
+ "CODES": new Uint8Array([11, 12, 13, 14, 15])
+}
+
+var valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3);
+rdbStore.batchInsert("EMPLOYEE", valueBuckets, function(status, insertNum) {
+ if (status) {
+ console.log("bathInsert failed, status = " + status);
+ return;
+ }
+ console.log("bathInsert is successful, the number of values that were inserted = " + insertNum);
+})
+```
+
+### batchInsert9+
+
+batchInsert(table: string, values: Array<ValuesBucket>):Promise<number>
+
+Batch inserts data into a table. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
+
+**Parameters**
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| table | string | Yes| Name of the target table.|
+| values | Array<[ValuesBucket](#valuesbucket)> | Yes| An array of data to insert.|
+
+**Return value**
+| Type| Description|
+| -------- | -------- |
+| Promise<number> | Promise used to return the result. If the operation is successful, the number of inserted data records is returned. Otherwise, **-1** is returned.|
+
+**Example**
+```js
+const valueBucket1 = {
+ "NAME": "Lisa",
+ "AGE": 18,
+ "SALARY": 100.5,
+ "CODES": new Uint8Array([1, 2, 3, 4, 5])
+}
+const valueBucket2 = {
+ "NAME": "Jack",
+ "AGE": 19,
+ "SALARY": 101.5,
+ "CODES": new Uint8Array([6, 7, 8, 9, 10])
+}
+const valueBucket3 = {
+ "NAME": "Tom",
+ "AGE": 20,
+ "SALARY": 102.5,
+ "CODES": new Uint8Array([11, 12, 13, 14, 15])
+}
+
+var valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3);
+let promise = rdbStore.batchInsert("EMPLOYEE", valueBuckets);
+promise.then((insertNum) => {
+ console.log("bathInsert is successful, the number of values that were inserted = " + insertNum);
+}).catch((status) => {
+ console.log("bathInsert failed, status = " + status);
+})
+```
### update
update(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback<number>):void
-Updates data in the RDB store based on the specified **RdbPredicates** object. This API uses an asynchronous callback to return the result.
+Updates data based on the specified **RdbPredicates** object. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1057,7 +1151,7 @@ rdbStore.update(valueBucket, predicates, function (err, ret) {
update(values: ValuesBucket, predicates: RdbPredicates):Promise<number>
-Updates data in the RDB store based on the specified **RdbPredicates** object. This API uses a promise to return the result.
+Updates data based on the specified **RdbPredicates** object. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1093,7 +1187,7 @@ promise.then(async (ret) => {
### update9+
update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>):void
-Updates data in the RDB store based on the specified **DataSharePredicates** object. This API uses an asynchronous callback to return the result.
+Updates data based on the specified **DataSharePredicates** object. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1128,7 +1222,7 @@ rdbStore.update("EMPLOYEE", valueBucket, predicates, function (err, ret) {
update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates):Promise<number>
-Updates data in the RDB store based on the specified **DataSharePredicates** object. This API uses a promise to return the result.
+Updates data based on the specified **DataSharePredicates** object. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1287,7 +1381,7 @@ promise.then((rows) => {
query(predicates: RdbPredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>):void
-Queries data in the RDB store based on specified conditions. This API uses an asynchronous callback to return the result.
+Queries data from the RDB store based on specified conditions. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1317,7 +1411,7 @@ rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (e
query(predicates: RdbPredicates, columns?: Array<string>):Promise<ResultSet>
-Queries data in the RDB store based on specified conditions. This API uses a promise to return the result.
+Queries data from the RDB store based on specified conditions. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1330,7 +1424,7 @@ Queries data in the RDB store based on specified conditions. This API uses a pro
**Return value**
| Type| Description|
| -------- | -------- |
-| Promise<[ResultSet](../apis/js-apis-data-resultset.md)> | Promise used to return the result. If the operation is successful, a **ResultSet** object will be returned.|
+| Promise<[ResultSet](js-apis-data-resultset.md)> | Promise used to return the result. If the operation is successful, a **ResultSet** object will be returned.|
**Example**
```js
@@ -1349,7 +1443,7 @@ Queries data in the RDB store based on specified conditions. This API uses a pro
query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>):void
-Queries data in the RDB store based on specified conditions. This API uses an asynchronous callback to return the result.
+Queries data from the RDB store based on specified conditions. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1362,6 +1456,7 @@ Queries data in the RDB store based on specified conditions. This API uses an as
| callback | AsyncCallback<[ResultSet](js-apis-data-resultset.md)> | Yes| Callback invoked to return the result. If the operation is successful, a **ResultSet** object will be returned.|
**Example**
+
```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
@@ -1380,7 +1475,7 @@ rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"],
query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array<string>):Promise<ResultSet>
-Queries data in the RDB store based on specified conditions. This API uses a promise to return the result.
+Queries data from the RDB store based on specified conditions. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1392,6 +1487,7 @@ Queries data in the RDB store based on specified conditions. This API uses a pro
| columns | Array<string> | No| Columns to query. If this parameter is not specified, the query applies to all columns.|
**Return value**
+
| Type| Description|
| -------- | -------- |
| Promise<[ResultSet](js-apis-data-resultset.md)> | Promise used to return the result. If the operation is successful, a **ResultSet** object will be returned.|
@@ -1410,11 +1506,81 @@ promise.then((resultSet) => {
})
```
+### remoteQuery9+
+
+remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string> , callback: AsyncCallback<ResultSet>): void
+
+Queries data from the RDB store of a remote device based on specified conditions. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| device | string | Yes| Network ID of the remote device.|
+| table | string | Yes| Name of the target table.|
+| predicates | [RdbPredicates](#rdbpredicates) | Yes| Conditions for querying data.|
+| columns | Array<string> | Yes| Columns to query. If this parameter is not specified, the query applies to all columns.|
+| callback | AsyncCallback<[ResultSet](js-apis-data-resultset.md#resultset)> | Yes| Callback invoked to return the result. If the operation is successful, a **ResultSet** object will be returned.|
+
+**Example**
+
+```js
+let predicates = new rdb.RdbPredicates('EPLOYEE')
+predicates.greaterThan("id", 0)
+rdbStore.remoteQuery("deviceId", "EPLOYEE", predicates, function(err, resultSet){
+ if (err) {
+ console.info("Failed to remoteQuery, err: " + err)
+ return
+ }
+ console.info("ResultSet column names: " + resultSet.columnNames)
+ console.info("ResultSet column count: " + resultSet.columnCount)
+})
+```
+
+### remoteQuery9+
+
+remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string>): Promise<ResultSet>
+
+Queries data from the RDB store of a remote device based on specified conditions. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
+
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| device | string | Yes| Network ID of the remote device.|
+| table | string | Yes| Name of the target table.|
+| predicates | [RdbPredicates](#rdbpredicates) | Yes| Conditions for querying data.|
+| columns | Array<string> | No| Columns to query. If this parameter is not specified, the query applies to all columns.|
+
+**Return value**
+
+| Type | Description |
+| ------------------------------------------------------------ | -------------------------------------------------------- |
+| Promise<[ResultSet](js-apis-data-resultset.md#resultset)> | Promise used to return the result. If the operation is successful, a **ResultSet** object will be returned.|
+
+**Example**
+
+```js
+let predicates = new rdb.RdbPredicates('EPLOYEE')
+predicates.greaterThan("id", 0)
+let promise = rdbStore.remoteQuery("deviceId", "EMPLOYEE", predicates)
+promise.then((resultSet) => {
+ console.info("ResultSet column names: " + resultSet.columnNames)
+ console.info("ResultSet column count: " + resultSet.columnCount)
+}).catch((err) => {
+ console.info("Failed to remoteQuery , err: " + err)
+})
+```
+
### querySql8+
querySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<ResultSet>):void
-Queries data in the RDB store using the specified SQL statement. This API uses an asynchronous callback to return the result.
+Queries data using the specified SQL statement. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1442,7 +1608,7 @@ rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?",
querySql(sql: string, bindArgs?: Array<ValueType>):Promise<ResultSet>
-Queries data in the RDB store using the specified SQL statement. This API uses a promise to return the result.
+Queries data using the specified SQL statement. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1455,7 +1621,7 @@ Queries data in the RDB store using the specified SQL statement. This API uses a
**Return value**
| Type| Description|
| -------- | -------- |
-| Promise<[ResultSet](../apis/js-apis-data-resultset.md)> | Promise used to return the result. If the operation is successful, a **ResultSet** object will be returned.|
+| Promise<[ResultSet](js-apis-data-resultset.md)> | Promise used to return the result. If the operation is successful, a **ResultSet** object will be returned.|
**Example**
```js
@@ -1473,7 +1639,7 @@ promise.then((resultSet) => {
executeSql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<void>):void
-Runs the SQL statement that contains the specified parameters but does not return a value. This API uses an asynchronous callback to return the result.
+Executes an SQL statement that contains specified arguments but returns no value. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1481,8 +1647,8 @@ Runs the SQL statement that contains the specified parameters but does not retur
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| sql | string | Yes| SQL statement to run.|
-| bindArgs | Array<[ValueType](#valuetype)> | Yes| Values of the parameters in the SQL statement.|
-| callback | AsyncCallback<void> | Yes| Callback invoked to return the result.|
+| bindArgs | Array<[ValueType](#valuetype)> | Yes| Arguments in the SQL statement.|
+| callback | AsyncCallback<void> | Yes| Callback that returns no value.|
**Example**
```js
@@ -1501,7 +1667,7 @@ rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) {
executeSql(sql: string, bindArgs?: Array<ValueType>):Promise<void>
-Runs the SQL statement that contains the specified parameters but does not return a value. This API uses a promise to return the execution result.
+Executes an SQL statement that contains specified arguments but returns no value. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1509,12 +1675,12 @@ Runs the SQL statement that contains the specified parameters but does not retur
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| sql | string | Yes| SQL statement to run.|
-| bindArgs | Array<[ValueType](#valuetype)> | No| Values of the parameters in the SQL statement.|
+| bindArgs | Array<[ValueType](#valuetype)> | No| Arguments in the SQL statement.|
**Return value**
| Type| Description|
| -------- | -------- |
-| Promise<void> | Promise used to return the result.|
+| Promise<void> | Promise that returns no value.|
**Example**
```js
@@ -1544,13 +1710,7 @@ const valueBucket = {
"salary": 100.5,
"blobType": new Uint8Array([1, 2, 3]),
}
-rdbStore.insert("test", valueBucket, function (err, ret) {
- if (err) {
- console.info("Failed to insert data, err: " + err)
- return
- }
- console.log("Inserted data successfully: " + ret)
-})
+await rdbStore.insert("test", valueBucket)
rdbStore.commit()
```
@@ -1573,13 +1733,7 @@ const valueBucket = {
"blobType": new Uint8Array([1, 2, 3]),
}
-rdbStore.insert("test", valueBucket, function (err, ret) {
- if (err) {
- console.info("Failed to insert data, err: " + err)
- return
- }
- console.log("Inserted data successfully: " + ret)
-})
+await rdbStore.insert("test", valueBucket)
rdbStore.commit()
```
@@ -1603,13 +1757,7 @@ try {
"salary": 100.5,
"blobType": new Uint8Array([1, 2, 3]),
}
- rdbStore.insert("test", valueBucket, function (err, ret) {
- if (err) {
- console.info("Failed to insert data, err: " + err)
- return
- }
- console.log("Inserted data successfully: " + ret)
- })
+ await rdbStore.insert("test", valueBucket)
rdbStore.commit()
} catch (e) {
rdbStore.rollBack()
@@ -1673,7 +1821,7 @@ promiseBackup.then(()=>{
restore(srcName:string, callback: AsyncCallback<void>):void
-Restores an RDB store using a backup file. This API uses an asynchronous callback to return the result.
+Restores an RDB store from a backup file. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1698,7 +1846,7 @@ rdbStore.restore("dbBackup.db", function(err) {
restore(srcName:string): Promise<void>
-Restores an RDB store using a backup file. This API uses a promise to return the result.
+Restores an RDB store from a backup file. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
@@ -1726,7 +1874,7 @@ promiseRestore.then(()=>{
setDistributedTables(tables: Array<string>, callback: AsyncCallback<void>): void
-Sets a list of distributed tables. This API uses an asynchronous callback to return the result.
+Sets distributed tables. This API uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
@@ -1747,14 +1895,14 @@ rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
}
console.info('Set distributed tables successfully.')
})
- ```
+```
### setDistributedTables8+
setDistributedTables(tables: Array<string>): Promise<void>
-Sets a list of distributed tables. This API uses a promise to return the result.
+Sets distributed tables. This API uses a promise to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
@@ -1784,7 +1932,7 @@ promise.then(() => {
obtainDistributedTableName(device: string, table: string, callback: AsyncCallback<string>): void
-Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the database of a remote device is queried. This API uses an asynchronous callback to return the result.
+Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the RDB store of a remote device is queried. This API uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
@@ -1813,7 +1961,7 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err,
obtainDistributedTableName(device: string, table: string): Promise<string>
-Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the database of a remote device is queried. This API uses a promise to return the result.
+Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the RDB store of a remote device is queried. This API uses a promise to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
@@ -1947,7 +2095,7 @@ try {
off(event:'dataChange', type: SubscribeType, observer: Callback<Array<string>>): void
-Deletes the specified observer of the RDB store. This API uses a callback to return the result.
+Unregisters the observer of the specified type from the RDB store. This API uses a callback to return the result.
**Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC
diff --git a/en/device-dev/subsystems/subsys-data-relational-database-guide.md b/en/device-dev/subsystems/subsys-data-relational-database-guide.md
index ae7ce7bb1d92c9868e5f7ad1003ff4dbec2c0bf5..72024cc2fcf198afe4edbac053b10c49dccf6f9e 100644
--- a/en/device-dev/subsystems/subsys-data-relational-database-guide.md
+++ b/en/device-dev/subsystems/subsys-data-relational-database-guide.md
@@ -71,7 +71,7 @@ You can use the APIs provided by the RDB to insert, delete, update, and query lo
**Table 5** API for deleting data
| Class| API| Description|
| ---- | ---- | ---- |
- | RdbStore | int Delete(int &deletedRows, const AbsRdbPredicates &predicates) | Deletes data.
- **deletedRows**: number of rows to delete.
- **predicates**: table name and conditions for deleting the data. **AbsRdbPredicates** has the following classes:
- **RdbPredicates**: specifies conditions by calling its methods, such as **equalTo**.
- **RawRdbPredicates**: specifies the table name, **whereClause**, and **whereArgs** only. |
+ | RdbStore | int Delete(int &deletedRows, const AbsRdbPredicates &predicates) | Deletes data.
- **deletedRows**: number of rows to delete.
- **predicates**: table name and conditions for deleting the data. **AbsRdbPredicates** has the following classes:
- **RdbPredicates**: specifies query conditions by calling its methods, such as **equalTo**.
- **RawRdbPredicates**: specifies the table name, **whereClause**, and **whereArgs** only. |
- Updating data
@@ -123,7 +123,7 @@ Call **bool SetDistributedTables()** to set distributed tables for data operatio
**Table 9** API for setting distributed tables
| Class| API| Description|
| ---- | ---- | ---- |
-| RdbStore | bool SetDistributedTables(const std::vector& tables) | Sets distributed tables.
- **tables**: names of the distributed tables to set.
+| RdbStore | bool SetDistributedTables(const std::vector& tables) | Sets distributed tables.
**tables**: names of the distributed tables to set. |
### Obtaining the Distributed Table Name for a Remote Device
@@ -132,28 +132,28 @@ You can obtain the distributed table name for a remote device based on the local
**Table 10** API for obtaining the distributed table name of a remote device
| Class| API| Description|
| ---- | ---- | ---- |
-| RdbStore | std::string ObtainDistributedTableName(const std::string& device, const std::string& table) | Obtains the distributed table name of a remote device based on the local table name. The distributed table name can be used to query the RDB store of the remote device.
- **device**: ID of the remote device.
- **table**: name of the local table.
+| RdbStore | std::string ObtainDistributedTableName(const std::string& device, const std::string& table) | Obtains the distributed table name of a remote device based on the local table name. The distributed table name can be used to query the RDB store of the remote device.
- **device**: ID of the remote device.
- **table**: name of the local table.|
### Synchronizing Data Between Devices
**Table 11** API for synchronizing data between devices
| Class| API| Description|
| ---- | ---- | ---- |
-| RdbStore | bool Sync(const SyncOption& option, const AbsRdbPredicates& predicate, const SyncCallback& callback) | Synchronizes data between devices.
- **option**: synchronization options, which include **mode** and **isBlock**. **mode** specifies how data is synchronized. The value **push** means to push data from the local device to the remote device; the value **pull** means to pull data from the remote device to the local device. **isBlock** specifies whether the invocation of this function is blocked.
- **callback**: callback used to return the result.
+| RdbStore | bool Sync(const SyncOption& option, const AbsRdbPredicates& predicate, const SyncCallback& callback) | Synchronizes data between devices.
- **option**: synchronization options, which include **mode** and **isBlock**. **mode** specifies how data is synchronized. The value **push** means to push data from the local device to the remote device; the value **pull** means to pull data from the remote device to the local device. **isBlock** specifies whether the invocation of this function is blocked.
- **callback**: callback used to return the result. |
### Registering an RDB Store Observer
**Table 12** API for registering an observer
| Class| API| Description|
| ---- | ---- | ---- |
-| RdbStore | bool Subscribe(const SubscribeOption& option, RdbStoreObserver *observer) | Registers an observer for this RDB store to listen for distributed data changes. When data in the RDB store changes, a callback will be invoked to return the data changes.
- **option**: subscription type.
- **observer**: observer that listens for data changes in the RDB store.
+| RdbStore | bool Subscribe(const SubscribeOption& option, RdbStoreObserver *observer) | Registers an observer for this RDB store to listen for distributed data changes. When data in the RDB store changes, a callback will be invoked to return the data changes.
- **option**: subscription type.
- **observer**: observer that listens for data changes in the RDB store. |
### Unregistering an RDB Store Observer
**Table 13** API for unregistering an observer
| Class| API| Description|
| ---- | ---- | ---- |
-| RdbStore | bool UnSubscribe(const SubscribeOption& option, RdbStoreObserver *observer) | Unregisters the observer of the specified type.
- **option**: subscription type to unregister.
- **observer**: observer to unregister.
+| RdbStore | bool UnSubscribe(const SubscribeOption& option, RdbStoreObserver *observer) | Unregisters the observer of the specified type.
- **option**: subscription type to unregister.
- **observer**: observer to unregister. |
### Backing Up and Restoring an RDB Store
@@ -167,7 +167,9 @@ You can use the APIs provided by **rdbStore** to back up and restore local datab
| Class| API| Description|
| ---- | ---- | ---- |
- | RdbStore | int Backup(const std::string databasePath, const std::vector<uint8_t> destEncryptKey) | Backs up the current database file.
- **databasePath**: name or path of the backup file to generate.
- **destEncryptKey**: key used to encrypt the RDB store. Currently, only non-encrypted RDB stores can be backed up. |
+ | RdbStore | int Backup(const std::string databasePath, const std::vector<uint8_t> destEncryptKey) | Backs up the current database file.
- **databasePath**: name or path of the backup file to generate.
- **destEncryptKey**: key used to encrypt the RDB store. Currently, only non-encrypted RDB stores can be backed up. |
+
+
- Restoring an RDB store
@@ -179,6 +181,18 @@ You can use the APIs provided by **rdbStore** to back up and restore local datab
| ---- | ---- | ---- |
| RdbStore | int Restore(const std::string backupPath, const std::vector<uint8_t> &newKey) | Restore an RDB store.
- **backupPath**: name or path of the backup file.
- **newKey**: key used to encrypt the RDB store. Currently, only non-encrypted RDB stores can be restored. |
+### Transaction
+
+ A transaction is a unit of work performed in a database. If a transaction is successful, **0** is returned. Otherwise, an error code is returned.
+
+ Table 16 Transaction APIs
+
+| Class| API| Description|
+| ---- | ---- | ---- |
+| RdbStore | int BeginTransaction() | Starts a transaction.|
+| RdbStore | int Commit() | Commits the changes.|
+| RdbStore | int RollBack() | Rolls back the changes.|
+
## Constraints
None.
@@ -257,7 +271,7 @@ None.
4. Set the distributed tables to be synchronized.
- a. Call the **SetDistributedTables()** method to set the distributed tables to be synchronized.
+ Call the **SetDistributedTables()** method to set the distributed tables to be synchronized.
The sample code is as follows: