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

Z
zengyawen 已提交
3 4
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
5

6

Z
zengyawen 已提交
7 8

## 导入模块
Z
zengyawen 已提交
9 10

```
P
PaDoBoo 已提交
11
import data_rdb from '@ohos.data.rdb'
Z
zengyawen 已提交
12 13 14
```


P
PaDoBoo 已提交
15
## data_rdb.getRdbStore
Z
zengyawen 已提交
16

W
wuyongning 已提交
17
getRdbStore(context?: Context, config: StoreConfig, version: number, callback: AsyncCallback<RdbStore>): void
Z
zengyawen 已提交
18 19 20

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

W
wuyongning 已提交
21
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
22

Z
zengyawen 已提交
23 24 25
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
26
  | context<sup>8+</sup> | Context | 否 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
27 28 29 30 31 32
  | config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
  | version | number | 是 | 数据库版本。 |
  | callback | AsyncCallback&lt;[RdbStore](#rdbstore)&gt; | 是 | 指定callback回调函数。返回一个RdbStore。 |

- 示例:
  ```
33 34 35 36 37 38 39 40 41 42
  import Ability from '@ohos.application.Ability'
  import data_rdb from '@ohos.data.rdb'
  export default class MainAbility extends Ability {
      const STORE_CONFIG = { name: "RdbTest.db"}
      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)"
      data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, function (err, rdbStore) {
          rdbStore.executeSql(SQL_CREATE_TABLE)
          console.info(TAG + 'create table done.')
      })
  }
Z
zengyawen 已提交
43 44
  ```

P
PaDoBoo 已提交
45
## data_rdb.getRdbStore
Z
zengyawen 已提交
46

W
wuyongning 已提交
47
getRdbStore(context?: Context, config: StoreConfig, version: number): Promise&lt;RdbStore&gt;
Z
zengyawen 已提交
48 49 50

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

W
wuyongning 已提交
51
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
52

Z
zengyawen 已提交
53 54 55
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
56
  | context<sup>8+</sup> | Context | 否 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
57 58 59 60 61 62 63 64 65 66
  | config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
  | version | number | 是 | 数据库版本。 |

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

- 示例:
  ```
67 68 69 70 71 72 73
  import Ability from '@ohos.application.Ability'
  import data_rdb from '@ohos.data.rdb'
  export default class MainAbility extends Ability {
      const STORE_CONFIG = { name: "RdbTest.db" }
      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 = data_rdb.getRdbStore(this.context, STORE_CONFIG, 1);
      promise.then(async (rdbStore) => {
W
wuyongning 已提交
74 75 76
        let promiseExecSql = rdbStore.executeSql(SQL_CREATE_TABLE, null)
        promiseExecSql.then(() => {
          console.info(TAG + 'creat done.')})
77 78 79 80
      }).catch((err) => {
          expect(null).assertFail();
      })
  }
Z
zengyawen 已提交
81 82
  ```

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

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

删除数据库,结果以callback形式返回。

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

Z
zengyawen 已提交
91 92 93
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
94
  | context<sup>8+</sup> | Context | 否 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
95 96 97 98 99
  | name | string | 是 | 数据库名称。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。如果数据库已删除,则为true;否则返回false。 |

- 示例:
  ```
100 101 102 103 104 105
  import Ability from '@ohos.application.Ability'
  import data_rdb from '@ohos.data.rdb'
  export default class MainAbility extends Ability {
      data_rdb.deleteRdbStore(this.context, "RdbTest.db", function (err, rdbStore) {
          console.info(TAG + 'delete store done.')})
  }
Z
zengyawen 已提交
106 107
  ```

P
PaDoBoo 已提交
108
## data_rdb.deleteRdbStore
Z
zengyawen 已提交
109

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

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

W
wuyongning 已提交
114
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
115

Z
zengyawen 已提交
116 117 118
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
119
  | context<sup>8+</sup> | Context | 否 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
120 121 122 123 124 125 126 127 128
  | name | string | 是 | 数据库名称。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | 指定Promise回调函数。如果数据库已删除,则为true;否则返回false。 |

- 示例:
  ```
129 130 131 132 133 134 135 136
  import Ability from '@ohos.application.Ability'
  import data_rdb from '@ohos.data.rdb'
  export default class MainAbility extends Ability {
      let promise = data_rdb.deleteRdbStore(this.context, "RdbTest.db")
      promise.then(()=>{
          console.info(TAG + 'delete store done.')
      })
  }
Z
zengyawen 已提交
137 138 139
  ```

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

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


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

constructor(name: string)

Z
zengyawen 已提交
148 149 150

构造函数。

W
wuyongning 已提交
151
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
152 153 154 155 156 157 158 159

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | name | string | 是 | 数据库表名。 |

- 示例:
  ```
P
PaDoBoo 已提交
160
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
161 162
  ```

S
sun-dou 已提交
163 164
### inDevices

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


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

W
wuyongning 已提交
170
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
171 172 173 174

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
175
  | devices | Array&lt;string&gt; | 是 | 指定的组网内的远程设备ID。 |
S
sun-dou 已提交
176 177 178 179 180 181 182 183 184 185 186 187

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

- 示例:
  ```
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
  predicate.inDevices(['12345678abcde'])
  ```

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

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


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

W
wuyongning 已提交
195
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
196 197 198 199 200 201 202 203 204 205 206

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

- 示例:
  ```
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
  predicates.inAllDevices()
  ```
Z
zengyawen 已提交
207 208 209 210 211

### equalTo

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

Z
zengyawen 已提交
212 213 214

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

W
wuyongning 已提交
215
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
216 217 218 219 220 221 222 223 224 225 226 227 228 229

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### notEqualTo

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

Z
zengyawen 已提交
239 240 241

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

W
wuyongning 已提交
242
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
243 244 245 246 247 248 249 250 251 252 253 254 255 256

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### beginWrap

beginWrap(): RdbPredicates

Z
zengyawen 已提交
266 267 268

向谓词添加左括号。

W
wuyongning 已提交
269
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
270

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

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


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

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


向谓词添加右括号。

W
wuyongning 已提交
295
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
296

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

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


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

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


将或条件添加到谓词中。

W
wuyongning 已提交
321
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
322

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

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


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

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


向谓词添加和条件。

W
wuyongning 已提交
344
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
345

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

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


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

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

配置谓词以匹配数据字段为String且value包含指定值的字段。

W
wuyongning 已提交
366
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
367 368 369 370 371 372 373 374 375 376 377 378 379 380

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | string | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### beginsWith

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

Z
zengyawen 已提交
390 391 392

配置谓词以匹配数据字段为String且值以指定字符串开头的字段。

W
wuyongning 已提交
393
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
394 395 396 397 398 399 400 401 402 403 404 405 406 407

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | string | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### endsWith

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

Z
zengyawen 已提交
417 418 419

配置谓词以匹配数据字段为String且值以指定字符串结尾的字段。

W
wuyongning 已提交
420
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
421 422 423 424 425 426 427 428 429 430 431 432 433 434

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | string | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### isNull

isNull(field: string): RdbPredicates

Z
zengyawen 已提交
444 445 446

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

W
wuyongning 已提交
447
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
448 449 450 451 452 453 454 455 456 457 458 459 460

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### isNotNull

isNotNull(field: string): RdbPredicates

Z
zengyawen 已提交
470 471 472

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

W
wuyongning 已提交
473
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
474 475 476 477 478 479 480 481 482 483 484 485 486

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### like

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

Z
zengyawen 已提交
496 497 498

配置谓词以匹配数据字段为String且值类似于指定字符串的字段。

W
wuyongning 已提交
499
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
500 501 502 503 504 505 506 507 508 509 510 511 512 513

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | string | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### glob

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

Z
zengyawen 已提交
523 524 525

配置RdbPredicates匹配数据字段为String的指定字段。

W
wuyongning 已提交
526
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
527 528 529 530 531

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

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

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


### between

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

Z
zengyawen 已提交
550 551 552

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

W
wuyongning 已提交
553
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
554 555 556 557 558 559 560 561 562 563 564 565 566 567 568

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
  | high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### notBetween

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

Z
zengyawen 已提交
578 579 580

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

W
wuyongning 已提交
581
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
582 583 584 585 586 587 588 589 590 591 592 593 594 595 596

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
  | high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### greaterThan

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

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

W
wuyongning 已提交
608
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
609 610 611 612 613 614 615 616 617 618 619 620 621 622

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### lessThan

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

Z
zengyawen 已提交
632 633 634

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

W
wuyongning 已提交
635
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
636 637 638 639 640 641 642 643 644 645 646 647 648 649

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### greaterThanOrEqualTo


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

Z
zengyawen 已提交
660 661 662

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

W
wuyongning 已提交
663
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
664 665 666 667 668 669 670 671 672 673 674 675 676 677

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### lessThanOrEqualTo


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

Z
zengyawen 已提交
688 689 690

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

W
wuyongning 已提交
691
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
692 693 694 695 696 697 698 699 700 701 702 703 704 705

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### orderByAsc


orderByAsc(field: string): RdbPredicates

Z
zengyawen 已提交
716 717 718

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

W
wuyongning 已提交
719
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
720 721 722 723 724 725 726 727 728 729 730 731 732

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### orderByDesc


orderByDesc(field: string): RdbPredicates

Z
zengyawen 已提交
743 744 745

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

W
wuyongning 已提交
746
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
747 748 749 750 751 752 753 754 755 756 757 758 759

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

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


### distinct

distinct(): RdbPredicates

Z
zengyawen 已提交
769 770 771

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

W
wuyongning 已提交
772
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
773

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

Z
zengyawen 已提交
779 780
- 示例:
  ```
P
PaDoBoo 已提交
781
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
782
  predicates.equalTo("NAME", "Rose").distinct("NAME")
783
  let resultSet = await rdbStore.query(predicates, ["NAME"])
W
wuyongning 已提交
784 785 786 787 788 789

  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
  predicates.equalTo("NAME", "Rose").distinct("NAME")
  let promise= rdbStore.query(predicates, ["NAME"])
  promise.then(() => {   
      console.log(TAG + "distinct" )})
Z
zengyawen 已提交
790
  ```
Z
zengyawen 已提交
791 792


Z
zengyawen 已提交
793
### limitAs
Z
zengyawen 已提交
794

Z
zengyawen 已提交
795
limitAs(value: number): RdbPredicates
Z
zengyawen 已提交
796 797 798 799


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

W
wuyongning 已提交
800
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
801 802 803 804 805 806 807 808 809 810 811 812 813

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | value | number | 是 | 最大数据记录数。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回可用于设置最大数据记录数的谓词。 |

- 示例:
  ```
P
PaDoBoo 已提交
814
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
815 816 817 818 819 820 821 822
  predicates.equalTo("NAME", "Rose").limitAs(3)
  ```


### offsetAs

offsetAs(rowOffset: number): RdbPredicates

Z
zengyawen 已提交
823 824 825

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

W
wuyongning 已提交
826
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
827 828 829 830 831 832 833 834 835 836 837 838 839

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回具有指定返回结果起始位置的谓词。 |

- 示例:
  ```
P
PaDoBoo 已提交
840
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
841 842 843 844 845 846 847 848
  predicates.equalTo("NAME", "Rose").offsetAs(3)
  ```


### groupBy

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

Z
zengyawen 已提交
849 850 851

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

W
wuyongning 已提交
852
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
853 854 855 856 857 858 859 860 861 862 863 864 865

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | fields | Array&lt;string&gt; | 是 | 指定分组依赖的列名。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回分组查询列的谓词。 |

- 示例:
  ```
P
PaDoBoo 已提交
866
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
867 868 869 870 871 872
  predicates.groupBy(["AGE", "NAME"])
  ```


### indexedBy

W
wuyongning 已提交
873
indexedBy(indexName: string): RdbPredicates
Z
zengyawen 已提交
874 875 876

配置RdbPredicates以指定索引列。

W
wuyongning 已提交
877
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
878 879 880 881 882 883 884 885 886 887 888 889 890

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | indexName | string | 是 | 索引列的名称。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回具有指定索引列的RdbPredicates。 |

- 示例:
  ```
P
PaDoBoo 已提交
891
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
892 893 894 895 896 897 898 899
  predicates.indexedBy("SALARY_INDEX")
  ```


### in

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

Z
zengyawen 已提交
900 901 902

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

W
wuyongning 已提交
903
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
904 905 906 907 908 909 910 911 912 913 914 915 916 917 918

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType型数组形式指定的要匹配的值。 |


- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

- 示例:
  ```
P
PaDoBoo 已提交
919
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
920 921 922 923 924 925 926 927
  predicates.in("AGE", [18, 20])
  ```


### notIn

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

Z
zengyawen 已提交
928 929 930

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

W
wuyongning 已提交
931
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
932 933 934 935 936 937 938 939 940 941 942 943 944 945 946

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | field | string | 是 | 数据库表中的列名。 |
  | value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType数组形式指定的要匹配的值。 |


- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |

- 示例:
  ```
P
PaDoBoo 已提交
947
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
948 949 950 951 952 953 954 955 956 957 958 959
  predicates.notIn("NAME", ["Lisa", "Rose"])
  ```


## RdbStore

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


### insert

insert(name: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
960 961 962

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

W
wuyongning 已提交
963
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
964

Z
zengyawen 已提交
965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | name | string | 是 | 指定的目标表名。 |
  | values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
  | callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |

- 示例:
  ```
  const valueBucket = {
      "NAME": "Lisa",
      "AGE": 18,
      "SALARY": 100.5,
      "CODES": new Uint8Array([1, 2, 3, 4, 5]),
  }
  rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
      expect(1).assertEqual(ret)
      console.log(TAG + "insert first done: " + ret)})
  ```


### insert

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

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

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

Z
zengyawen 已提交
994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | name | string | 是 | 指定的目标表名。 |
  | values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;number&gt; | 指定Promise回调函数。如果操作成功,返回行ID;否则返回-1。 |

- 示例:
  ```
  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) => {
W
wuyongning 已提交
1015
       console.log(TAG + "insert first done: " + ret)
Z
zengyawen 已提交
1016 1017 1018 1019 1020 1021 1022
  }).catch((err) => {})
  ```


### update

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

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

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

Z
zengyawen 已提交
1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | values | [ValuesBucket](#valuesbucket) | 是 | value指示数据库中要更新的数据行。键值对与数据库表的列名相关联 |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示要插入到表中的数据行。 |
  | callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |

- 示例:
  ```
  const valueBucket = {
      "NAME": "Rose",
      "AGE": 22,
      "SALARY": 200.5,
      "CODES": new Uint8Array([1, 2, 3, 4, 5]),
  }
P
PaDoBoo 已提交
1043
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1044 1045 1046 1047 1048 1049 1050 1051 1052
  predicates.equalTo("NAME", "Lisa")
  rdbStore.update(valueBucket, predicates, function (err, ret) {
      console.log(TAG + "updated row count: " + changedRows)})
  ```


### update

update(values: ValuesBucket, rdbPredicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1053 1054 1055

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

W
wuyongning 已提交
1056
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1057

Z
zengyawen 已提交
1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | values | [ValuesBucket](#valuesbucket) | 是 | value指示数据库中要更新的数据行。键值对与数据库表的列名相关联 |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示要插入到表中的数据行。 |

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

- 示例:
  ```
  const valueBucket = {
      "NAME": "Rose",
      "AGE": 22,
      "SALARY": 200.5,
      "CODES": new Uint8Array([1, 2, 3, 4, 5]),
  }
P
PaDoBoo 已提交
1077
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1078 1079 1080
  predicates.equalTo("NAME", "Lisa")
  let promise = rdbStore.update(valueBucket, predicates)
  promise.then(async (ret) => {
W
wuyongning 已提交
1081
       console.log(TAG + "updated row count: " + changedRows)
Z
zengyawen 已提交
1082 1083 1084 1085 1086 1087 1088 1089
  }).catch((err) => {})
  ```


### delete

delete(rdbPredicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void

Z
zengyawen 已提交
1090 1091 1092

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

W
wuyongning 已提交
1093
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
1094 1095 1096 1097 1098 1099 1100 1101 1102

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
  | callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |

- 示例:
  ```
P
PaDoBoo 已提交
1103
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1104 1105 1106 1107 1108 1109 1110 1111 1112
  predicates.equalTo("NAME", "Lisa")
  rdbStore.delete(predicates, function (err, rows) {
      console.log(TAG + "delete rows: " + rows)})
  ```


### delete

delete(rdbPredicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1113 1114 1115

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

W
wuyongning 已提交
1116
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1117

Z
zengyawen 已提交
1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |

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

- 示例:
  ```
P
PaDoBoo 已提交
1130
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141
  predicates.equalTo("NAME", "Lisa")
  let promise = rdbStore.delete(predicates)
  promise.then((rows) => {
      console.log(TAG + "delete rows: " + rows)
  }).catch((err) => {})
  ```


### query

query(rdbPredicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
Z
zengyawen 已提交
1142 1143 1144

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

W
wuyongning 已提交
1145
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1146

Z
zengyawen 已提交
1147 1148 1149 1150 1151
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示rdbPredicates的实例对象指定的查询条件。 |
  | columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
Z
zengyawen 已提交
1152
  | callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
Z
zengyawen 已提交
1153 1154 1155

- 示例:
  ```
P
PaDoBoo 已提交
1156
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1157 1158 1159 1160 1161 1162 1163 1164 1165
  predicates.equalTo("NAME", "Rose")
  rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
      console.log(TAG + "resultSet column names:" + resultSet.columnNames)
      console.log(TAG + "resultSet column count:" + resultSet.columnCount)})
  ```


### query

M
mangtsang 已提交
1166
query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
Z
zengyawen 已提交
1167 1168 1169

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

W
wuyongning 已提交
1170
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1171

Z
zengyawen 已提交
1172 1173 1174 1175
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示rdbPredicates的实例对象指定的查询条件。 |
M
mangtsang 已提交
1176
  | columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
Z
zengyawen 已提交
1177 1178 1179 1180

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

- 示例:
  ```
P
PaDoBoo 已提交
1185
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1186 1187 1188 1189 1190 1191 1192 1193
  predicates.equalTo("NAME", "Rose")
  let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
  promise.then((resultSet) => {
      console.log(TAG + "resultSet column names:" + resultSet.columnNames)
      console.log(TAG + "resultSet column count:" + resultSet.columnCount)})
  ```


M
mangtsang 已提交
1194 1195 1196 1197 1198 1199
### querySql<sup>8+</sup>

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

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

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

M
mangtsang 已提交
1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | sql | string | 是 | 指定要执行的SQL语句。 |
  | bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
  | callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |

- 示例:
  ```
  rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) {
      console.log(TAG + "resultSet column names:" + resultSet.columnNames)
      console.log(TAG + "resultSet column count:" + resultSet.columnCount)})
  ```


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

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

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

W
wuyongning 已提交
1223
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1224

M
mangtsang 已提交
1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | sql | string | 是 | 指定要执行的SQL语句。 |
  | bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |

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

- 示例:
  ```
  let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
  promise.then((resultSet) => {
      console.log(TAG + "resultSet column names:" + resultSet.columnNames)
      console.log(TAG + "resultSet column count:" + resultSet.columnCount)})
  ```


Z
zengyawen 已提交
1245 1246 1247
### executeSql

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

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

W
wuyongning 已提交
1251
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1252

Z
zengyawen 已提交
1253 1254 1255 1256 1257 1258 1259 1260 1261
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | sql | string | 是 | 指定要执行的SQL语句。 |
  | bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |

- 示例:
  ```
M
mangtsang 已提交
1262
  rdbStore.executeSql("DELETE FROM EMPLOYEE", null, function () {
Z
zengyawen 已提交
1263 1264 1265 1266 1267 1268
      console.info(TAG + 'delete done.')})
  ```


### executeSql

M
mangtsang 已提交
1269
executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt;
Z
zengyawen 已提交
1270 1271 1272

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

W
wuyongning 已提交
1273
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1274

Z
zengyawen 已提交
1275 1276 1277 1278
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | sql | string | 是 | 指定要执行的SQL语句。 |
M
mangtsang 已提交
1279
  | bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
Z
zengyawen 已提交
1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291

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

- 示例:
  ```
  let promise = rdbStore.executeSql("DELETE FROM EMPLOYEE")
  promise.then(() => {
      console.info(TAG + 'delete done.')})
  ```
S
sun-dou 已提交
1292

W
wuyongning 已提交
1293 1294 1295 1296 1297 1298
### beginTransaction<sup>8+</sup>

beginTransaction():void

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

W
wuyongning 已提交
1299 1300
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。

W
wuyongning 已提交
1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322
- 示例:
```
  rdbStore.beginTransaction()
  const valueBucket = {
      "name": "lisi",
      "age": 18,
      "salary": 100.5,
      "blobType": new Uint8Array([1, 2, 3]),
  }
  rdbStore.insert("test", valueBucket, function (err, ret) {
      expect(1).assertEqual(ret)
      console.log(TAG + "insert done: " + ret)})
  rdbStore.commit()
```


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

commit():void

提交已执行的SQL语句。

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

W
wuyongning 已提交
1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347
- 示例:
```
  rdbStore.beginTransaction()
  const valueBucket = {
      "name": "lisi",
      "age": 18,
      "salary": 100.5,
      "blobType": new Uint8Array([1, 2, 3]),
  }

  rdbStore.insert("test", valueBucket, function (err, ret) {
      expect(1).assertEqual(ret)
      console.log(TAG + "insert done: " + ret)})
  rdbStore.commit()
```


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

rollBack():void;

回滚已经执行的SQL语句。

W
wuyongning 已提交
1348 1349
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。

W
wuyongning 已提交
1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361
- 示例:
```
  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) {
W
wuyongning 已提交
1362 1363 1364
    expect(1).assertEqual(ret)
    console.log(TAG + "insert done: " + ret)})
    rdbStore.commit()
W
wuyongning 已提交
1365 1366 1367 1368 1369 1370
  } catch (e) {
      rdbStore.rollBack()
  }
```


S
sun-dou 已提交
1371 1372
### setDistributedTables

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

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

W
wuyongning 已提交
1377
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1378

S
sun-dou 已提交
1379 1380 1381
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1382
  | tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名 |
S
sun-dou 已提交
1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398
  | callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |

- 示例:
  ```
  rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
      if (err) {
          console.info('setDistributedTables failed.')
          return
      }
      console.info('setDistributedTables success.')
  })
  ```


### setDistributedTables

W
wuyongning 已提交
1399
 setDistributedTables(tables: Array&lt;string&gt;): Promise&lt;void&gt;
S
sun-dou 已提交
1400 1401 1402

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

W
wuyongning 已提交
1403
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1404

S
sun-dou 已提交
1405 1406 1407
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1408
  | tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名。 |
S
sun-dou 已提交
1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426

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

- 示例:
  ```
  let promise = rdbStore.setDistributedTables(["EMPLOYEE"])
  promise.then(() => {
      console.info("setDistributedTables success.")
  }).catch((err) => {
      console.info("setDistributedTables failed."")
  })
  ```

### obtainDistributedTableName

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

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

W
wuyongning 已提交
1431
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1432

S
sun-dou 已提交
1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | device | string | 是 | 远程设备 。|
  | table | string | 是 | 本地表名。 |
  | callback | AsyncCallback&lt;string&gt; | 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |

- 示例:
  ```
  rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) {
      if (err) {
          console.info('obtainDistributedTableName failed.')
          return
      }
      console.info('obtainDistributedTableName success, tableName=.' + tableName)
   })
  ```


### obtainDistributedTableName

W
wuyongning 已提交
1454
 obtainDistributedTableName(device: string, table: string): Promise&lt;string&gt;
S
sun-dou 已提交
1455 1456 1457

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

W
wuyongning 已提交
1458
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1459

S
sun-dou 已提交
1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | device | string | 是 | 远程设备。 |
  | table | string | 是 | 本地表名。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;string&gt; | 指定Promise回调函数。如果操作成功,返回远程设备的分布式表名。 |

- 示例:
  ```
  let promise = rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE")
  promise.then((tableName) => {
      console.info('obtainDistributedTableName success, tableName=' + tableName)
  }).catch((err) => {
      console.info('obtainDistributedTableName failed.')
  })
  ```

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

W
wuyongning 已提交
1483
sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array<[string, number]>>): void
S
sun-dou 已提交
1484 1485 1486

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

W
wuyongning 已提交
1487
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1488

S
sun-dou 已提交
1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | mode | SyncMode | 是 | 指同步模式。该值可以是推、拉。 |
  | predicates | RdbPredicates | 是 | 约束同步数据和设备。 |
  | callback | AsyncCallback&lt;Array<[string, number]>&gt; | 是 | 指定的callback回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。|

- 示例:
  ```
  let predicate = new rdb.RdbPredicates('EMPLOYEE')
  predicate.inDevices(['12345678abcde'])
  rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicate, function (err, result) {
      if (err) {
          console.log('sync failed')
          return
       }
      console.log('sync done.')
      for (let i = 0; i < result.length; i++) {
          console.log('device=' + result[i][0] + ' status=' + result[i][1])
       }
  })
  ```


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

W
wuyongning 已提交
1515
 sync(mode: SyncMode, predicates: RdbPredicates): Promise&lt;Array&lt;[string, number]&gt;&gt;
S
sun-dou 已提交
1516 1517 1518

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

W
wuyongning 已提交
1519
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1520

S
sun-dou 已提交
1521 1522 1523 1524 1525 1526 1527 1528 1529
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | mode | SyncMode | 是 | 指同步模式。该值可以是推、拉。 |
  | predicates | RdbPredicates | 是 | 约束同步数据和设备。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
W
wuyongning 已提交
1530
  | Promise&lt;Array&lt;[string, number]&gt;&gt; | 指定Promise回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
S
sun-dou 已提交
1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548

- 示例:
  ```
  let predicate = new rdb.RdbPredicates('EMPLOYEE')
  predicate.inDevices(['12345678abcde'])
  let promise = rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicate)
  promise.then(result) {
      console.log('sync done.')
      for (let i = 0; i < result.length; i++) {
          console.log('device=' + result[i][0] + ' status=' + result[i][1])
      }
   }).catch((err) => {
       console.log('sync failed')
   })
  ```

### on

W
wuyongning 已提交
1549
on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
1550 1551 1552

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

W
wuyongning 已提交
1553
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1554

S
sun-dou 已提交
1555 1556 1557 1558
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | SubscribeType | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
W
wuyongning 已提交
1559
  | observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指分布式数据库中数据更改事件的观察者。 |
S
sun-dou 已提交
1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576

- 示例:
  ```
  function storeObserver(devices) {
      for (let i = 0; i < devices.length; i++) {
          console.log('device=' + device[i] + ' data changed')
       }
   }
   try {
       rdbStore.on('dataChange', rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
   } catch (err) {
       console.log('register observer failed')
   }
  ```

### off

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

从数据库中删除指定类型的指定观察者, 结果以callbck形式返回。

W
wuyongning 已提交
1581
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1582

S
sun-dou 已提交
1583 1584 1585 1586
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | SubscribeType | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
W
wuyongning 已提交
1587
  | observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指已注册的数据更改观察者。|
S
sun-dou 已提交
1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603

- 示例:
  ```
  function storeObserver(devices) {
      for (let i = 0; i < devices.length; i++) {
          console.log('device=' + device[i] + ' data changed')
      }
  }
  try {
      rdbStore.off('dataChange', rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
  } catch (err) {
      console.log('unregister observer failed')
  }
  ```


Z
zengyawen 已提交
1604
## StoreConfig
Z
zengyawen 已提交
1605 1606 1607

管理关系数据库配置。

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

Z
zengyawen 已提交
1610 1611 1612 1613 1614 1615
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库文件名。 |


## ValueType
Z
zengyawen 已提交
1616 1617 1618

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

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

Z
zengyawen 已提交
1621 1622 1623 1624
| 名称 | 说明 |
| -------- | -------- |
| number | 表示值类型为数字。 |
| string | 表示值类型为字符。 |
1625
| boolean | 表示值类型为布尔值。|
Z
zengyawen 已提交
1626 1627 1628


## ValuesBucket
Z
zengyawen 已提交
1629 1630 1631

用于存储键值对。

W
wuyongning 已提交
1632
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
1633

Z
zengyawen 已提交
1634 1635 1636
| 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| [key:&nbsp;string] | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | 是 | 用于存储键值对。 |
S
sun-dou 已提交
1637 1638


W
wuyongning 已提交
1639
## SyncMode<sup>8+</sup>
S
sun-dou 已提交
1640 1641 1642

指数据库同步模式。

W
wuyongning 已提交
1643
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
1644

W
wuyongning 已提交
1645 1646 1647 1648 1649 1650
| 名称       | 默认值 | 说明 |
| --------  | ----- |----- |
| SYNC_MODE_PUSH | 0 | 表示数据从本地设备推送到远程设备。 |
| SYNC_MODE_PULL | 1 | 表示数据从远程设备拉至本地设备。 |

## SubscribeType<sup>8+</sup>
S
sun-dou 已提交
1651 1652 1653

描述订阅类型。

W
wuyongning 已提交
1654 1655 1656 1657 1658
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。

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