js-apis-data-rdb.md 50.7 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
  示例一:Stage or FA 模式
34 35 36 37 38 39 40
  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)
W
wuyongning 已提交
41
          console.info('create table done.')
42 43
      })
  }
44 45 46 47 48 49 50 51
  示例二:FA Only模式
  import data_rdb from '@ohos.data.rdb'
  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(STORE_CONFIG, 1, function (err, rdbStore) {
      rdbStore.executeSql(SQL_CREATE_TABLE)
      console.info('create table done.')
  })
Z
zengyawen 已提交
52 53
  ```

P
PaDoBoo 已提交
54
## data_rdb.getRdbStore
Z
zengyawen 已提交
55

W
wuyongning 已提交
56
getRdbStore(context?: Context, config: StoreConfig, version: number): Promise&lt;RdbStore&gt;
Z
zengyawen 已提交
57 58 59

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

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

Z
zengyawen 已提交
62 63 64
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
65
  | context<sup>8+</sup> | Context | 否 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
66 67 68 69 70 71 72 73 74 75
  | config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
  | version | number | 是 | 数据库版本。 |

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

- 示例:
  ```
76
  示例一:Stage or FA 模式
77 78 79 80 81
  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)"
W
wuyongning 已提交
82 83 84 85 86 87 88 89
      let promisegetRdb = data_rdb.getRdbStore(this.context, STORE_CONFIG, 1);
      promisegetRdb.then(async (rdbStore) => {
          let promiseExecSql = rdbStore.executeSql(SQL_CREATE_TABLE, null)
          promiseExecSql.then(() => {
              console.info('executeSql creat done.')
          }).catch((err) => {
              console.log("executeSql creat err.")
          })
90
      }).catch((err) => {
W
wuyongning 已提交
91
          console.log("getRdbStore err.")
92 93
      })
  }
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
  示例二:FA Only模式
  import data_rdb from '@ohos.data.rdb'
  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 promisegetRdb = data_rdb.getRdbStore(STORE_CONFIG, 1);
  promisegetRdb.then(async (rdbStore) => {
      let promiseExecSql = rdbStore.executeSql(SQL_CREATE_TABLE, null)
      promiseExecSql.then(() => {
          console.info('executeSql creat done.')
      }).catch((err) => {
          console.log("executeSql creat err.")
      })
  }).catch((err) => {
      console.log("getRdbStore err.")
  })
Z
zengyawen 已提交
109 110
  ```

P
PaDoBoo 已提交
111
## data_rdb.deleteRdbStore
Z
zengyawen 已提交
112

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

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

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

Z
zengyawen 已提交
119 120 121
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
122
  | context<sup>8+</sup> | Context | 否 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
123 124 125 126 127
  | name | string | 是 | 数据库名称。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。如果数据库已删除,则为true;否则返回false。 |

- 示例:
  ```
128
  示例一:Stage or FA 模式
129 130 131 132
  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) {
W
wuyongning 已提交
133 134
          console.info('delete store done.')
      })
135
  }
136 137 138 139 140
  示例二:FA Only模式
  import data_rdb from '@ohos.data.rdb'
  data_rdb.deleteRdbStore("RdbTest.db", function (err, rdbStore) {
      console.info('delete store done.')
  })
Z
zengyawen 已提交
141 142
  ```

P
PaDoBoo 已提交
143
## data_rdb.deleteRdbStore
Z
zengyawen 已提交
144

W
wuyongning 已提交
145
deleteRdbStore(context?: Context, name: string): Promise&lt;void&gt;
Z
zengyawen 已提交
146 147 148

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

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

Z
zengyawen 已提交
151 152 153
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
154
  | context<sup>8+</sup> | Context | 否 | 应用程序或功能的上下文 |
Z
zengyawen 已提交
155 156 157 158 159 160 161 162 163
  | name | string | 是 | 数据库名称。 |

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

- 示例:
  ```
164
  示例一:Stage or FA 模式
165 166 167
  import Ability from '@ohos.application.Ability'
  import data_rdb from '@ohos.data.rdb'
  export default class MainAbility extends Ability {
W
wuyongning 已提交
168 169 170 171 172
      let promisedeleteRdb = data_rdb.deleteRdbStore(this.context, "RdbTest.db")
      promisedeleteRdb.then(()=>{
          console.info('delete store done.')
      }).catch((err) => {
          console.log("deleteRdbStore err.")
173 174
      })
  }
175 176 177 178 179 180 181 182
  示例二:FA Only模式
  import data_rdb from '@ohos.data.rdb'
  let promisedeleteRdb = data_rdb.deleteRdbStore("RdbTest.db")
  promisedeleteRdb.then(()=>{
      console.info('delete store done.')
  }).catch((err) => {
      console.log("deleteRdbStore err.")
  })
Z
zengyawen 已提交
183 184 185
  ```

## RdbPredicates
Z
zengyawen 已提交
186 187 188 189

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


Z
zengyawen 已提交
190 191 192 193
### constructor

constructor(name: string)

Z
zengyawen 已提交
194 195 196

构造函数。

W
wuyongning 已提交
197
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
198 199 200 201 202 203 204 205

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

- 示例:
  ```
P
PaDoBoo 已提交
206
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
207 208
  ```

S
sun-dou 已提交
209 210
### inDevices

W
wuyongning 已提交
211
inDevices(devices: Array&lt;string&gt;): RdbPredicates
S
sun-dou 已提交
212 213 214 215


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

W
wuyongning 已提交
216
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
217 218 219 220

- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
221
  | devices | Array&lt;string&gt; | 是 | 指定的组网内的远程设备ID。 |
S
sun-dou 已提交
222 223 224 225 226 227 228 229 230 231 232 233

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

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

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

W
wuyongning 已提交
236
inAllDevices(): RdbPredicates
S
sun-dou 已提交
237 238 239 240


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

W
wuyongning 已提交
241
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
242 243 244 245 246 247 248 249 250 251 252

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

- 示例:
  ```
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
  predicates.inAllDevices()
  ```
Z
zengyawen 已提交
253 254 255 256 257

### equalTo

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

Z
zengyawen 已提交
258 259 260

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

W
wuyongning 已提交
261
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
262 263 264 265 266 267 268 269 270 271 272 273 274 275

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

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

- 示例:
  ```
P
PaDoBoo 已提交
276
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
277 278 279 280 281 282 283 284
  predicates.equalTo("NAME", "lisi")
  ```


### notEqualTo

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

Z
zengyawen 已提交
285 286 287

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

W
wuyongning 已提交
288
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
289 290 291 292 293 294 295 296 297 298 299 300 301 302

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

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

- 示例:
  ```
P
PaDoBoo 已提交
303
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
304 305 306 307 308 309 310 311
  predicates.notEqualTo("NAME", "lisi")
  ```


### beginWrap

beginWrap(): RdbPredicates

Z
zengyawen 已提交
312 313 314

向谓词添加左括号。

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

Z
zengyawen 已提交
317 318 319 320
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回带有左括号的Rdb谓词。 |
Z
zengyawen 已提交
321

Z
zengyawen 已提交
322 323
- 示例:
  ```
P
PaDoBoo 已提交
324
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
325 326 327 328 329 330 331
  predicates.equalTo("NAME", "lisi")
      .beginWrap()
      .equalTo("AGE", 18)
      .or()
      .equalTo("SALARY", 200.5)
      .endWrap()
  ```
Z
zengyawen 已提交
332 333


Z
zengyawen 已提交
334
### endWrap
Z
zengyawen 已提交
335

Z
zengyawen 已提交
336
endWrap(): RdbPredicates
Z
zengyawen 已提交
337 338 339 340


向谓词添加右括号。

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

Z
zengyawen 已提交
343 344 345 346
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回带有右括号的Rdb谓词。 |
Z
zengyawen 已提交
347

Z
zengyawen 已提交
348 349
- 示例:
  ```
P
PaDoBoo 已提交
350
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
351 352 353 354 355 356 357
  predicates.equalTo("NAME", "lisi")
      .beginWrap()
      .equalTo("AGE", 18)
      .or()
      .equalTo("SALARY", 200.5)
      .endWrap()
  ```
Z
zengyawen 已提交
358 359


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

Z
zengyawen 已提交
362
or(): RdbPredicates
Z
zengyawen 已提交
363 364 365 366


将或条件添加到谓词中。

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

Z
zengyawen 已提交
369 370 371 372
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回带有或条件的Rdb谓词。 |
Z
zengyawen 已提交
373

Z
zengyawen 已提交
374 375
- 示例:
  ```
P
PaDoBoo 已提交
376
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
377 378 379 380
  predicates.equalTo("NAME", "Lisa")
      .or()
      .equalTo("NAME", "Rose")
  ```
Z
zengyawen 已提交
381 382


Z
zengyawen 已提交
383
### and
Z
zengyawen 已提交
384

Z
zengyawen 已提交
385
and(): RdbPredicates
Z
zengyawen 已提交
386 387 388 389


向谓词添加和条件。

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

Z
zengyawen 已提交
392 393 394 395
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回带有和条件的Rdb谓词。 |
Z
zengyawen 已提交
396

Z
zengyawen 已提交
397 398
- 示例:
  ```
P
PaDoBoo 已提交
399
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
400 401 402 403
  predicates.equalTo("NAME", "Lisa")
      .and()
      .equalTo("SALARY", 200.5)
  ```
Z
zengyawen 已提交
404 405


Z
zengyawen 已提交
406
### contains
Z
zengyawen 已提交
407

W
wuyongning 已提交
408
contains(field: string, value: string): RdbPredicates
Z
zengyawen 已提交
409 410 411

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

W
wuyongning 已提交
412
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
413 414 415 416 417 418 419 420 421 422 423 424 425 426

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

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

- 示例:
  ```
P
PaDoBoo 已提交
427
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
428 429 430 431 432 433 434 435
  predicates.contains("NAME", "os")
  ```


### beginsWith

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

Z
zengyawen 已提交
436 437 438

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

W
wuyongning 已提交
439
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
440 441 442 443 444 445 446 447 448 449 450 451 452 453

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

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

- 示例:
  ```
P
PaDoBoo 已提交
454
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
455 456 457 458 459 460 461 462
  predicates.beginsWith("NAME", "os")
  ```


### endsWith

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

Z
zengyawen 已提交
463 464 465

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

W
wuyongning 已提交
466
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
467 468 469 470 471 472 473 474 475 476 477 478 479 480

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

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

- 示例:
  ```
P
PaDoBoo 已提交
481
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
482 483 484 485 486 487 488 489
  predicates.endsWith("NAME", "se")
  ```


### isNull

isNull(field: string): RdbPredicates

Z
zengyawen 已提交
490 491 492

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

W
wuyongning 已提交
493
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
494 495 496 497 498 499 500 501 502 503 504 505 506

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

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

- 示例
  ```
P
PaDoBoo 已提交
507
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
508 509 510 511 512 513 514 515
  predicates.isNull("NAME")
  ```


### isNotNull

isNotNull(field: string): RdbPredicates

Z
zengyawen 已提交
516 517 518

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

W
wuyongning 已提交
519
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
520 521 522 523 524 525 526 527 528 529 530 531 532

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

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

- 示例:
  ```
P
PaDoBoo 已提交
533
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
534 535 536 537 538 539 540 541
  predicates.isNotNull("NAME")
  ```


### like

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

Z
zengyawen 已提交
542 543 544

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

W
wuyongning 已提交
545
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
546 547 548 549 550 551 552 553 554 555 556 557 558 559

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

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

- 示例:
  ```
P
PaDoBoo 已提交
560
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
561 562 563 564 565 566 567 568
  predicates.like("NAME", "%os%")
  ```


### glob

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

Z
zengyawen 已提交
569 570 571

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

W
wuyongning 已提交
572
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
573 574 575 576 577

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

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

- 示例:
  ```
P
PaDoBoo 已提交
587
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
588 589 590 591 592 593 594 595
  predicates.glob("NAME", "?h*g")
  ```


### between

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

Z
zengyawen 已提交
596 597 598

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

W
wuyongning 已提交
599
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
600 601 602 603 604 605 606 607 608 609 610 611 612 613 614

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

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

- 示例:
  ```
P
PaDoBoo 已提交
615
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
616 617 618 619 620 621 622 623
  predicates.between("AGE", 10, 50)
  ```


### notBetween

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

Z
zengyawen 已提交
624 625 626

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

W
wuyongning 已提交
627
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
628 629 630 631 632 633 634 635 636 637 638 639 640 641 642

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

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

- 示例:
  ```
P
PaDoBoo 已提交
643
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
644 645 646 647 648 649
  predicates.notBetween("AGE", 10, 50)
  ```


### greaterThan

W
wuyongning 已提交
650
greaterThan(field: string, value: ValueType): RdbPredicates
Z
zengyawen 已提交
651 652 653

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

W
wuyongning 已提交
654
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
655 656 657 658 659 660 661 662 663 664 665 666 667 668

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

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

- 示例:
  ```
P
PaDoBoo 已提交
669
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
670 671 672 673 674 675 676 677
  predicates.greaterThan("AGE", 18)
  ```


### lessThan

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

Z
zengyawen 已提交
678 679 680

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

W
wuyongning 已提交
681
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
682 683 684 685 686 687 688 689 690 691 692 693 694 695

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

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

- 示例:
  ```
P
PaDoBoo 已提交
696
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
697 698 699 700 701 702 703 704 705
  predicates.lessThan("AGE", 20)
  ```


### greaterThanOrEqualTo


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

Z
zengyawen 已提交
706 707 708

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

W
wuyongning 已提交
709
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
710 711 712 713 714 715 716 717 718 719 720 721 722 723

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

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

- 示例:
  ```
P
PaDoBoo 已提交
724
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
725 726 727 728 729 730 731 732 733
  predicates.greaterThanOrEqualTo("AGE", 18)
  ```


### lessThanOrEqualTo


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

Z
zengyawen 已提交
734 735 736

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

W
wuyongning 已提交
737
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
738 739 740 741 742 743 744 745 746 747 748 749 750 751

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

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

- 示例:
  ```
P
PaDoBoo 已提交
752
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
753 754 755 756 757 758 759 760 761
  predicates.lessThanOrEqualTo("AGE", 20)
  ```


### orderByAsc


orderByAsc(field: string): RdbPredicates

Z
zengyawen 已提交
762 763 764

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

W
wuyongning 已提交
765
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
766 767 768 769 770 771 772 773 774 775 776 777 778

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

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

- 示例:
  ```
P
PaDoBoo 已提交
779
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
780 781 782 783 784 785 786 787 788
  predicates.orderByAsc("NAME")
  ```


### orderByDesc


orderByDesc(field: string): RdbPredicates

Z
zengyawen 已提交
789 790 791

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

W
wuyongning 已提交
792
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
793 794 795 796 797 798 799 800 801 802 803 804 805

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

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

- 示例:
  ```
P
PaDoBoo 已提交
806
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
807 808 809 810 811 812 813 814
  predicates.orderByDesc("AGE")
  ```


### distinct

distinct(): RdbPredicates

Z
zengyawen 已提交
815 816 817

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

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

Z
zengyawen 已提交
820 821 822 823
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [RdbPredicates](#rdbpredicates) | 返回可用于过滤重复记录的谓词。 |
Z
zengyawen 已提交
824

Z
zengyawen 已提交
825 826
- 示例:
  ```
P
PaDoBoo 已提交
827
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
828
  predicates.equalTo("NAME", "Rose").distinct("NAME")
W
wuyongning 已提交
829 830 831 832 833 834 835
  let promisequery = rdbStore.query(predicates, ["NAME"])
  promisequery.then((resultSet) => {
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  }).catch((err) => {
      console.log("query err.")
  })
Z
zengyawen 已提交
836
  ```
Z
zengyawen 已提交
837 838


Z
zengyawen 已提交
839
### limitAs
Z
zengyawen 已提交
840

Z
zengyawen 已提交
841
limitAs(value: number): RdbPredicates
Z
zengyawen 已提交
842 843 844 845


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

W
wuyongning 已提交
846
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
847 848 849 850 851 852 853 854 855 856 857 858 859

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

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

- 示例:
  ```
P
PaDoBoo 已提交
860
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
861 862 863 864 865 866 867 868
  predicates.equalTo("NAME", "Rose").limitAs(3)
  ```


### offsetAs

offsetAs(rowOffset: number): RdbPredicates

Z
zengyawen 已提交
869 870 871

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

W
wuyongning 已提交
872
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
873 874 875 876 877 878 879 880 881 882 883 884 885

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

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

- 示例:
  ```
P
PaDoBoo 已提交
886
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
887 888 889 890 891 892 893 894
  predicates.equalTo("NAME", "Rose").offsetAs(3)
  ```


### groupBy

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

Z
zengyawen 已提交
895 896 897

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

W
wuyongning 已提交
898
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
899 900 901 902 903 904 905 906 907 908 909 910 911

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

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

- 示例:
  ```
P
PaDoBoo 已提交
912
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
913 914 915 916 917 918
  predicates.groupBy(["AGE", "NAME"])
  ```


### indexedBy

W
wuyongning 已提交
919
indexedBy(indexName: string): RdbPredicates
Z
zengyawen 已提交
920 921 922

配置RdbPredicates以指定索引列。

W
wuyongning 已提交
923
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
924 925 926 927 928 929 930 931 932 933 934 935 936

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

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

- 示例:
  ```
P
PaDoBoo 已提交
937
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
938 939 940 941 942 943 944 945
  predicates.indexedBy("SALARY_INDEX")
  ```


### in

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

Z
zengyawen 已提交
946 947 948

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

W
wuyongning 已提交
949
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
950 951 952 953 954 955 956 957 958 959 960 961 962 963 964

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


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

- 示例:
  ```
P
PaDoBoo 已提交
965
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
966 967 968 969 970 971 972 973
  predicates.in("AGE", [18, 20])
  ```


### notIn

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

Z
zengyawen 已提交
974 975 976

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

W
wuyongning 已提交
977
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
978 979 980 981 982 983 984 985 986 987 988 989 990 991 992

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


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

- 示例:
  ```
P
PaDoBoo 已提交
993
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
994 995 996 997 998 999 1000 1001 1002 1003 1004 1005
  predicates.notIn("NAME", ["Lisa", "Rose"])
  ```


## RdbStore

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


### insert

insert(name: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1006 1007 1008

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

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

Z
zengyawen 已提交
1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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) {
W
wuyongning 已提交
1027 1028
      console.log("insert first done: " + ret)
  })
Z
zengyawen 已提交
1029 1030 1031 1032 1033 1034
  ```


### insert

insert(name: string, values: ValuesBucket):Promise&lt;number&gt;
Z
zengyawen 已提交
1035 1036 1037

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

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

Z
zengyawen 已提交
1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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]),
  }
W
wuyongning 已提交
1059 1060 1061 1062 1063 1064
  let promiseinsert = rdbStore.insert("EMPLOYEE", valueBucket)
  promiseinsert.then(async (ret) => {
      console.log("insert first done: " + ret)
  }).catch((err) => {
      console.log("insert err.")
  })
Z
zengyawen 已提交
1065 1066 1067 1068 1069 1070
  ```


### update

update(values: ValuesBucket, rdbPredicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1071 1072 1073

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

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

Z
zengyawen 已提交
1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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 已提交
1091
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1092 1093
  predicates.equalTo("NAME", "Lisa")
  rdbStore.update(valueBucket, predicates, function (err, ret) {
W
wuyongning 已提交
1094
      console.log("updated row count: " + changedRows)})
Z
zengyawen 已提交
1095 1096 1097 1098 1099 1100
  ```


### update

update(values: ValuesBucket, rdbPredicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1101 1102 1103

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

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

Z
zengyawen 已提交
1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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 已提交
1125
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1126
  predicates.equalTo("NAME", "Lisa")
W
wuyongning 已提交
1127 1128 1129 1130 1131 1132
  let promiseupdate = rdbStore.update(valueBucket, predicates)
  promiseupdate.then(async (ret) => {
       console.log("updated row count: " + changedRows)
  }).catch((err) => {
      console.log("update err.")
  })
Z
zengyawen 已提交
1133 1134 1135 1136 1137 1138 1139
  ```


### delete

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

Z
zengyawen 已提交
1140 1141 1142

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

W
wuyongning 已提交
1143
**系统能力**:SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
1144 1145 1146 1147 1148 1149 1150 1151 1152

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

- 示例:
  ```
P
PaDoBoo 已提交
1153
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1154 1155
  predicates.equalTo("NAME", "Lisa")
  rdbStore.delete(predicates, function (err, rows) {
W
wuyongning 已提交
1156 1157
      console.log("delete rows: " + rows)
  })
Z
zengyawen 已提交
1158 1159 1160 1161 1162 1163
  ```


### delete

delete(rdbPredicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1164 1165 1166

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

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

Z
zengyawen 已提交
1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |

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

- 示例:
  ```
W
wuyongning 已提交
1181 1182 1183 1184 1185 1186 1187 1188
  let predicatesdelete = new data_rdb.RdbPredicates("EMPLOYEE")
  predicatesdelete.equalTo("NAME", "Lisa")
  let promisedelete = rdbStore.delete(predicates)
  promisedelete.then((rows) => {
      console.log("delete rows: " + rows)
  }).catch((err) => {
      console.log("delete err.")
  })
Z
zengyawen 已提交
1189 1190 1191 1192 1193 1194
  ```


### query

query(rdbPredicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
Z
zengyawen 已提交
1195 1196 1197

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

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

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

- 示例:
  ```
P
PaDoBoo 已提交
1209
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1210 1211
  predicates.equalTo("NAME", "Rose")
  rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
W
wuyongning 已提交
1212 1213 1214
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  })
Z
zengyawen 已提交
1215 1216 1217 1218 1219
  ```


### query

M
mangtsang 已提交
1220
query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
Z
zengyawen 已提交
1221 1222 1223

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

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

Z
zengyawen 已提交
1226 1227 1228 1229
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示rdbPredicates的实例对象指定的查询条件。 |
M
mangtsang 已提交
1230
  | columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
Z
zengyawen 已提交
1231 1232 1233 1234

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

- 示例:
  ```
P
PaDoBoo 已提交
1239
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1240
  predicates.equalTo("NAME", "Rose")
W
wuyongning 已提交
1241 1242 1243 1244 1245 1246 1247
  let promisequery = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
  promisequery.then((resultSet) => {
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  }).catch((err) => {
      console.log("query err.")
  })
Z
zengyawen 已提交
1248 1249 1250
  ```


M
mangtsang 已提交
1251 1252 1253 1254 1255 1256
### querySql<sup>8+</sup>

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

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

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

M
mangtsang 已提交
1259 1260 1261 1262 1263 1264 1265 1266 1267 1268
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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) {
W
wuyongning 已提交
1269 1270 1271
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  })
M
mangtsang 已提交
1272 1273 1274 1275 1276 1277 1278 1279 1280
  ```


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

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

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

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

M
mangtsang 已提交
1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | sql | string | 是 | 指定要执行的SQL语句。 |
  | bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |

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

- 示例:
  ```
W
wuyongning 已提交
1296 1297 1298 1299 1300 1301 1302
  let promisequerySql = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
  promisequerySql.then((resultSet) => {
      console.log("resultSet column names:" + resultSet.columnNames)
      console.log("resultSet column count:" + resultSet.columnCount)
  }).catch((err) => {
      console.log("querySql err.")
  })
M
mangtsang 已提交
1303 1304 1305
  ```


Z
zengyawen 已提交
1306 1307 1308
### executeSql

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

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

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

Z
zengyawen 已提交
1314 1315 1316 1317 1318 1319 1320 1321 1322
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | sql | string | 是 | 指定要执行的SQL语句。 |
  | bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |

- 示例:
  ```
M
mangtsang 已提交
1323
  rdbStore.executeSql("DELETE FROM EMPLOYEE", null, function () {
W
wuyongning 已提交
1324 1325
      console.info('delete done.')
  })
Z
zengyawen 已提交
1326 1327 1328 1329 1330
  ```


### executeSql

M
mangtsang 已提交
1331
executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt;
Z
zengyawen 已提交
1332 1333 1334

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

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

Z
zengyawen 已提交
1337 1338 1339 1340
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | sql | string | 是 | 指定要执行的SQL语句。 |
M
mangtsang 已提交
1341
  | bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
Z
zengyawen 已提交
1342 1343 1344 1345 1346 1347 1348 1349

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

- 示例:
  ```
W
wuyongning 已提交
1350 1351 1352 1353 1354 1355
  let promiseexecuteSql = rdbStore.executeSql("DELETE FROM EMPLOYEE")
  promiseexecuteSql.then(() => {
      console.info('delete done.')
  }).catch((err) => {
      console.log("executeSql err.")
  })
Z
zengyawen 已提交
1356
  ```
S
sun-dou 已提交
1357

W
wuyongning 已提交
1358 1359 1360 1361 1362 1363
### beginTransaction<sup>8+</sup>

beginTransaction():void

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

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

W
wuyongning 已提交
1366 1367 1368 1369 1370 1371 1372 1373 1374 1375
- 示例:
```
  rdbStore.beginTransaction()
  const valueBucket = {
      "name": "lisi",
      "age": 18,
      "salary": 100.5,
      "blobType": new Uint8Array([1, 2, 3]),
  }
  rdbStore.insert("test", valueBucket, function (err, ret) {
W
wuyongning 已提交
1376 1377
      console.log("insert done: " + ret)
  })
W
wuyongning 已提交
1378 1379 1380 1381 1382 1383 1384 1385 1386 1387
  rdbStore.commit()
```


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

commit():void

提交已执行的SQL语句。

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

W
wuyongning 已提交
1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400
- 示例:
```
  rdbStore.beginTransaction()
  const valueBucket = {
      "name": "lisi",
      "age": 18,
      "salary": 100.5,
      "blobType": new Uint8Array([1, 2, 3]),
  }

  rdbStore.insert("test", valueBucket, function (err, ret) {
W
wuyongning 已提交
1401 1402
      console.log("insert done: " + ret)
  })
W
wuyongning 已提交
1403 1404 1405 1406 1407 1408 1409 1410 1411 1412
  rdbStore.commit()
```


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

rollBack():void;

回滚已经执行的SQL语句。

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

W
wuyongning 已提交
1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425
- 示例:
```
  try {
      rdbStore.beginTransaction()
      const valueBucket = {
          "id": 1,
          "name": "lisi",
          "age": 18,
          "salary": 100.5,
          "blobType": new Uint8Array([1, 2, 3]),
      }
W
wuyongning 已提交
1426 1427 1428 1429
      rdbStore.insert("test", valueBucket, function (err, ret) {
          console.log("insert done: " + ret)
      })
      rdbStore.commit()
W
wuyongning 已提交
1430 1431 1432 1433 1434 1435
  } catch (e) {
      rdbStore.rollBack()
  }
```


S
sun-dou 已提交
1436 1437
### setDistributedTables

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

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

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

S
sun-dou 已提交
1444 1445 1446
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1447
  | tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名 |
S
sun-dou 已提交
1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463
  | 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 已提交
1464
 setDistributedTables(tables: Array&lt;string&gt;): Promise&lt;void&gt;
S
sun-dou 已提交
1465 1466 1467

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

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

S
sun-dou 已提交
1470 1471 1472
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1473
  | tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名。 |
S
sun-dou 已提交
1474 1475 1476 1477 1478 1479 1480 1481

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

- 示例:
  ```
W
wuyongning 已提交
1482 1483
  let promiseset = rdbStore.setDistributedTables(["EMPLOYEE"])
  promiseset.then(() => {
S
sun-dou 已提交
1484 1485
      console.info("setDistributedTables success.")
  }).catch((err) => {
W
wuyongning 已提交
1486
      console.info("setDistributedTables failed.")
S
sun-dou 已提交
1487 1488 1489 1490 1491
  })
  ```

### obtainDistributedTableName

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

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

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

S
sun-dou 已提交
1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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 已提交
1519
 obtainDistributedTableName(device: string, table: string): Promise&lt;string&gt;
S
sun-dou 已提交
1520 1521 1522

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

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

S
sun-dou 已提交
1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | device | string | 是 | 远程设备。 |
  | table | string | 是 | 本地表名。 |

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

- 示例:
  ```
W
wuyongning 已提交
1538 1539
  let promiseDistr = rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE")
  promiseDistr.then((tableName) => {
S
sun-dou 已提交
1540 1541 1542 1543 1544 1545
      console.info('obtainDistributedTableName success, tableName=' + tableName)
  }).catch((err) => {
      console.info('obtainDistributedTableName failed.')
  })
  ```

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

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

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

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

S
sun-dou 已提交
1554 1555 1556 1557 1558
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | mode | SyncMode | 是 | 指同步模式。该值可以是推、拉。 |
  | predicates | RdbPredicates | 是 | 约束同步数据和设备。 |
W
wuyongning 已提交
1559
  | callback | AsyncCallback&lt;Array&lt;[string, number]&gt;&gt; | 是 | 指定的callback回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。|
S
sun-dou 已提交
1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577

- 示例:
  ```
  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 已提交
1578
### sync<sup>8+</sup>
S
sun-dou 已提交
1579

W
wuyongning 已提交
1580
 sync(mode: SyncMode, predicates: RdbPredicates): Promise&lt;Array&lt;[string, number]&gt;&gt;
S
sun-dou 已提交
1581 1582 1583

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

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

S
sun-dou 已提交
1586 1587 1588 1589 1590 1591 1592 1593 1594
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | mode | SyncMode | 是 | 指同步模式。该值可以是推、拉。 |
  | predicates | RdbPredicates | 是 | 约束同步数据和设备。 |

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

- 示例:
  ```
W
wuyongning 已提交
1599 1600 1601 1602
  let predicatesync = new rdb.RdbPredicates('EMPLOYEE')
  predicatesync.inDevices(['12345678abcde'])
  let promisesync = rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicatesync)
  promisesync.then((result) {
S
sun-dou 已提交
1603 1604 1605 1606
      console.log('sync done.')
      for (let i = 0; i < result.length; i++) {
          console.log('device=' + result[i][0] + ' status=' + result[i][1])
      }
W
wuyongning 已提交
1607 1608 1609
  }).catch((err) => {
      console.log('sync failed')
  })
S
sun-dou 已提交
1610 1611 1612 1613
  ```

### on

W
wuyongning 已提交
1614
on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
1615 1616 1617

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

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

S
sun-dou 已提交
1620 1621 1622 1623
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | SubscribeType | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
W
wuyongning 已提交
1624
  | observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指分布式数据库中数据更改事件的观察者。 |
S
sun-dou 已提交
1625 1626 1627 1628 1629 1630

- 示例:
  ```
  function storeObserver(devices) {
      for (let i = 0; i < devices.length; i++) {
          console.log('device=' + device[i] + ' data changed')
W
wuyongning 已提交
1631 1632 1633 1634 1635 1636 1637
      }
  }
  try {
      rdbStore.on('dataChange', rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
  } catch (err) {
      console.log('register observer failed')
  }
S
sun-dou 已提交
1638 1639 1640 1641
  ```

### off

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

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

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

S
sun-dou 已提交
1648 1649 1650 1651
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | SubscribeType | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
W
wuyongning 已提交
1652
  | observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指已注册的数据更改观察者。|
S
sun-dou 已提交
1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668

- 示例:
  ```
  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 已提交
1669
## StoreConfig
Z
zengyawen 已提交
1670 1671 1672

管理关系数据库配置。

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

Z
zengyawen 已提交
1675 1676 1677 1678 1679 1680
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库文件名。 |


## ValueType
Z
zengyawen 已提交
1681 1682 1683

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

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

Z
zengyawen 已提交
1686 1687 1688 1689
| 名称 | 说明 |
| -------- | -------- |
| number | 表示值类型为数字。 |
| string | 表示值类型为字符。 |
1690
| boolean | 表示值类型为布尔值。|
Z
zengyawen 已提交
1691 1692 1693


## ValuesBucket
Z
zengyawen 已提交
1694 1695 1696

用于存储键值对。

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

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


W
wuyongning 已提交
1704
## SyncMode<sup>8+</sup>
S
sun-dou 已提交
1705 1706 1707

指数据库同步模式。

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

W
wuyongning 已提交
1710 1711 1712 1713 1714 1715
| 名称       | 默认值 | 说明 |
| --------  | ----- |----- |
| SYNC_MODE_PUSH | 0 | 表示数据从本地设备推送到远程设备。 |
| SYNC_MODE_PULL | 1 | 表示数据从远程设备拉至本地设备。 |

## SubscribeType<sup>8+</sup>
S
sun-dou 已提交
1716 1717 1718

描述订阅类型。

W
wuyongning 已提交
1719 1720 1721 1722 1723
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。

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