提交 df7a63a5 编写于 作者: L li_juntao

【rdb】添加远程查询相关资料

Signed-off-by: Nli_juntao <lijuntao9@huawei.com>
上级 47389903
......@@ -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 &#124; dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;): void; |根据指定条件查询指定远程设备数据库中的数据,结果以callback形式返回。<br/>-&nbsp;device:指定远程查询的设备。<br/>-&nbsp;table:指定远程查询的表名。<br/>-&nbsp;predicates:表示RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。<br/>-&nbsp;columns:表示要查询的列。如果值为空,则查询应用于所有列。<br/>-&nbsp;callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
| RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates &#124; dataSharePredicates.DataSharePredicates, columns?: Array&lt;string&gt;): Promise&lt;ResultSet&gt;; | 根据指定条件查询指定远程设备数据库中的数据,结果以Promise形式返回。<br/>-&nbsp;device:指定远程查询的设备。<br/>-&nbsp;table:指定远程查询的表名。<br/>-&nbsp;predicates:表示RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。<br/>-&nbsp;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) 调用数据库的备份接口,备份当前数据库文件。
......
......@@ -1362,6 +1362,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()
......@@ -1410,6 +1411,68 @@ promise.then((resultSet) => {
})
```
### remoteQuery<sup>9+</sup>
remoteQuery(device: string, table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt; , callback: AsyncCallback&lt;ResultSet&gt;): void;
根据指定条件查询远程设备数据库中的数据,结果以callback形式返回。
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 指定的远程设备名。 |
| table | string | 是 | 指定的目标表名。 |
| predicates | [RdbPredicates](js-apis-data-rdb.md#RdbPredicates) &#124; [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。 |
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定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)
})
```
### remoteQuery<sup>9+</sup>
remoteQuery(device: string, table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array&lt;string&gt;): Promise&lt;ResultSet&gt;;
根据指定条件查询远程设备数据库中的数据,结果以Promise形式返回。
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 指定的远程设备名。 |
| table | string | 是 | 指定的目标表名。 |
| predicates | [RdbPredicates](js-apis-data-rdb.md#RdbPredicates) &#124; [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | RdbPredicates或DataSharePredicates的实例对象,指定查询的条件。 |
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
**示例:**
```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)
})
```
### querySql<sup>8+</sup>
querySql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
......@@ -1747,7 +1810,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.
先完成此消息的编辑!
想要评论请 注册