未验证 提交 41e5008e 编写于 作者: O openharmony_ci 提交者: Gitee

!7386 【分布式数据管理子系统】【RDB】添加远程查询相关资料

Merge pull request !7386 from lijuntao/master
......@@ -74,6 +74,8 @@
| RdbStore | query(predicates:&nbsp;RdbPredicates,&nbsp;columns?:&nbsp;Array&lt;string&gt;):&nbsp;Promise&lt;ResultSet&gt; | 根据指定条件查询数据库中的数据,结果以Promise形式返回。<br/>-&nbsp;predicates:表示RdbPredicates的实例对象指定的查询条件。<br/>-&nbsp;columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
| RdbStore | querySql(sql:&nbsp;string,&nbsp;bindArgs:&nbsp;Array&lt;ValueType&gt;,&nbsp;callback:&nbsp;AsyncCallback&lt;ResultSet&gt;):void | 根据指定SQL语句查询数据库中的数据,结果以callback形式返回。<br/>-&nbsp;sql:指定要查询的SQL语句。<br/>-&nbsp;bindArgs:SQL语句中参数的值。<br/>-&nbsp;callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
| RdbStore | querySql(sql:&nbsp;string,&nbsp;bindArgs?:&nbsp;Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt; | 根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。<br/>-&nbsp;sql:指定要查询的SQL语句。<br/>-&nbsp;bindArgs:SQL语句中参数的值。 |
| RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;): void |根据指定条件查询指定远程设备数据库中的数据。使用callback异步回调。<br/>-&nbsp;device:指定远程查询的设备networkId。<br/>-&nbsp;table:指定远程查询的表名。<br/>-&nbsp;predicates:表示RdbPredicates的实例对象,指定查询的条件。<br/>-&nbsp;columns:表示要查询的列。如果值为空,则查询应用于所有列。<br/>-&nbsp;callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
| RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array&lt;string&gt;): Promise&lt;ResultSet&gt; | 根据指定条件查询指定远程设备数据库中的数据。使用Promise异步回调。<br/>-&nbsp;device:指定远程查询的设备networkId。<br/>-&nbsp;table:指定远程查询的表名。<br/>-&nbsp;predicates:表示RdbPredicates的实例对象,指定查询的条件。<br/>-&nbsp;columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
### 数据库谓词的使用
......@@ -280,7 +282,7 @@
const blobType = resultSet.getBlob(resultSet.getColumnIndex("blobType"))
resultSet.close()
})
```
```
4. 设置分布式同步表。
......@@ -371,8 +373,34 @@
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", 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. 数据库的备份和恢复。
(1) 调用数据库的备份接口,备份当前数据库文件。
......
......@@ -1456,6 +1456,7 @@ query(table: string, predicates: dataSharePredicates.DataSharePredicates, column
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
**示例:**
```js
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
......@@ -1486,6 +1487,7 @@ query(table: string, predicates: dataSharePredicates.DataSharePredicates, column
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
......@@ -1504,6 +1506,76 @@ promise.then((resultSet) => {
})
```
### remoteQuery<sup>9+</sup>
remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array&lt;string&gt; , callback: AsyncCallback&lt;ResultSet&gt;): void
根据指定条件查询远程设备数据库中的数据。使用callback异步回调。
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 指定的远程设备的networkId。 |
| table | string | 是 | 指定的目标表名。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象,指定查询的条件。 |
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md#resultset)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
**示例:**
```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)
})
```
### remoteQuery<sup>9+</sup>
remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array&lt;string&gt;): Promise&lt;ResultSet&gt;
根据指定条件查询远程设备数据库中的数据。使用Promise异步回调。
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 指定的远程设备的networkId。 |
| table | string | 是 | 指定的目标表名。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象,指定查询的条件。 |
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
**返回值**
| 类型 | 说明 |
| ------------------------------------------------------------ | -------------------------------------------------------- |
| Promise&lt;[ResultSet](js-apis-data-resultset.md#resultset)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
**示例:**
```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)
})
```
### querySql<sup>8+</sup>
querySql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
......@@ -1823,7 +1895,7 @@ rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
}
console.info('SetDistributedTables successfully.')
})
```
```
### setDistributedTables<sup>8+</sup>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册