js-apis-data-rdb.md 60.5 KB
Newer Older
Z
zengyawen 已提交
1
# 关系型数据库
Z
zengyawen 已提交
2

W
wuyongning 已提交
3 4
关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。

W
wuyongning 已提交
5
该模块提供以下关系型数据库相关的常用功能:
W
wuyongning 已提交
6

W
wuyongning 已提交
7 8
- [RdbPredicates](#rdbpredicates): 数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。
- [RdbStore](#rdbstore):提供管理关系数据库(RDB)方法的接口。
W
wuyongning 已提交
9

G
ge-yafang 已提交
10
> **说明:**
11
> 
Z
zengyawen 已提交
12
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
13

Z
zengyawen 已提交
14
## 导入模块
Z
zengyawen 已提交
15

G
ge-yafang 已提交
16
```js
G
ge-yafang 已提交
17
import data_rdb from '@ohos.data.rdb';
Z
zengyawen 已提交
18 19
```

P
PaDoBoo 已提交
20
## data_rdb.getRdbStore
Z
zengyawen 已提交
21

W
wuyongning 已提交
22 23 24 25
getRdbStore(context: Context, config: StoreConfig, version: number, callback: AsyncCallback<RdbStore>): void

获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以callback形式返回。

P
PaDaBoo 已提交
26
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
27

P
PaDaBoo 已提交
28
**参数:**
W
wuyongning 已提交
29 30 31

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
32
| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
W
wuyongning 已提交
33 34 35 36
| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
| version | number | 是 | 数据库版本。 |
| callback | AsyncCallback&lt;[RdbStore](#rdbstore)&gt; | 是 | 指定callback回调函数,返回一个RdbStore。 |

P
PaDaBoo 已提交
37
**示例:**
W
wuyongning 已提交
38 39 40 41

```js
const STORE_CONFIG = { name: "RdbTest.db"}
data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, function (err, rdbStore) {
P
PaDaBoo 已提交
42 43 44 45 46
    if (err) {
        console.info("Get RdbStore failed, err: " + err)
        return
    }
    console.log("Get RdbStore successfully.")
W
wuyongning 已提交
47 48 49
})
```

W
wuyongning 已提交
50
## data_rdb.getRdbStore
W
wuyongning 已提交
51 52 53 54 55

getRdbStore(context: Context, config: StoreConfig, version: number): Promise&lt;RdbStore&gt;

获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以Promise形式返回。

P
PaDaBoo 已提交
56
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
57

P
PaDaBoo 已提交
58
**参数:**
W
wuyongning 已提交
59 60 61

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
62
| context | Context | 是 |应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
W
wuyongning 已提交
63 64 65 66 67 68 69 70 71
| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
| version | number | 是 | 数据库版本。 |

**返回值**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[RdbStore](#rdbstore)&gt; | 指定Promise回调函数。返回一个RdbStore。 |

P
PaDaBoo 已提交
72
**示例:**
W
wuyongning 已提交
73 74 75

```js
const STORE_CONFIG = { name: "RdbTest.db" }
P
PaDaBoo 已提交
76 77 78
let promise = data_rdb.getRdbStore(this.context, STORE_CONFIG, 1);
promise.then(async (rdbStore) => {
    console.log("Get RdbStore successfully.")
W
wuyongning 已提交
79
}).catch((err) => {
P
PaDaBoo 已提交
80
    console.log("Get RdbStore failed, err: " + err)
W
wuyongning 已提交
81 82 83
})
```

P
PaDoBoo 已提交
84
## data_rdb.deleteRdbStore
Z
zengyawen 已提交
85

W
wuyongning 已提交
86
deleteRdbStore(context: Context, name: string, callback: AsyncCallback&lt;void&gt;): void
W
wuyongning 已提交
87

W
wuyongning 已提交
88
删除数据库,结果以callback形式返回。
W
wuyongning 已提交
89

P
PaDaBoo 已提交
90
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
91

P
PaDaBoo 已提交
92
**参数:**
W
wuyongning 已提交
93 94
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
95
| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
W
wuyongning 已提交
96
| name | string | 是 | 数据库名称。 |
W
wuyongning 已提交
97
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
W
wuyongning 已提交
98

P
PaDaBoo 已提交
99 100 101 102 103 104 105 106 107 108
**示例:**
```js
data_rdb.deleteRdbStore(this.context, "RdbTest.db", function (err, rdbStore) {
    if (err) {
        console.info("Delete RdbStore failed, err: " + err)
        return
    }
    console.log("Delete RdbStore successfully.")
})
```
W
wuyongning 已提交
109

W
wuyongning 已提交
110
## data_rdb.deleteRdbStore
W
wuyongning 已提交
111

W
wuyongning 已提交
112
deleteRdbStore(context: Context, name: string): Promise&lt;void&gt;
Z
zengyawen 已提交
113 114 115

使用指定的数据库文件配置删除数据库,结果以Promise形式返回。

P
PaDaBoo 已提交
116
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
117

Z
zengyawen 已提交
118
**参数**
Z
zengyawen 已提交
119 120
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
121
| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
Z
zengyawen 已提交
122
| name | string | 是 | 数据库名称。 |
Z
zengyawen 已提交
123

Z
zengyawen 已提交
124
**返回值**
Z
zengyawen 已提交
125 126
| 类型 | 说明 |
| -------- | -------- |
W
wuyongning 已提交
127
| Promise&lt;void&gt; | 指定Promise回调函数。 |
Z
zengyawen 已提交
128

P
PaDaBoo 已提交
129 130
**示例:**
```js
W
wuyongning 已提交
131
let promise = data_rdb.deleteRdbStore(this.context, "RdbTest.db")
P
PaDaBoo 已提交
132 133 134 135 136 137
promise.then(()=>{
    console.log("Delete RdbStore successfully.")
}).catch((err) => {
    console.info("Delete RdbStore failed, err: " + err)
})
```
Z
zengyawen 已提交
138

Z
zengyawen 已提交
139

Z
zengyawen 已提交
140
## RdbPredicates
Z
zengyawen 已提交
141 142 143 144

表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。


Z
zengyawen 已提交
145 146 147 148
### constructor

constructor(name: string)

Z
zengyawen 已提交
149 150 151

构造函数。

P
PaDaBoo 已提交
152
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
153

P
PaDaBoo 已提交
154
**参数:**
Z
zengyawen 已提交
155 156 157
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库表名。 |
Z
zengyawen 已提交
158

P
PaDaBoo 已提交
159 160 161 162
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
```
Z
zengyawen 已提交
163

Z
zengyawen 已提交
164
### inDevices<sup>8+</sup>
S
sun-dou 已提交
165

W
wuyongning 已提交
166
inDevices(devices: Array&lt;string&gt;): RdbPredicates
S
sun-dou 已提交
167 168 169 170


同步分布式数据库时指定组网内的远程设备。

P
PaDaBoo 已提交
171
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
172

P
PaDaBoo 已提交
173
**参数:**
Z
zengyawen 已提交
174 175 176
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| devices | Array&lt;string&gt; | 是 | 指定的组网内的远程设备ID。 |
S
sun-dou 已提交
177

Z
zengyawen 已提交
178
**返回值**
Z
zengyawen 已提交
179 180 181
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
S
sun-dou 已提交
182

P
PaDaBoo 已提交
183 184 185 186 187
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inDevices(['12345678abcde'])
```
S
sun-dou 已提交
188

W
wuyongning 已提交
189
### inAllDevices<sup>8+</sup>
S
sun-dou 已提交
190

W
wuyongning 已提交
191
inAllDevices(): RdbPredicates
S
sun-dou 已提交
192 193 194 195


同步分布式数据库时连接到组网内的所有远程设备。

P
PaDaBoo 已提交
196
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
197

Z
zengyawen 已提交
198
**返回值**
Z
zengyawen 已提交
199 200 201
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
S
sun-dou 已提交
202

P
PaDaBoo 已提交
203 204 205 206 207
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inAllDevices()
```
Z
zengyawen 已提交
208 209 210 211 212

### equalTo

equalTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
213 214 215

配置谓词以匹配数据字段为ValueType且值等于指定值的字段。

P
PaDaBoo 已提交
216
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
217

P
PaDaBoo 已提交
218
**参数:**
Z
zengyawen 已提交
219 220 221 222
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
223

Z
zengyawen 已提交
224
**返回值**
Z
zengyawen 已提交
225 226 227
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
228

P
PaDaBoo 已提交
229 230 231 232 233
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
```
Z
zengyawen 已提交
234 235 236 237 238 239


### notEqualTo

notEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
240 241 242

配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。

P
PaDaBoo 已提交
243
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
244

P
PaDaBoo 已提交
245
**参数:**
Z
zengyawen 已提交
246 247 248 249
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
250

Z
zengyawen 已提交
251
**返回值**
Z
zengyawen 已提交
252 253 254
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
255

P
PaDaBoo 已提交
256 257 258 259 260
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notEqualTo("NAME", "lisi")
```
Z
zengyawen 已提交
261 262 263 264 265 266


### beginWrap

beginWrap(): RdbPredicates

Z
zengyawen 已提交
267 268 269

向谓词添加左括号。

P
PaDaBoo 已提交
270
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
271

Z
zengyawen 已提交
272
**返回值**
Z
zengyawen 已提交
273 274 275
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有左括号的Rdb谓词。 |
Z
zengyawen 已提交
276

P
PaDaBoo 已提交
277 278 279 280 281 282 283 284 285 286
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()
```
Z
zengyawen 已提交
287 288


Z
zengyawen 已提交
289
### endWrap
Z
zengyawen 已提交
290

Z
zengyawen 已提交
291
endWrap(): RdbPredicates
Z
zengyawen 已提交
292 293 294 295


向谓词添加右括号。

P
PaDaBoo 已提交
296
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
297

Z
zengyawen 已提交
298
**返回值**
Z
zengyawen 已提交
299 300 301
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有右括号的Rdb谓词。 |
Z
zengyawen 已提交
302

P
PaDaBoo 已提交
303 304 305 306 307 308 309 310 311 312
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()
```
Z
zengyawen 已提交
313 314


Z
zengyawen 已提交
315
### or
Z
zengyawen 已提交
316

Z
zengyawen 已提交
317
or(): RdbPredicates
Z
zengyawen 已提交
318 319 320 321


将或条件添加到谓词中。

P
PaDaBoo 已提交
322
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
323

Z
zengyawen 已提交
324
**返回值**
Z
zengyawen 已提交
325 326 327
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有或条件的Rdb谓词。 |
Z
zengyawen 已提交
328

P
PaDaBoo 已提交
329 330 331 332 333 334 335
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
    .or()
    .equalTo("NAME", "Rose")
```
Z
zengyawen 已提交
336 337


Z
zengyawen 已提交
338
### and
Z
zengyawen 已提交
339

Z
zengyawen 已提交
340
and(): RdbPredicates
Z
zengyawen 已提交
341 342 343 344


向谓词添加和条件。

P
PaDaBoo 已提交
345
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
346

Z
zengyawen 已提交
347
**返回值**
Z
zengyawen 已提交
348 349 350
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有和条件的Rdb谓词。 |
Z
zengyawen 已提交
351

P
PaDaBoo 已提交
352 353 354 355 356 357 358
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
    .and()
    .equalTo("SALARY", 200.5)
```
Z
zengyawen 已提交
359 360


Z
zengyawen 已提交
361
### contains
Z
zengyawen 已提交
362

W
wuyongning 已提交
363
contains(field: string, value: string): RdbPredicates
Z
zengyawen 已提交
364

G
ge-yafang 已提交
365
配置谓词以匹配数据字段为string且value包含指定值的字段。
Z
zengyawen 已提交
366

P
PaDaBoo 已提交
367
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
368

P
PaDaBoo 已提交
369
**参数:**
Z
zengyawen 已提交
370 371 372 373
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
374

Z
zengyawen 已提交
375
**返回值**
Z
zengyawen 已提交
376 377 378
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
379

P
PaDaBoo 已提交
380 381 382 383 384
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.contains("NAME", "os")
```
Z
zengyawen 已提交
385 386 387 388 389 390


### beginsWith

beginsWith(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
391

G
ge-yafang 已提交
392
配置谓词以匹配数据字段为string且值以指定字符串开头的字段。
Z
zengyawen 已提交
393

P
PaDaBoo 已提交
394
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
395

P
PaDaBoo 已提交
396
**参数:**
Z
zengyawen 已提交
397 398 399 400
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
401

Z
zengyawen 已提交
402
**返回值**
Z
zengyawen 已提交
403 404 405
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
406

P
PaDaBoo 已提交
407 408 409 410 411
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.beginsWith("NAME", "os")
```
Z
zengyawen 已提交
412 413 414 415 416 417


### endsWith

endsWith(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
418

G
ge-yafang 已提交
419
配置谓词以匹配数据字段为string且值以指定字符串结尾的字段。
Z
zengyawen 已提交
420

P
PaDaBoo 已提交
421
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
422

P
PaDaBoo 已提交
423
**参数:**
Z
zengyawen 已提交
424 425 426 427
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
428

Z
zengyawen 已提交
429
**返回值**
Z
zengyawen 已提交
430 431 432
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
433

P
PaDaBoo 已提交
434 435 436 437 438
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.endsWith("NAME", "se")
```
Z
zengyawen 已提交
439 440 441 442 443 444


### isNull

isNull(field: string): RdbPredicates

Z
zengyawen 已提交
445 446 447

配置谓词以匹配值为null的字段。

P
PaDaBoo 已提交
448
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
449

P
PaDaBoo 已提交
450
**参数:**
Z
zengyawen 已提交
451 452 453
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
454

Z
zengyawen 已提交
455
**返回值**
Z
zengyawen 已提交
456 457 458
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
459 460

- 示例
P
PaDaBoo 已提交
461 462 463 464
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNull("NAME")
```
Z
zengyawen 已提交
465 466 467 468 469 470


### isNotNull

isNotNull(field: string): RdbPredicates

Z
zengyawen 已提交
471 472 473

配置谓词以匹配值不为null的指定字段。

P
PaDaBoo 已提交
474
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
475

P
PaDaBoo 已提交
476
**参数:**
Z
zengyawen 已提交
477 478 479
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
480

Z
zengyawen 已提交
481
**返回值**
Z
zengyawen 已提交
482 483 484
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
485

P
PaDaBoo 已提交
486 487 488 489 490
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNotNull("NAME")
```
Z
zengyawen 已提交
491 492 493 494 495 496


### like

like(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
497

G
ge-yafang 已提交
498
配置谓词以匹配数据字段为string且值类似于指定字符串的字段。
Z
zengyawen 已提交
499

P
PaDaBoo 已提交
500
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
501

P
PaDaBoo 已提交
502
**参数:**
Z
zengyawen 已提交
503 504 505 506
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
507

Z
zengyawen 已提交
508
**返回值**
Z
zengyawen 已提交
509 510 511
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
512

P
PaDaBoo 已提交
513 514 515 516 517
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.like("NAME", "%os%")
```
Z
zengyawen 已提交
518 519 520 521 522 523


### glob

glob(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
524

G
ge-yafang 已提交
525
配置RdbPredicates匹配数据字段为string的指定字段。
Z
zengyawen 已提交
526

P
PaDaBoo 已提交
527
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
528

P
PaDaBoo 已提交
529
**参数:**
Z
zengyawen 已提交
530 531 532 533
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。<br>支持通配符,*表示0个、1个或多个数字或字符,?表示1个数字或字符。 |
Z
zengyawen 已提交
534

Z
zengyawen 已提交
535
**返回值**
Z
zengyawen 已提交
536 537 538
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
539

P
PaDaBoo 已提交
540 541 542 543 544
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.glob("NAME", "?h*g")
```
Z
zengyawen 已提交
545 546 547 548 549 550


### between

between(field: string, low: ValueType, high: ValueType): RdbPredicates

Z
zengyawen 已提交
551 552 553

将谓词配置为匹配数据字段为ValueType且value在给定范围内的指定字段。

P
PaDaBoo 已提交
554
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
555

P
PaDaBoo 已提交
556
**参数:**
Z
zengyawen 已提交
557 558 559 560 561
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |
Z
zengyawen 已提交
562

Z
zengyawen 已提交
563
**返回值**
Z
zengyawen 已提交
564 565 566
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
567

P
PaDaBoo 已提交
568 569 570 571 572
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.between("AGE", 10, 50)
```
Z
zengyawen 已提交
573 574 575 576 577 578


### notBetween

notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates

Z
zengyawen 已提交
579 580 581

配置RdbPredicates以匹配数据字段为ValueType且value超出给定范围的指定字段。

P
PaDaBoo 已提交
582
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
583

P
PaDaBoo 已提交
584
**参数:**
Z
zengyawen 已提交
585 586 587 588 589
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |
Z
zengyawen 已提交
590

Z
zengyawen 已提交
591
**返回值**
Z
zengyawen 已提交
592 593 594
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
595

P
PaDaBoo 已提交
596 597 598 599 600
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notBetween("AGE", 10, 50)
```
Z
zengyawen 已提交
601 602 603 604


### greaterThan

W
wuyongning 已提交
605
greaterThan(field: string, value: ValueType): RdbPredicates
Z
zengyawen 已提交
606 607 608

配置谓词以匹配数据字段为ValueType且值大于指定值的字段。

P
PaDaBoo 已提交
609
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
610

P
PaDaBoo 已提交
611
**参数:**
Z
zengyawen 已提交
612 613 614 615
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
616

Z
zengyawen 已提交
617
**返回值**
Z
zengyawen 已提交
618 619 620
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
621

P
PaDaBoo 已提交
622 623 624 625 626
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThan("AGE", 18)
```
Z
zengyawen 已提交
627 628 629 630 631 632


### lessThan

lessThan(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
633 634 635

配置谓词以匹配数据字段为valueType且value小于指定值的字段。

P
PaDaBoo 已提交
636
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
637

P
PaDaBoo 已提交
638
**参数:**
Z
zengyawen 已提交
639 640 641 642
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
643

Z
zengyawen 已提交
644
**返回值**
Z
zengyawen 已提交
645 646 647
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
648

P
PaDaBoo 已提交
649 650 651 652 653
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThan("AGE", 20)
```
Z
zengyawen 已提交
654 655 656 657 658 659 660


### greaterThanOrEqualTo


greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
661 662 663

配置谓词以匹配数据字段为ValueType且value大于或等于指定值的字段。

P
PaDaBoo 已提交
664
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
665

P
PaDaBoo 已提交
666
**参数:**
Z
zengyawen 已提交
667 668 669 670
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
671

Z
zengyawen 已提交
672
**返回值**
Z
zengyawen 已提交
673 674 675
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
676

P
PaDaBoo 已提交
677 678 679 680 681
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThanOrEqualTo("AGE", 18)
```
Z
zengyawen 已提交
682 683 684 685 686 687 688


### lessThanOrEqualTo


lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
689 690 691

配置谓词以匹配数据字段为ValueType且value小于或等于指定值的字段。

P
PaDaBoo 已提交
692
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
693

P
PaDaBoo 已提交
694
**参数:**
Z
zengyawen 已提交
695 696 697 698
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
699

Z
zengyawen 已提交
700
**返回值**
Z
zengyawen 已提交
701 702 703
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
704

P
PaDaBoo 已提交
705 706 707 708 709
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThanOrEqualTo("AGE", 20)
```
Z
zengyawen 已提交
710 711 712 713 714 715 716


### orderByAsc


orderByAsc(field: string): RdbPredicates

Z
zengyawen 已提交
717 718 719

配置谓词以匹配其值按升序排序的列。

P
PaDaBoo 已提交
720
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
721

P
PaDaBoo 已提交
722
**参数:**
Z
zengyawen 已提交
723 724 725
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
726

Z
zengyawen 已提交
727
**返回值**
Z
zengyawen 已提交
728 729 730
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
731

P
PaDaBoo 已提交
732 733 734 735 736
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByAsc("NAME")
```
Z
zengyawen 已提交
737 738 739 740 741 742 743


### orderByDesc


orderByDesc(field: string): RdbPredicates

Z
zengyawen 已提交
744 745 746

配置谓词以匹配其值按降序排序的列。

P
PaDaBoo 已提交
747
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
748

P
PaDaBoo 已提交
749
**参数:**
Z
zengyawen 已提交
750 751 752
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
753

Z
zengyawen 已提交
754
**返回值**
Z
zengyawen 已提交
755 756 757
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
758

P
PaDaBoo 已提交
759 760 761 762 763
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByDesc("AGE")
```
Z
zengyawen 已提交
764 765 766 767 768 769


### distinct

distinct(): RdbPredicates

Z
zengyawen 已提交
770 771 772

配置谓词以过滤重复记录并仅保留其中一个。

P
PaDaBoo 已提交
773
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
774

Z
zengyawen 已提交
775
**返回值**
Z
zengyawen 已提交
776 777 778
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回可用于过滤重复记录的谓词。 |
Z
zengyawen 已提交
779

P
PaDaBoo 已提交
780 781 782 783 784
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").distinct("NAME")
```
Z
zengyawen 已提交
785 786


Z
zengyawen 已提交
787
### limitAs
Z
zengyawen 已提交
788

Z
zengyawen 已提交
789
limitAs(value: number): RdbPredicates
Z
zengyawen 已提交
790 791 792 793


设置最大数据记录数的谓词。

P
PaDaBoo 已提交
794
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
795

P
PaDaBoo 已提交
796
**参数:**
Z
zengyawen 已提交
797 798 799
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | number | 是 | 最大数据记录数。 |
Z
zengyawen 已提交
800

Z
zengyawen 已提交
801
**返回值**
Z
zengyawen 已提交
802 803 804
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回可用于设置最大数据记录数的谓词。 |
Z
zengyawen 已提交
805

P
PaDaBoo 已提交
806 807 808 809 810
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").limitAs(3)
```
Z
zengyawen 已提交
811 812 813 814 815 816


### offsetAs

offsetAs(rowOffset: number): RdbPredicates

Z
zengyawen 已提交
817 818 819

配置RdbPredicates以指定返回结果的起始位置。

P
PaDaBoo 已提交
820
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
821

P
PaDaBoo 已提交
822
**参数:**
Z
zengyawen 已提交
823 824 825
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。 |
Z
zengyawen 已提交
826

Z
zengyawen 已提交
827
**返回值**
Z
zengyawen 已提交
828 829 830
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回具有指定返回结果起始位置的谓词。 |
Z
zengyawen 已提交
831

P
PaDaBoo 已提交
832 833 834 835 836
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").offsetAs(3)
```
Z
zengyawen 已提交
837 838 839 840 841 842


### groupBy

groupBy(fields: Array&lt;string&gt;): RdbPredicates

Z
zengyawen 已提交
843 844 845

配置RdbPredicates按指定列分组查询结果。

P
PaDaBoo 已提交
846
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
847

P
PaDaBoo 已提交
848
**参数:**
Z
zengyawen 已提交
849 850 851
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| fields | Array&lt;string&gt; | 是 | 指定分组依赖的列名。 |
Z
zengyawen 已提交
852

Z
zengyawen 已提交
853
**返回值**
Z
zengyawen 已提交
854 855 856
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回分组查询列的谓词。 |
Z
zengyawen 已提交
857

P
PaDaBoo 已提交
858 859 860 861 862
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.groupBy(["AGE", "NAME"])
```
Z
zengyawen 已提交
863 864 865 866


### indexedBy

Z
zengyawen 已提交
867
indexedBy(field: string): RdbPredicates
Z
zengyawen 已提交
868 869 870

配置RdbPredicates以指定索引列。

P
PaDaBoo 已提交
871
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
872

P
PaDaBoo 已提交
873
**参数:**
Z
zengyawen 已提交
874 875 876
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 索引列的名称。 |
Z
zengyawen 已提交
877

Z
zengyawen 已提交
878
**返回值**
Z
zengyawen 已提交
879 880 881 882

| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回具有指定索引列的RdbPredicates。 |
Z
zengyawen 已提交
883

P
PaDaBoo 已提交
884 885 886 887 888
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.indexedBy("SALARY_INDEX")
```
Z
zengyawen 已提交
889 890 891 892 893 894


### in

in(field: string, value: Array&lt;ValueType&gt;): RdbPredicates

Z
zengyawen 已提交
895 896 897

配置RdbPredicates以匹配数据字段为ValueType数组且值在给定范围内的指定字段。

P
PaDaBoo 已提交
898
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
899

P
PaDaBoo 已提交
900
**参数:**
Z
zengyawen 已提交
901 902 903 904
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType型数组形式指定的要匹配的值。 |
Z
zengyawen 已提交
905 906


Z
zengyawen 已提交
907
**返回值**
Z
zengyawen 已提交
908 909 910
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
911

P
PaDaBoo 已提交
912 913 914 915 916
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.in("AGE", [18, 20])
```
Z
zengyawen 已提交
917 918 919 920 921 922


### notIn

notIn(field: string, value: Array&lt;ValueType&gt;): RdbPredicates

Z
zengyawen 已提交
923 924 925

将RdbPredicates配置为匹配数据字段为ValueType且值超出给定范围的指定字段。

P
PaDaBoo 已提交
926
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
927

P
PaDaBoo 已提交
928
**参数:**
Z
zengyawen 已提交
929 930 931 932
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType数组形式指定的要匹配的值。 |
Z
zengyawen 已提交
933 934


Z
zengyawen 已提交
935
**返回值**
Z
zengyawen 已提交
936 937 938
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
939

P
PaDaBoo 已提交
940 941 942 943 944
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notIn("NAME", ["Lisa", "Rose"])
```
Z
zengyawen 已提交
945 946 947 948 949 950 951 952 953


## RdbStore

提供管理关系数据库(RDB)方法的接口。


### insert

954
insert(table: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
955 956 957

向目标表中插入一行数据,结果以callback形式返回。

P
PaDaBoo 已提交
958
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
959

P
PaDaBoo 已提交
960
**参数:**
Z
zengyawen 已提交
961 962
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
963
| table | string | 是 | 指定的目标表名。 |
Z
zengyawen 已提交
964 965
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |
Z
zengyawen 已提交
966

P
PaDaBoo 已提交
967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982
**示例:**
```js
const valueBucket = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
    if (err) {
        console.info("Insert failed, err: " + err)
        return
    }
    console.log("Insert first done: " + ret)
})
```
Z
zengyawen 已提交
983 984 985 986


### insert

987
insert(table: string, values: ValuesBucket):Promise&lt;number&gt;
Z
zengyawen 已提交
988 989 990

向目标表中插入一行数据,结果以Promise形式返回。

P
PaDaBoo 已提交
991
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
992

P
PaDaBoo 已提交
993
**参数:**
Z
zengyawen 已提交
994 995
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
996
| table | string | 是 | 指定的目标表名。 |
Z
zengyawen 已提交
997
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
Z
zengyawen 已提交
998

Z
zengyawen 已提交
999
**返回值**
Z
zengyawen 已提交
1000 1001 1002
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。如果操作成功,返回行ID;否则返回-1。 |
Z
zengyawen 已提交
1003

P
PaDaBoo 已提交
1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018
**示例:**
```js
const valueBucket = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let promise = rdbStore.insert("EMPLOYEE", valueBucket)
promise.then(async (ret) => {
    console.log("Insert first done: " + ret)
}).catch((err) => {
    console.log("Insert failed, err: " + err)
})
```
Z
zengyawen 已提交
1019 1020 1021 1022


### update

1023
update(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1024 1025 1026

根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。

P
PaDaBoo 已提交
1027
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1028

P
PaDaBoo 已提交
1029
**参数:**
Z
zengyawen 已提交
1030 1031
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1032 1033
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 |
Z
zengyawen 已提交
1034
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |
Z
zengyawen 已提交
1035

P
PaDaBoo 已提交
1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053
**示例:**
```js
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.update(valueBucket, predicates, function (err, ret) {
    if (err) {
        console.info("Updated failed, err: " + err)
        return
    }
    console.log("Updated row count: " + ret)
})
```
Z
zengyawen 已提交
1054 1055 1056 1057


### update

1058
update(values: ValuesBucket, predicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1059 1060 1061

根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。

P
PaDaBoo 已提交
1062
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1063

P
PaDaBoo 已提交
1064
**参数:**
Z
zengyawen 已提交
1065 1066
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1067 1068
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 |
Z
zengyawen 已提交
1069

Z
zengyawen 已提交
1070
**返回值**
Z
zengyawen 已提交
1071 1072 1073
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定的Promise回调方法。返回受影响的行数。 |
Z
zengyawen 已提交
1074

P
PaDaBoo 已提交
1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091
**示例:**
```js
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.update(valueBucket, predicates)
promise.then(async (ret) => {
    console.log("Updated row count: " + ret)
}).catch((err) => {
    console.info("Updated failed, err: " + err)
})
```
Z
zengyawen 已提交
1092

1093
### update<sup>9+</sup>
L
ltdong 已提交
1094
update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
1095 1096 1097 1098 1099 1100 1101 1102 1103

根据DataSharePredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
W
wuyongning 已提交
1104
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
L
ltdong 已提交
1105
| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates)| 是 |  DataSharePredicates的实例对象指定的更新条件。 |
1106 1107 1108 1109
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1110
import dataSharePredicates from '@ohos.data.dataSharePredicates'
1111 1112 1113 1114 1115 1116
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
L
ltdong 已提交
1117
let predicates = new dataSharePredicates.DataSharePredicates()
1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128
predicates.equalTo("NAME", "Lisa")
rdbStore.update("EMPLOYEE", valueBucket, predicates, function (err, ret) {
    if (err) {
        console.info("Updated failed, err: " + err)
        return
    }
    console.log("Updated row count: " + ret)
})
```
### update<sup>9+</sup>

W
wuyongning 已提交
1129
update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates):Promise&lt;number&gt;
1130 1131 1132 1133 1134 1135 1136 1137 1138

根据DataSharePredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
W
wuyongning 已提交
1139
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
L
ltdong 已提交
1140
| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的更新条件。 |
1141 1142 1143 1144 1145 1146 1147 1148

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定的Promise回调方法。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1149
import dataSharePredicates from '@ohos.data.dataSharePredicates'
1150 1151 1152 1153 1154 1155
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
L
ltdong 已提交
1156
let predicates = new dataSharePredicates.DataSharePredicates()
1157 1158 1159 1160 1161 1162 1163 1164
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.update("EMPLOYEE", valueBucket, predicates)
promise.then(async (ret) => {
    console.log("Updated row count: " + ret)
}).catch((err) => {
    console.info("Updated failed, err: " + err)
})
```
Z
zengyawen 已提交
1165 1166 1167

### delete

1168
delete(predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1169

Z
zengyawen 已提交
1170

1171
根据RdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。
Z
zengyawen 已提交
1172

P
PaDaBoo 已提交
1173
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
1174

P
PaDaBoo 已提交
1175
**参数:**
Z
zengyawen 已提交
1176 1177
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1178
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
Z
zengyawen 已提交
1179
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |
Z
zengyawen 已提交
1180

P
PaDaBoo 已提交
1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.delete(predicates, function (err, rows) {
    if (err) {
        console.info("Delete failed, err: " + err)
        return
    }
    console.log("Delete rows: " + rows)
})
```
Z
zengyawen 已提交
1193 1194 1195 1196


### delete

1197
delete(predicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1198

1199
根据RdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。
Z
zengyawen 已提交
1200

P
PaDaBoo 已提交
1201
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1202

P
PaDaBoo 已提交
1203
**参数:**
Z
zengyawen 已提交
1204 1205
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1206
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
Z
zengyawen 已提交
1207

Z
zengyawen 已提交
1208
**返回值**
Z
zengyawen 已提交
1209 1210 1211
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。返回受影响的行数。 |
Z
zengyawen 已提交
1212

P
PaDaBoo 已提交
1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.delete(predicates)
promise.then((rows) => {
    console.log("Delete rows: " + rows)
}).catch((err) => {
    console.info("Delete failed, err: " + err)
})
```
Z
zengyawen 已提交
1224

1225 1226
### delete<sup>9+</sup>

W
wuyongning 已提交
1227
delete(table: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
1228 1229 1230 1231 1232 1233 1234 1235 1236 1237


根据DataSharePredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
L
ltdong 已提交
1238
| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 |  DataSharePredicates的实例对象指定的删除条件。 |
1239 1240 1241 1242
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1243 1244
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255
predicates.equalTo("NAME", "Lisa")
rdbStore.delete("EMPLOYEE", predicates, function (err, rows) {
    if (err) {
        console.info("Delete failed, err: " + err)
        return
    }
    console.log("Delete rows: " + rows)
})
```
### delete<sup>9+</sup>

L
ltdong 已提交
1256
delete(table: string, predicates: dataSharePredicates.DataSharePredicates):Promise&lt;number&gt;
1257 1258 1259 1260 1261 1262 1263 1264 1265

根据DataSharePredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
L
ltdong 已提交
1266
| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的删除条件。 |
1267 1268 1269 1270 1271 1272 1273 1274

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1275 1276
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1277 1278 1279 1280 1281 1282 1283 1284
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.delete("EMPLOYEE", predicates)
promise.then((rows) => {
    console.log("Delete rows: " + rows)
}).catch((err) => {
    console.info("Delete failed, err: " + err)
})
```
Z
zengyawen 已提交
1285 1286 1287

### query

1288
query(predicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
Z
zengyawen 已提交
1289 1290 1291

根据指定条件查询数据库中的数据,结果以callback形式返回。

P
PaDaBoo 已提交
1292
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1293

P
PaDaBoo 已提交
1294
**参数:**
Z
zengyawen 已提交
1295 1296
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1297
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 |
Z
zengyawen 已提交
1298 1299
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
Z
zengyawen 已提交
1300

P
PaDaBoo 已提交
1301 1302 1303 1304 1305 1306 1307 1308 1309
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose")
rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
W
wuyongning 已提交
1310 1311
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
P
PaDaBoo 已提交
1312 1313
})
```
Z
zengyawen 已提交
1314 1315 1316 1317


### query

1318
query(predicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
Z
zengyawen 已提交
1319 1320 1321

根据指定条件查询数据库中的数据,结果以Promise形式返回。

P
PaDaBoo 已提交
1322
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1323

P
PaDaBoo 已提交
1324
**参数:**
Z
zengyawen 已提交
1325 1326
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1327
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 |
Z
zengyawen 已提交
1328
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
Z
zengyawen 已提交
1329

Z
zengyawen 已提交
1330
**返回值**
Z
zengyawen 已提交
1331 1332 1333
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[ResultSet](../apis/js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
Z
zengyawen 已提交
1334

P
PaDaBoo 已提交
1335
**示例:**
G
ge-yafang 已提交
1336
  ```js
P
PaDoBoo 已提交
1337
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1338
  predicates.equalTo("NAME", "Rose")
P
PaDaBoo 已提交
1339 1340
  let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
  promise.then((resultSet) => {
W
wuyongning 已提交
1341 1342
      console.log("ResultSet column names: " + resultSet.columnNames)
      console.log("ResultSet column count: " + resultSet.columnCount)
W
wuyongning 已提交
1343
  }).catch((err) => {
P
PaDaBoo 已提交
1344
      console.info("Query failed, err: " + err)
W
wuyongning 已提交
1345
  })
Z
zengyawen 已提交
1346 1347
  ```

1348 1349
### query<sup>9+</sup>

1350
query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
1351 1352 1353 1354 1355 1356 1357 1358

根据指定条件查询数据库中的数据,结果以callback形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1359
| table | string | 是 | 指定的目标表名。 |
L
ltdong 已提交
1360
| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
1361 1362 1363 1364 1365
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |

**示例:**
```js
L
ltdong 已提交
1366 1367
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1368 1369 1370 1371 1372 1373
predicates.equalTo("NAME", "Rose")
rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
W
wuyongning 已提交
1374 1375
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
1376 1377 1378 1379 1380
})
```

### query<sup>9+</sup>

1381
query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
1382 1383 1384 1385 1386 1387 1388 1389

根据指定条件查询数据库中的数据,结果以Promise形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1390
| table | string | 是 | 指定的目标表名。 |
L
ltdong 已提交
1391
| predicates | [DataSharePredicates](js-apis-data-DataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
1392 1393 1394 1395 1396 1397 1398 1399 1400
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |

**示例:**
```js
L
ltdong 已提交
1401 1402
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1403 1404 1405
predicates.equalTo("NAME", "Rose")
let promise = rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) => {
W
wuyongning 已提交
1406 1407
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
1408 1409 1410 1411
}).catch((err) => {
    console.info("Query failed, err: " + err)
})
```
Z
zengyawen 已提交
1412

M
mangtsang 已提交
1413 1414 1415 1416 1417 1418
### querySql<sup>8+</sup>

querySql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void

根据指定SQL语句查询数据库中的数据,结果以callback形式返回。

P
PaDaBoo 已提交
1419
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1420

P
PaDaBoo 已提交
1421
**参数:**
Z
zengyawen 已提交
1422 1423 1424 1425 1426
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
M
mangtsang 已提交
1427

P
PaDaBoo 已提交
1428 1429 1430 1431 1432 1433 1434
**示例:**
```js
rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
W
wuyongning 已提交
1435 1436
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
P
PaDaBoo 已提交
1437 1438
})
```
M
mangtsang 已提交
1439 1440 1441 1442 1443 1444 1445 1446


### querySql<sup>8+</sup>

querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt;

根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。

P
PaDaBoo 已提交
1447
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1448

P
PaDaBoo 已提交
1449
**参数:**
Z
zengyawen 已提交
1450 1451 1452 1453
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
M
mangtsang 已提交
1454

Z
zengyawen 已提交
1455
**返回值**
Z
zengyawen 已提交
1456 1457 1458
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[ResultSet](../apis/js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
M
mangtsang 已提交
1459

P
PaDaBoo 已提交
1460 1461 1462 1463
**示例:**
```js
let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
promise.then((resultSet) => {
W
wuyongning 已提交
1464 1465
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
P
PaDaBoo 已提交
1466 1467 1468 1469
}).catch((err) => {
    console.info("Query failed, err: " + err)
})
```
M
mangtsang 已提交
1470 1471


Z
zengyawen 已提交
1472 1473 1474
### executeSql

executeSql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;void&gt;):void
Z
zengyawen 已提交
1475

Q
qingdao@qing 已提交
1476
执行包含指定参数但不返回值的SQL语句,结果以callback形式返回。
Z
zengyawen 已提交
1477

P
PaDaBoo 已提交
1478
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1479

P
PaDaBoo 已提交
1480
**参数:**
Z
zengyawen 已提交
1481 1482 1483 1484 1485
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
Z
zengyawen 已提交
1486

P
PaDaBoo 已提交
1487 1488 1489 1490 1491
**示例:**
```js
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) {
    if (err) {
W
wuyongning 已提交
1492
        console.info("ExecuteSql failed, err: " + err)
P
PaDaBoo 已提交
1493 1494
        return
    }
W
wuyongning 已提交
1495
    console.info('Create table done.')
P
PaDaBoo 已提交
1496 1497
})
```
Z
zengyawen 已提交
1498 1499 1500 1501


### executeSql

M
mangtsang 已提交
1502
executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt;
Z
zengyawen 已提交
1503 1504 1505

执行包含指定参数但不返回值的SQL语句,结果以Promise形式返回。

P
PaDaBoo 已提交
1506
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1507

P
PaDaBoo 已提交
1508
**参数:**
Z
zengyawen 已提交
1509 1510 1511 1512
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
Z
zengyawen 已提交
1513

Z
zengyawen 已提交
1514
**返回值**
Z
zengyawen 已提交
1515 1516 1517
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |
Z
zengyawen 已提交
1518

P
PaDaBoo 已提交
1519 1520 1521 1522 1523
**示例:**
```js
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
let promise = rdbStore.executeSql(SQL_CREATE_TABLE)
promise.then(() => {
W
wuyongning 已提交
1524
    console.info('Create table done.')
P
PaDaBoo 已提交
1525 1526 1527 1528
}).catch((err) => {
    console.info("ExecuteSql failed, err: " + err)
})
```
S
sun-dou 已提交
1529

W
wuyongning 已提交
1530 1531 1532 1533 1534 1535
### beginTransaction<sup>8+</sup>

beginTransaction():void

在开始执行SQL语句之前,开始事务。

P
PaDaBoo 已提交
1536
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1537

P
PaDaBoo 已提交
1538
**示例:**
G
ge-yafang 已提交
1539
```js
P
PaDaBoo 已提交
1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554
rdbStore.beginTransaction()
const valueBucket = {
    "name": "lisi",
    "age": 18,
    "salary": 100.5,
    "blobType": new Uint8Array([1, 2, 3]),
}
rdbStore.insert("test", valueBucket, function (err, ret) {
    if (err) {
        console.info("Insert failed, err: " + err)
        return
    }
    console.log("Insert successfully: " + ret)
})
rdbStore.commit()
W
wuyongning 已提交
1555 1556 1557 1558 1559 1560 1561 1562 1563
```


### commit<sup>8+</sup>

commit():void

提交已执行的SQL语句。

P
PaDaBoo 已提交
1564
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1565

P
PaDaBoo 已提交
1566
**示例:**
G
ge-yafang 已提交
1567
```js
P
PaDaBoo 已提交
1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583
rdbStore.beginTransaction()
const valueBucket = {
    "name": "lisi",
    "age": 18,
    "salary": 100.5,
    "blobType": new Uint8Array([1, 2, 3]),
}

rdbStore.insert("test", valueBucket, function (err, ret) {
    if (err) {
        console.info("Insert failed, err: " + err)
        return
    }
    console.log("Insert successfully: " + ret)
})
rdbStore.commit()
W
wuyongning 已提交
1584 1585 1586 1587 1588
```


### rollBack<sup>8+</sup>

1589
rollBack():void
W
wuyongning 已提交
1590 1591 1592

回滚已经执行的SQL语句。

P
PaDaBoo 已提交
1593
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1594

P
PaDaBoo 已提交
1595
**示例:**
G
ge-yafang 已提交
1596
```js
P
PaDaBoo 已提交
1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616
try {
    rdbStore.beginTransaction()
    const valueBucket = {
        "id": 1,
        "name": "lisi",
        "age": 18,
        "salary": 100.5,
        "blobType": new Uint8Array([1, 2, 3]),
    }
    rdbStore.insert("test", valueBucket, function (err, ret) {
        if (err) {
            console.info("Insert failed, err: " + err)
            return
        }
        console.log("Insert successfully: " + ret)
    })
    rdbStore.commit()
} catch (e) {
    rdbStore.rollBack()
}
W
wuyongning 已提交
1617 1618
```

1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629
### backup<sup>9+</sup>

backup(destName:string, callback: AsyncCallback&lt;void&gt;):void

以指定名称备份数据库,结果以callback形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1630
| destName | string | 是 | 指定数据库的备份文件名。 |
1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |

**示例:**
```js
rdbStore.backup("dbBackup.db", function(err) {
    if (err) {
        console.info('Backup failed, err: ' + err)
        return
    }
    console.info('Backup success.')
})
W
wuyongning 已提交
1642
```
1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654

### backup<sup>9+</sup>

backup(destName:string): Promise&lt;void&gt;

以指定名称备份数据库,结果以promise形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1655
| destName | string | 是 | 指定数据库的备份文件名。 |
1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |

**示例:**
```js
let promiseBackup = rdbStore.backup("dbBackup.db")
promiseBackup.then(()=>{
    console.info('Backup success.')
}).catch((err)=>{
    console.info('Backup failed, err: ' + err)
})
W
wuyongning 已提交
1670
```
1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682

### restore<sup>9+</sup>

restore(srcName:string, callback: AsyncCallback&lt;void&gt;):void

从指定的数据库备份文件恢复数据库,结果以callback形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
update  
wuyongning 已提交
1683
| srcName | string | 是 | 指定数据库的备份文件名。 |
1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |

**示例:**
```js
rdbStore.restore("dbBackup.db", function(err) {
    if (err) {
        console.info('Restore failed, err: ' + err)
        return
    }
    console.info('Restore success.')
})
W
wuyongning 已提交
1695
```
1696 1697 1698

### restore<sup>9+</sup>

W
update  
wuyongning 已提交
1699
restore(srcName:string): Promise&lt;void&gt;
1700 1701 1702 1703 1704 1705 1706 1707

从指定的数据库备份文件恢复数据库,结果以promise形式返回。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
update  
wuyongning 已提交
1708
| srcName | string | 是 | 指定数据库的备份文件名。 |
1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |

**示例:**
```js
let promiseRestore = rdbStore.restore("dbBackup.db")
promiseRestore.then(()=>{
    console.info('Restore success.')
}).catch((err)=>{
    console.info('Restore failed, err: ' + err)
})
W
wuyongning 已提交
1723
```
W
wuyongning 已提交
1724

Z
zengyawen 已提交
1725
### setDistributedTables<sup>8+</sup>
S
sun-dou 已提交
1726

W
wuyongning 已提交
1727
setDistributedTables(tables: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
S
sun-dou 已提交
1728

Q
qingdao@qing 已提交
1729
设置分布式列表,结果以callback形式返回。
S
sun-dou 已提交
1730

W
wuyongning 已提交
1731 1732
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1733
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1734

P
PaDaBoo 已提交
1735
**参数:**
Z
zengyawen 已提交
1736 1737 1738 1739
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
S
sun-dou 已提交
1740

P
PaDaBoo 已提交
1741 1742 1743 1744
**示例:**
```js
rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
    if (err) {
W
wuyongning 已提交
1745
        console.info('SetDistributedTables failed, err: ' + err)
P
PaDaBoo 已提交
1746 1747
        return
    }
W
wuyongning 已提交
1748
    console.info('SetDistributedTables successfully.')
P
PaDaBoo 已提交
1749
})
S
sun-dou 已提交
1750 1751 1752
  ```


Z
zengyawen 已提交
1753
### setDistributedTables<sup>8+</sup>
S
sun-dou 已提交
1754

W
wuyongning 已提交
1755
 setDistributedTables(tables: Array&lt;string&gt;): Promise&lt;void&gt;
S
sun-dou 已提交
1756 1757 1758

设置分布式列表,结果以Promise形式返回。

W
wuyongning 已提交
1759 1760
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1761
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1762

P
PaDaBoo 已提交
1763
**参数:**
Z
zengyawen 已提交
1764 1765 1766
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名。 |
S
sun-dou 已提交
1767

Z
zengyawen 已提交
1768
**返回值**:
Z
zengyawen 已提交
1769 1770 1771
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |
S
sun-dou 已提交
1772

P
PaDaBoo 已提交
1773 1774 1775 1776
**示例:**
```js
let promise = rdbStore.setDistributedTables(["EMPLOYEE"])
promise.then(() => {
W
wuyongning 已提交
1777
    console.info("SetDistributedTables successfully.")
P
PaDaBoo 已提交
1778
}).catch((err) => {
W
wuyongning 已提交
1779
    console.info("SetDistributedTables failed, err: " + err)
P
PaDaBoo 已提交
1780 1781
})
```
S
sun-dou 已提交
1782

Z
zengyawen 已提交
1783
### obtainDistributedTableName<sup>8+</sup>
S
sun-dou 已提交
1784

W
wuyongning 已提交
1785
obtainDistributedTableName(device: string, table: string, callback: AsyncCallback&lt;string&gt;): void
S
sun-dou 已提交
1786

Q
qingdao@qing 已提交
1787
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 结果以callback形式返回。
S
sun-dou 已提交
1788

W
wuyongning 已提交
1789 1790
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1791
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1792

P
PaDaBoo 已提交
1793
**参数:**
Z
zengyawen 已提交
1794 1795 1796 1797 1798
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备 。|
| table | string | 是 | 本地表名。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |
S
sun-dou 已提交
1799

P
PaDaBoo 已提交
1800 1801
**示例:**
```js
W
wuyongning 已提交
1802
rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tableName) {
P
PaDaBoo 已提交
1803
    if (err) {
W
wuyongning 已提交
1804
        console.info('ObtainDistributedTableName failed, err: ' + err)
P
PaDaBoo 已提交
1805 1806
        return
    }
W
wuyongning 已提交
1807
    console.info('ObtainDistributedTableName successfully, tableName=.' + tableName)
P
PaDaBoo 已提交
1808 1809
})
```
S
sun-dou 已提交
1810 1811


Z
zengyawen 已提交
1812
### obtainDistributedTableName<sup>8+</sup>
S
sun-dou 已提交
1813

W
wuyongning 已提交
1814
 obtainDistributedTableName(device: string, table: string): Promise&lt;string&gt;
S
sun-dou 已提交
1815 1816 1817

根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,结果以Promise形式返回。

W
wuyongning 已提交
1818 1819
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1820
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1821

P
PaDaBoo 已提交
1822
**参数:**
Z
zengyawen 已提交
1823 1824 1825 1826
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备。 |
| table | string | 是 | 本地表名。 |
S
sun-dou 已提交
1827

Z
zengyawen 已提交
1828
**返回值**:
Z
zengyawen 已提交
1829 1830 1831
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;string&gt; | 指定Promise回调函数。如果操作成功,返回远程设备的分布式表名。 |
S
sun-dou 已提交
1832

P
PaDaBoo 已提交
1833 1834
**示例:**
```js
W
wuyongning 已提交
1835
let promise = rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE")
P
PaDaBoo 已提交
1836
promise.then((tableName) => {
W
wuyongning 已提交
1837
    console.info('ObtainDistributedTableName successfully, tableName= ' + tableName)
P
PaDaBoo 已提交
1838
}).catch((err) => {
W
wuyongning 已提交
1839
    console.info('ObtainDistributedTableName failed, err: ' + err)
P
PaDaBoo 已提交
1840 1841
})
```
S
sun-dou 已提交
1842

W
wuyongning 已提交
1843
### sync<sup>8+</sup>
S
sun-dou 已提交
1844

W
wuyongning 已提交
1845
sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback&lt;Array&lt;[string, number]&gt;&gt;): void
S
sun-dou 已提交
1846

Q
qingdao@qing 已提交
1847
在设备之间同步数据, 结果以callback形式返回。
S
sun-dou 已提交
1848

W
wuyongning 已提交
1849 1850
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1851
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1852

P
PaDaBoo 已提交
1853
**参数:**
Z
zengyawen 已提交
1854 1855 1856 1857 1858
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [SyncMode](#syncmode8) | 是 | 指同步模式。该值可以是推、拉。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 |
| callback | AsyncCallback&lt;Array&lt;[string, number]&gt;&gt; | 是 | 指定的callback回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。|
S
sun-dou 已提交
1859

P
PaDaBoo 已提交
1860 1861
**示例:**
```js
W
wuyongning 已提交
1862
let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
P
PaDaBoo 已提交
1863
predicates.inDevices(['12345678abcde'])
W
wuyongning 已提交
1864
rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) {
P
PaDaBoo 已提交
1865
    if (err) {
W
wuyongning 已提交
1866
        console.log('Sync failed, err: ' + err)
P
PaDaBoo 已提交
1867 1868
        return
    }
W
wuyongning 已提交
1869
    console.log('Sync done.')
P
PaDaBoo 已提交
1870 1871 1872 1873 1874
    for (let i = 0; i < result.length; i++) {
        console.log('device=' + result[i][0] + ' status=' + result[i][1])
    }
})
```
S
sun-dou 已提交
1875 1876


W
wuyongning 已提交
1877
### sync<sup>8+</sup>
S
sun-dou 已提交
1878

W
wuyongning 已提交
1879
 sync(mode: SyncMode, predicates: RdbPredicates): Promise&lt;Array&lt;[string, number]&gt;&gt;
S
sun-dou 已提交
1880 1881 1882

在设备之间同步数据,结果以Promise形式返回。

W
wuyongning 已提交
1883 1884
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1885
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1886

P
PaDaBoo 已提交
1887
**参数:**
Z
zengyawen 已提交
1888 1889 1890 1891
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [SyncMode](#syncmode8) | 是 | 指同步模式。该值可以是推、拉。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 |
S
sun-dou 已提交
1892

Z
zengyawen 已提交
1893
**返回值**:
Z
zengyawen 已提交
1894 1895 1896 1897

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;Array&lt;[string, number]&gt;&gt; | 指定Promise回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
S
sun-dou 已提交
1898

P
PaDaBoo 已提交
1899 1900 1901 1902 1903 1904
**示例:**
```js
let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde'])
let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates)
promise.then((result) =>{
W
wuyongning 已提交
1905
    console.log('Sync done.')
P
PaDaBoo 已提交
1906 1907 1908 1909
    for (let i = 0; i < result.length; i++) {
        console.log('device=' + result[i][0] + ' status=' + result[i][1])
    }
}).catch((err) => {
W
wuyongning 已提交
1910
    console.log('Sync failed')
P
PaDaBoo 已提交
1911 1912
})
```
S
sun-dou 已提交
1913

Z
zengyawen 已提交
1914
### on('dataChange')<sup>8+</sup>
S
sun-dou 已提交
1915

W
wuyongning 已提交
1916
on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
1917 1918 1919

注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。

W
wuyongning 已提交
1920 1921
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1922
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1923

P
PaDaBoo 已提交
1924
**参数:**
Z
zengyawen 已提交
1925

Z
zengyawen 已提交
1926 1927 1928 1929 1930
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 取值为'dataChange',表示数据更改。 |
| type | [SubscribeType](#subscribetype8) | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
| observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指分布式数据库中数据更改事件的观察者。 |
S
sun-dou 已提交
1931

P
PaDaBoo 已提交
1932 1933 1934 1935 1936 1937 1938 1939 1940 1941
**示例:**
```js
function storeObserver(devices) {
    for (let i = 0; i < devices.length; i++) {
        console.log('device=' + devices[i] + ' data changed')
    }
}
try {
    rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
W
wuyongning 已提交
1942
    console.log('Register observer failed')
P
PaDaBoo 已提交
1943 1944
}
```
S
sun-dou 已提交
1945

Z
zengyawen 已提交
1946
### off('dataChange')<sup>8+</sup>
S
sun-dou 已提交
1947

W
wuyongning 已提交
1948
off(event:'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
1949

Q
qingdao@qing 已提交
1950
从数据库中删除指定类型的指定观察者, 结果以callback形式返回。
S
sun-dou 已提交
1951

W
wuyongning 已提交
1952 1953
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1954
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1955

P
PaDaBoo 已提交
1956
**参数:**
Z
zengyawen 已提交
1957

Z
zengyawen 已提交
1958 1959 1960 1961 1962
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 取值为'dataChange',表示数据更改。 |
| type | [SubscribeType](#subscribetype8)    | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
| observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指已注册的数据更改观察者。|
S
sun-dou 已提交
1963

P
PaDaBoo 已提交
1964 1965 1966 1967 1968 1969 1970 1971 1972 1973
**示例:**
```js
function storeObserver(devices) {
    for (let i = 0; i < devices.length; i++) {
        console.log('device=' + devices[i] + ' data changed')
    }
}
try {
    rdbStore.off('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
W
wuyongning 已提交
1974
    console.log('Unregister observer failed')
P
PaDaBoo 已提交
1975 1976
}
```
S
sun-dou 已提交
1977

Z
zengyawen 已提交
1978
## StoreConfig
Z
zengyawen 已提交
1979 1980 1981

管理关系数据库配置。

P
PaDaBoo 已提交
1982
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1983

Z
zengyawen 已提交
1984 1985 1986 1987 1988 1989
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库文件名。 |


## ValueType
Z
zengyawen 已提交
1990 1991 1992

用于表示允许的数据字段类型。

P
PaDaBoo 已提交
1993
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1994

1995
| 类型 | 说明 |
Z
zengyawen 已提交
1996 1997 1998
| -------- | -------- |
| number | 表示值类型为数字。 |
| string | 表示值类型为字符。 |
1999
| boolean | 表示值类型为布尔值。|
Z
zengyawen 已提交
2000 2001 2002


## ValuesBucket
Z
zengyawen 已提交
2003

2004
用于存储键值对的类型。
Z
zengyawen 已提交
2005

P
PaDaBoo 已提交
2006
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
2007

2008 2009 2010
| 键类型 | 值类型 |
| -------- | -------- |
| string | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | 
S
sun-dou 已提交
2011

W
wuyongning 已提交
2012
## SyncMode<sup>8+</sup>
S
sun-dou 已提交
2013 2014 2015

指数据库同步模式。

P
PaDaBoo 已提交
2016
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
2017

W
wuyongning 已提交
2018 2019 2020 2021 2022 2023
| 名称       | 默认值 | 说明 |
| --------  | ----- |----- |
| SYNC_MODE_PUSH | 0 | 表示数据从本地设备推送到远程设备。 |
| SYNC_MODE_PULL | 1 | 表示数据从远程设备拉至本地设备。 |

## SubscribeType<sup>8+</sup>
S
sun-dou 已提交
2024 2025 2026

描述订阅类型。

W
wuyongning 已提交
2027 2028
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
2029
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2030 2031 2032 2033

| 名称      | 默认值 | 说明 |
| -------- | ----- |---- |
| SUBSCRIBE_TYPE_REMOTE | 0 | 订阅远程数据更改。 |