diff --git a/zh-cn/application-dev/database/database-relational-guidelines.md b/zh-cn/application-dev/database/database-relational-guidelines.md index 785a513f5bc434892d88b3f75b5f5c2491f07b6b..76dbaefc06af41bd7151035949580c8ce9e77f01 100644 --- a/zh-cn/application-dev/database/database-relational-guidelines.md +++ b/zh-cn/application-dev/database/database-relational-guidelines.md @@ -74,6 +74,8 @@ | RdbStore | query(predicates: RdbPredicates, columns?: Array<string>): Promise<ResultSet> | 根据指定条件查询数据库中的数据,结果以Promise形式返回。
- predicates:表示RdbPredicates的实例对象指定的查询条件。
- columns:表示要查询的列。如果值为空,则查询应用于所有列。 | | RdbStore | querySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<ResultSet>):void | 根据指定SQL语句查询数据库中的数据,结果以callback形式返回。
- sql:指定要查询的SQL语句。
- bindArgs:SQL语句中参数的值。
- callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 | | RdbStore | querySql(sql: string, bindArgs?: Array<ValueType>):Promise<ResultSet> | 根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。
- sql:指定要查询的SQL语句。
- bindArgs:SQL语句中参数的值。 | + | RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates | dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>): void; |根据指定条件查询指定远程设备数据库中的数据,结果以callback形式返回。
- device:指定远程查询的设备。
- table:指定远程查询的表名。
- predicates:表示RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。
- columns:表示要查询的列。如果值为空,则查询应用于所有列。
- callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 | + | RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates | dataSharePredicates.DataSharePredicates, columns?: Array<string>): Promise<ResultSet>; | 根据指定条件查询指定远程设备数据库中的数据,结果以Promise形式返回。
- device:指定远程查询的设备。
- table:指定远程查询的表名。
- predicates:表示RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。
- columns:表示要查询的列。如果值为空,则查询应用于所有列。 | ### 数据库谓词的使用 @@ -280,7 +282,7 @@ const blobType = resultSet.getBlob(resultSet.getColumnIndex("blobType")) resultSet.close() }) - ``` + ``` 4. 设置分布式同步表。 @@ -371,8 +373,35 @@ let tableName = rdbStore.obtainDistributedTableName(deviceId, "test"); let resultSet = rdbStore.querySql("SELECT * FROM " + tableName) ``` - -8. 数据库的备份和恢复。 + +8. 远程查询。 + + + (1) 构造用于查询分布式表的谓词对象,指定组网内的远程分布式表名和设备。 + + (2) 调用结果集接口,返回查询结果。 + + 示例代码如下: + + ```js + let rdbPredicate = new data_rdb.RdbPredicates('employee') + predicates.greaterThan("id", 1) + 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); + this.showLog(idx + " " + name + " " + age); + resultSet.goToNextRow(); + } + resultSet.close(); + }).catch((err) => { + console.log("Query failed, err: " + err) + }) + ``` + +9. 数据库的备份和恢复。 (1) 调用数据库的备份接口,备份当前数据库文件。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md index 031eaf5924bb1c45a6fc3419943dd0471d8ceabd..be994007ec9bb720f22537008d40e65d976184c1 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md +++ b/zh-cn/application-dev/reference/apis/js-apis-data-rdb.md @@ -1362,6 +1362,7 @@ query(table: string, predicates: dataSharePredicates.DataSharePredicates, column | callback | AsyncCallback<[ResultSet](js-apis-data-resultset.md)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | **示例:** + ```js import dataSharePredicates from '@ohos.data.dataSharePredicates' let predicates = new dataSharePredicates.DataSharePredicates() @@ -1410,6 +1411,68 @@ promise.then((resultSet) => { }) ``` +### remoteQuery9+ + +remoteQuery(device: string, table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string> , callback: AsyncCallback<ResultSet>): void; + +根据指定条件查询远程设备数据库中的数据,结果以callback形式返回。 + +**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。 + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| device | string | 是 | 指定的远程设备名。 | +| table | string | 是 | 指定的目标表名。 | +| predicates | [RdbPredicates](js-apis-data-rdb.md#RdbPredicates) | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。 | +| columns | Array<string> | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 | +| callback | AsyncCallback<[ResultSet](js-apis-data-resultset.md)> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | + +**示例:** +```js +let predicates = new rdb.RdbPredicates('EPLOYEE') +predicates.greaterThan("id", 1) +let promise = rdbStore.remoteQuery("deviceId", "EMPLOYEE", predicates) +promise.then((resultSet) => { + console.log("ResultSet column names: " + resultSet.columnNames) + console.log("ResultSet column count: " + resultSet.columnCount) +}).catch((err) => { + console.info("remoteQuery failed, err: " + err) +}) +``` + +### remoteQuery9+ + +remoteQuery(device: string, table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array<string>): Promise<ResultSet>; + +根据指定条件查询远程设备数据库中的数据,结果以Promise形式返回。 + +**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| device | string | 是 | 指定的远程设备名。 | +| table | string | 是 | 指定的目标表名。 | +| predicates | [RdbPredicates](js-apis-data-rdb.md#RdbPredicates) | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。 | +| columns | Array<string> | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 | + +**示例:** + +```js +let predicates = new rdb.RdbPredicates('EPLOYEE') +predicates.greaterThan("id", 1) +rdbStore.remoteQuery("deviceId", "EPLOYEE", predicates, function(err, resultSet){ + if (err) { + console.info("Query failed, err: " + err) + return + } + console.log("ResultSet column names: " + resultSet.columnNames) + console.log("ResultSet column count: " + resultSet.columnCount) +}) +``` + ### querySql8+ querySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<ResultSet>):void @@ -1747,7 +1810,7 @@ rdbStore.setDistributedTables(["EMPLOYEE"], function (err) { } console.info('SetDistributedTables successfully.') }) - ``` +``` ### setDistributedTables8+