Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
06709eb6
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
06709eb6
编写于
3月 22, 2023
作者:
L
lihuihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
device
Signed-off-by:
N
lihuihui
<
lihuihui29@huawei.com
>
上级
6db30d79
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
142 addition
and
40 deletion
+142
-40
zh-cn/application-dev/database/database-relational-guidelines.md
...pplication-dev/database/database-relational-guidelines.md
+11
-12
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
...cation-dev/reference/apis/js-apis-data-relationalStore.md
+131
-28
未找到文件。
zh-cn/application-dev/database/database-relational-guidelines.md
浏览文件 @
06709eb6
...
...
@@ -63,10 +63,9 @@
-
直接调用查询接口。使用该接口,会将包含查询条件的谓词自动拼接成完整的SQL语句进行查询操作,无需用户传入原生的SQL语句。
-
执行原生的SQL语句进行查询操作。
-
其中device通过调用
[
deviceManager.getTrustedDeviceListSync
](
js-apis-device-manager.md#gettrusteddevicelistsync
)
方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**表5**
数据库查询API
| 类名 | 接口名 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | query(predicates: RdbPredicates, columns?: Array
<
string
>
): Promise
<
ResultSet
>
| 根据指定条件查询数据库中的数据,使用Promise异步回调。
<br/>
-predicates:表示RdbPredicates的实例对象指定的查询条件。
<br/>
-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
...
...
@@ -127,15 +126,15 @@
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | setDistributedTables(tables: Array
\<
string>): Promise
\<
void> | 设置分布式列表,使用Promise异步回调。
<br/>
-tables:要设置的分布式列表表名。 |
**根据
远程设备的
本地表名获取指定远程设备的分布式表名**
**根据本地表名获取指定远程设备的分布式表名**
用户根据
远程设备的
本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名。
用户根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名。
**表9**
根据
远程设备的
本地表名获取指定远程设备的分布式表名
**表9**
根据本地表名获取指定远程设备的分布式表名
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | obtainDistributedTableName(device: string, table: string): Promise
\<
string> | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
<br/>
-device:远程设备。
通过调用
[
deviceManager.getTrustedDeviceListSync
](
js-apis-device-manager.md#gettrusteddevicelistsync
)
方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
<br/>
-table:远程设备的
本地表名。 |
| 类名
| 接口名 | 描述 |
| --------
--
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | obtainDistributedTableName(device: string, table: string): Promise
\<
string> | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
<br/>
-device:远程设备。
<br/>
-table:
本地表名。 |
**在设备之间同步数据**
...
...
@@ -424,7 +423,7 @@
```
js
import deviceManager from '@ohos.distributedHardware.deviceManager'
let deviceIds = [];
deviceManager.createDeviceManager('bundleName', (err, value) => {
if (!err) {
...
...
@@ -441,8 +440,8 @@
let tableName = store.obtainDistributedTableName(deviceIds[0], "test");
let resultSet = store.querySql("SELECT
*
FROM " + tableName);
```
```
8. 远程查询。
(1) 构造用于查询分布式表的谓词对象,指定组网内的远程分布式表名和设备。
...
...
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
浏览文件 @
06709eb6
...
...
@@ -414,9 +414,12 @@ let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
inDevices(devices: Array
<
string
>
): RdbPredicates
同步分布式数据库时连接到组网内指定的远程设备。
> **说明:**
>
> 其中devices通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
...
...
@@ -434,8 +437,24 @@ inDevices(devices: Array<string>): RdbPredicates
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
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
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
"
EMPLOYEE
"
);
predicates
.
inDevices
(
[
'
12345678abcde
'
]
);
predicates
.
inDevices
(
deviceIds
);
```
### inAllDevices
...
...
@@ -2008,28 +2027,41 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A
根据指定条件查询远程设备数据库中的数据。使用callback异步回调。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型
| 必填 | 说明
|
| ---------- | --------------------------------------------
---------------- | ---- | --
--------------------------------------------------------- |
| device | string
| 是 | 指定的远程设备的networkId。
|
| table | string
| 是 | 指定的目标表名。
|
| predicates |
[
RdbPredicates
](
#rdbpredicates
)
| 是 | RdbPredicates的实例对象,指定查询的条件。 |
| columns | Array
<
string
>
| 是 | 表示要查询的列。如果值为空,则查询应用于所有列。
|
| 参数名 | 类型
| 必填 | 说明
|
| ---------- | --------------------------------------------
| ---- |
--------------------------------------------------------- |
| device | string
| 是 | 指定的远程设备ID。
|
| table | string
| 是 | 指定的目标表名。
|
| predicates |
[
RdbPredicates
](
#rdbpredicates
)
| 是 | RdbPredicates的实例对象,指定查询的条件。 |
| columns | Array
<
string
>
| 是 | 表示要查询的列。如果值为空,则查询应用于所有列。
|
| callback | AsyncCallback
<
[ResultSet](#resultset)
>
| 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
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
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
greaterThan
(
"
id
"
,
0
);
store
.
remoteQuery
(
"
deviceId
"
,
"
EMPLOYEE
"
,
predicates
,
[
"
ID
"
,
"
NAME
"
,
"
AGE
"
,
"
SALARY
"
,
"
CODES
"
],
store
.
remoteQuery
(
deviceId
,
"
EMPLOYEE
"
,
predicates
,
[
"
ID
"
,
"
NAME
"
,
"
AGE
"
,
"
SALARY
"
,
"
CODES
"
],
function
(
err
,
resultSet
)
{
if
(
err
)
{
console
.
error
(
`Failed to remoteQuery, err:
${
err
}
`
);
...
...
@@ -2047,17 +2079,17 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A
根据指定条件查询远程设备数据库中的数据。使用Promise异步回调。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------ | ---- | ------------------------------------------------ |
| device | string | 是 | 指定的远程设备
的networkId。
|
| device | string | 是 | 指定的远程设备
ID。
|
| table | string | 是 | 指定的目标表名。 |
| predicates |
[
RdbPredicates
](
#rdbpredicates
)
| 是 | RdbPredicates的实例对象,指定查询的条件。 |
| columns | Array
<
string
>
| 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
...
...
@@ -2071,6 +2103,19 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
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
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
greaterThan
(
"
id
"
,
0
);
let
promise
=
store
.
remoteQuery
(
"
deviceId
"
,
"
EMPLOYEE
"
,
predicates
,
[
"
ID
"
,
"
NAME
"
,
"
AGE
"
,
"
SALARY
"
,
"
CODES
"
]);
...
...
@@ -2498,26 +2543,39 @@ obtainDistributedTableName(device: string, table: string, callback: AsyncCallbac
根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| device | string | 是 | 远程设备
。
|
| device | string | 是 | 远程设备
ID 。
|
| table | string | 是 | 远程设备的本地表名。 |
| callback | AsyncCallback
<
string
>
| 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |
**示例:**
```
js
store
.
obtainDistributedTableName
(
"
12345678abcde
"
,
"
EMPLOYEE
"
,
function
(
err
,
tableName
)
{
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
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
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
store
.
obtainDistributedTableName
(
deviceId
,
"
EMPLOYEE
"
,
function
(
err
,
tableName
)
{
if
(
err
)
{
console
.
error
(
`ObtainDistributedTableName failed, err:
${
err
}
`
);
return
;
...
...
@@ -2532,19 +2590,19 @@ store.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tab
根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------- |
| device | string | 是 | 远程设备
。
|
| device | string | 是 | 远程设备
ID。
|
| table | string | 是 | 远程设备的本地表名。 |
**返回值**
:
...
...
@@ -2556,7 +2614,20 @@ store.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tab
**示例:**
```
js
let
promise
=
store
.
obtainDistributedTableName
(
"
12345678abcde
"
,
"
EMPLOYEE
"
);
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
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
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
let
promise
=
store
.
obtainDistributedTableName
(
deviceId
,
"
EMPLOYEE
"
);
promise
.
then
((
tableName
)
=>
{
console
.
info
(
`ObtainDistributedTableName successfully, tableName=
${
tableName
}
`
);
}).
catch
((
err
)
=>
{
...
...
@@ -2585,8 +2656,24 @@ sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
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
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
inDevices
(
[
'
12345678abcde
'
]
);
predicates
.
inDevices
(
deviceIds
);
store
.
sync
(
relationalStore
.
SyncMode
.
SYNC_MODE_PUSH
,
predicates
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
`Sync failed, err:
${
err
}
`
);
...
...
@@ -2625,8 +2712,24 @@ store.sync(relationalStore.SyncMode.SYNC_MODE_PUSH, predicates, function (err, r
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
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
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
inDevices
(
[
'
12345678abcde
'
]
);
predicates
.
inDevices
(
deviceIds
);
let
promise
=
store
.
sync
(
relationalStore
.
SyncMode
.
SYNC_MODE_PUSH
,
predicates
);
promise
.
then
((
result
)
=>
{
console
.
info
(
`Sync done.`
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录