1# Accessing a DataAbility 2<!--Kit: Ability Kit--> 3<!--Subsystem: Ability--> 4<!--Owner: @xialiangwei--> 5<!--Designer: @jsjzju--> 6<!--Tester: @lixueqing513--> 7<!--Adviser: @huipeizi--> 8<!--deprecated_code_no_check--> 9 10To access a DataAbility, import the basic dependency packages and obtain the URI string for communicating with the DataAbility. 11 12 13The basic dependency packages include: 14 15 16- @ohos.ability.featureAbility 17 18- @ohos.data.dataAbility 19 20 21The sample code for accessing a DataAbility is as follows: 22 23 241. Create a DataAbilityHelper instance. 25 26 ```ts 27 import featureAbility from '@ohos.ability.featureAbility'; 28 import ohos_data_ability from '@ohos.data.dataAbility'; 29 import ability from '@ohos.ability.ability'; 30 // Different from the URI defined in the config.json file, the URI passed in the parameter has an extra slash (/), three slashes in total. 31 let uri: string = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 32 let DAHelper: ability.DataAbilityHelper = featureAbility.acquireDataAbilityHelper(uri); 33 ``` 34 352. Construct RDB data. 36 37 ```ts 38 import ohos_data_ability from '@ohos.data.dataAbility'; 39 import rdb from '@ohos.data.rdb'; 40 let valuesBucket_insert: rdb.ValuesBucket = { name: 'Rose', introduction: 'insert' }; 41 let valuesBucket_update: rdb.ValuesBucket = { name: 'Rose', introduction: 'update' }; 42 let crowd = new Array({ name: 'Rose', introduction: 'batchInsert_one' } as rdb.ValuesBucket, 43 { name: 'Rose', introduction: 'batchInsert_two' } as rdb.ValuesBucket); 44 let columnArray = new Array('id', 'name', 'introduction'); 45 let predicates = new ohos_data_ability.DataAbilityPredicates(); 46 ``` 47 48 For details about DataAbilityPredicates, see [DataAbility Predicates](../reference/apis-arkdata/js-apis-data-ability.md). 49 503. Use **insert** to insert data to the DataAbility. 51 52 ```ts 53 import ability from '@ohos.ability.ability'; 54 import featureAbility from '@ohos.ability.featureAbility'; 55 import { BusinessError } from '@ohos.base'; 56 import ohos_data_ability from '@ohos.data.dataAbility'; 57 import rdb from '@ohos.data.rdb'; 58 import promptAction from '@ohos.promptAction'; 59 import hilog from '@ohos.hilog'; 60 61 const TAG: string = 'PageDataAbility'; 62 63 // Callback mode: 64 const domain: number = 0xFF00; 65 66 @Entry 67 @Component 68 struct PageDataAbility { 69 private valuesBucket_insert: rdb.ValuesBucket = { name: 'Rose', introduction: 'insert' }; 70 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 71 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 72 73 build() { 74 Column() { 75 // ... 76 List({ initialIndex: 0 }) { 77 // ... 78 ListItemGroup() { 79 ListItem() { 80 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 81 // ... 82 } 83 .onClick(() => { 84 // Callback mode: 85 this.DAHelper.insert(this.uri, this.valuesBucket_insert, (error: BusinessError, data: number) => { 86 if (error && error.code !== 0) { 87 promptAction.showToast({ 88 message: 'insert_failed_toast' 89 }); 90 } else { 91 promptAction.showToast({ 92 message: 'insert_success_toast' 93 }); 94 } 95 hilog.info(domain, TAG, 'DAHelper insert result: ' + data + ', error: ' + JSON.stringify(error)); 96 } 97 ); 98 }) 99 } 100 // ... 101 } 102 // ... 103 } 104 // ... 105 } 106 // ... 107 } 108 } 109 ``` 110 111 112 ```ts 113 import ability from '@ohos.ability.ability'; 114 import featureAbility from '@ohos.ability.featureAbility'; 115 import { BusinessError } from '@ohos.base'; 116 import ohos_data_ability from '@ohos.data.dataAbility'; 117 import rdb from '@ohos.data.rdb'; 118 import promptAction from '@ohos.promptAction'; 119 import hilog from '@ohos.hilog'; 120 121 const TAG: string = 'PageDataAbility'; 122 const domain: number = 0xFF00; 123 124 @Entry 125 @Component 126 struct PageDataAbility { 127 private valuesBucket_insert: rdb.ValuesBucket = { name: 'Rose', introduction: 'insert' }; 128 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 129 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 130 131 build() { 132 Column() { 133 // ... 134 List({ initialIndex: 0 }) { 135 // ... 136 ListItemGroup() { 137 ListItem() { 138 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 139 // ... 140 } 141 .onClick(() => { 142 // Promise mode (await needs to be used in the asynchronous method): 143 this.DAHelper.insert(this.uri, this.valuesBucket_insert).then((datainsert) => { 144 promptAction.showToast({ 145 message: 'insert_success_toast' 146 }); 147 hilog.info(domain, TAG, 'DAHelper insert result: ' + datainsert); 148 }).catch((error: BusinessError) => { 149 promptAction.showToast({ 150 message: 'insert_failed_toast' 151 }); 152 hilog.error(domain, TAG, `DAHelper insert failed. Cause: ${error.message}`); 153 }); 154 }) 155 } 156 // ... 157 } 158 // ... 159 } 160 // ... 161 } 162 // ... 163 } 164 } 165 ``` 166 1674. Use **delete** to delete data from the DataAbility. 168 169 ```ts 170 import ability from '@ohos.ability.ability'; 171 import featureAbility from '@ohos.ability.featureAbility'; 172 import { BusinessError } from '@ohos.base'; 173 import ohos_data_ability from '@ohos.data.dataAbility'; 174 import rdb from '@ohos.data.rdb'; 175 import promptAction from '@ohos.promptAction'; 176 import hilog from '@ohos.hilog'; 177 178 const TAG: string = 'PageDataAbility'; 179 const domain: number = 0xFF00; 180 181 @Entry 182 @Component 183 struct PageDataAbility { 184 private predicates = new ohos_data_ability.DataAbilityPredicates(); 185 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 186 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 187 188 build() { 189 Column() { 190 // ... 191 List({ initialIndex: 0 }) { 192 // ... 193 ListItemGroup() { 194 ListItem() { 195 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 196 // ... 197 } 198 .onClick(() => { 199 // Callback mode: 200 this.DAHelper.delete(this.uri, this.predicates, (error, data) => { 201 if (error && error.code !== 0) { 202 promptAction.showToast({ 203 message: 'delete_failed_toast' 204 }); 205 } else { 206 promptAction.showToast({ 207 message: 'delete_success_toast' 208 }); 209 } 210 hilog.info(domain, TAG, 'DAHelper delete result: ' + data + ', error: ' + JSON.stringify(error)); 211 } 212 ); 213 }) 214 } 215 // ... 216 } 217 // ... 218 } 219 // ... 220 } 221 // ... 222 } 223 } 224 ``` 225 226 227 ```ts 228 import ability from '@ohos.ability.ability'; 229 import featureAbility from '@ohos.ability.featureAbility'; 230 import { BusinessError } from '@ohos.base'; 231 import ohos_data_ability from '@ohos.data.dataAbility'; 232 import rdb from '@ohos.data.rdb'; 233 import promptAction from '@ohos.promptAction'; 234 import hilog from '@ohos.hilog'; 235 236 const TAG: string = 'PageDataAbility'; 237 const domain: number = 0xFF00; 238 239 @Entry 240 @Component 241 struct PageDataAbility { 242 private predicates = new ohos_data_ability.DataAbilityPredicates(); 243 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 244 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 245 246 build() { 247 Column() { 248 // ... 249 List({ initialIndex: 0 }) { 250 // ... 251 ListItemGroup() { 252 ListItem() { 253 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 254 // ... 255 } 256 .onClick(() => { 257 // Promise mode (await needs to be used in the asynchronous method): 258 this.DAHelper.delete(this.uri, this.predicates).then((datadelete) => { 259 promptAction.showToast({ 260 message: 'delete_success_toast' 261 }); 262 hilog.info(domain, TAG, 'DAHelper delete result: ' + datadelete); 263 }).catch((error: BusinessError) => { 264 promptAction.showToast({ 265 message: 'delete_failed_toast' 266 }); 267 hilog.error(domain, TAG, `DAHelper delete failed. Cause: ${error.message}`); 268 }); 269 }) 270 } 271 // ... 272 } 273 // ... 274 } 275 // ... 276 } 277 // ... 278 } 279 } 280 ``` 281 2825. Use **update** to update data in the DataAbility. 283 284 ```ts 285 import ability from '@ohos.ability.ability'; 286 import featureAbility from '@ohos.ability.featureAbility'; 287 import { BusinessError } from '@ohos.base'; 288 import ohos_data_ability from '@ohos.data.dataAbility'; 289 import rdb from '@ohos.data.rdb'; 290 import promptAction from '@ohos.promptAction'; 291 import hilog from '@ohos.hilog'; 292 293 const TAG: string = 'PageDataAbility'; 294 const domain: number = 0xFF00; 295 296 @Entry 297 @Component 298 struct PageDataAbility { 299 private valuesBucket_update: rdb.ValuesBucket = { name: 'Rose', introduction: 'update' }; 300 private predicates = new ohos_data_ability.DataAbilityPredicates(); 301 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 302 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 303 304 build() { 305 Column() { 306 // ... 307 List({ initialIndex: 0 }) { 308 // ... 309 ListItemGroup() { 310 ListItem() { 311 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 312 // ... 313 } 314 .onClick(() => { 315 // Callback mode: 316 this.predicates.equalTo('name', 'Rose'); 317 this.DAHelper.update(this.uri, this.valuesBucket_update, this.predicates, (error, data) => { 318 if (error && error.code !== 0) { 319 promptAction.showToast({ 320 message: 'update_failed_toast' 321 }); 322 } else { 323 promptAction.showToast({ 324 message: 'update_success_toast' 325 }); 326 } 327 hilog.info(domain, TAG, 'DAHelper update result: ' + data + ', error: ' + JSON.stringify(error)); 328 } 329 ); 330 }) 331 } 332 // ... 333 } 334 // ... 335 } 336 // ... 337 } 338 // ... 339 } 340 } 341 ``` 342 343 344 ```ts 345 import ability from '@ohos.ability.ability'; 346 import featureAbility from '@ohos.ability.featureAbility'; 347 import { BusinessError } from '@ohos.base'; 348 import ohos_data_ability from '@ohos.data.dataAbility'; 349 import rdb from '@ohos.data.rdb'; 350 import promptAction from '@ohos.promptAction'; 351 import hilog from '@ohos.hilog'; 352 353 const TAG: string = 'PageDataAbility'; 354 const domain: number = 0xFF00; 355 356 @Entry 357 @Component 358 struct PageDataAbility { 359 private valuesBucket_update: rdb.ValuesBucket = { name: 'Rose', introduction: 'update' }; 360 private predicates = new ohos_data_ability.DataAbilityPredicates(); 361 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 362 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 363 364 build() { 365 Column() { 366 // ... 367 List({ initialIndex: 0 }) { 368 // ... 369 ListItemGroup() { 370 ListItem() { 371 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 372 // ... 373 } 374 .onClick(() => { 375 // Promise mode (await needs to be used in the asynchronous method): 376 this.predicates.equalTo('name', 'Rose'); 377 this.DAHelper.update(this.uri, this.valuesBucket_update, this.predicates).then((dataupdate) => { 378 promptAction.showToast({ 379 message: 'update_success_toast' 380 }); 381 hilog.info(domain, TAG, 'DAHelper update result: ' + dataupdate); 382 }).catch((error: BusinessError) => { 383 promptAction.showToast({ 384 message: 'update_failed_toast' 385 }); 386 hilog.error(domain, TAG, `DAHelper update failed. Cause: ${error.message}`); 387 }); 388 }) 389 } 390 // ... 391 } 392 // ... 393 } 394 // ... 395 } 396 // ... 397 } 398 } 399 ``` 400 4016. Use **query** to query data in the DataAbility. 402 403 ```ts 404 import ability from '@ohos.ability.ability'; 405 import featureAbility from '@ohos.ability.featureAbility'; 406 import { BusinessError } from '@ohos.base'; 407 import ohos_data_ability from '@ohos.data.dataAbility'; 408 import rdb from '@ohos.data.rdb'; 409 import promptAction from '@ohos.promptAction'; 410 import hilog from '@ohos.hilog'; 411 412 const TAG: string = 'PageDataAbility'; 413 const domain: number = 0xFF00; 414 415 @Entry 416 @Component 417 struct PageDataAbility { 418 private columnArray = new Array('id', 'name', 'introduction'); 419 private predicates = new ohos_data_ability.DataAbilityPredicates(); 420 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 421 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 422 423 build() { 424 Column() { 425 // ... 426 List({ initialIndex: 0 }) { 427 // ... 428 ListItemGroup() { 429 ListItem() { 430 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 431 // ... 432 } 433 .onClick(() => { 434 // Callback mode: 435 this.predicates.equalTo('name', 'Rose'); 436 this.DAHelper.query(this.uri, this.columnArray, this.predicates, (error, data) => { 437 if (error && error.code !== 0) { 438 promptAction.showToast({ 439 message: 'query_failed_toast' 440 }); 441 hilog.error(domain, TAG, `DAHelper query failed. Cause: ${error.message}`); 442 } else { 443 promptAction.showToast({ 444 message: 'query_success_toast' 445 }); 446 } 447 // ResultSet is a cursor of a data set. By default, the cursor points to the -1st record. Valid data starts from 0. 448 while (data.goToNextRow()) { 449 const id = data.getLong(data.getColumnIndex('id')); 450 const name = data.getString(data.getColumnIndex('name')); 451 const introduction = data.getString(data.getColumnIndex('introduction')); 452 hilog.info(domain, TAG, `DAHelper query result:id = [${id}], name = [${name}], introduction = [${introduction}]`); 453 } 454 // Release the data set memory. 455 data.close(); 456 } 457 ); 458 }) 459 } 460 // ... 461 } 462 // ... 463 } 464 // ... 465 } 466 // ... 467 } 468 } 469 ``` 470 471 472 ```ts 473 import ability from '@ohos.ability.ability'; 474 import featureAbility from '@ohos.ability.featureAbility'; 475 import { BusinessError } from '@ohos.base'; 476 import ohos_data_ability from '@ohos.data.dataAbility'; 477 import rdb from '@ohos.data.rdb'; 478 import promptAction from '@ohos.promptAction'; 479 import hilog from '@ohos.hilog'; 480 481 const TAG: string = 'PageDataAbility'; 482 const domain: number = 0xFF00; 483 484 @Entry 485 @Component 486 struct PageDataAbility { 487 private columnArray = new Array('id', 'name', 'introduction'); 488 private predicates = new ohos_data_ability.DataAbilityPredicates(); 489 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 490 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 491 492 build() { 493 Column() { 494 // ... 495 List({ initialIndex: 0 }) { 496 // ... 497 ListItemGroup() { 498 ListItem() { 499 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 500 // ... 501 } 502 .onClick(() => { 503 // Promise mode (await needs to be used in the asynchronous method): 504 this.predicates.equalTo('name', 'Rose'); 505 this.DAHelper.query(this.uri, this.columnArray, this.predicates).then((dataquery) => { 506 promptAction.showToast({ 507 message: 'query_success_toast' 508 }); 509 // ResultSet is a cursor of a data set. By default, the cursor points to the -1st record. Valid data starts from 0. 510 while (dataquery.goToNextRow()) { 511 const id = dataquery.getLong(dataquery.getColumnIndex('id')); 512 const name = dataquery.getString(dataquery.getColumnIndex('name')); 513 const introduction = dataquery.getString(dataquery.getColumnIndex('introduction')); 514 hilog.info(domain, TAG, `DAHelper query result:id = [${id}], name = [${name}], introduction = [${introduction}]`); 515 } 516 // Release the data set memory. 517 dataquery.close(); 518 }).catch((error: BusinessError) => { 519 promptAction.showToast({ 520 message: 'query_failed_toast' 521 }); 522 hilog.error(domain, TAG, `DAHelper query failed. Cause: ${error.message}`); 523 }); 524 }) 525 } 526 // ... 527 } 528 // ... 529 } 530 // ... 531 } 532 // ... 533 } 534 } 535 ``` 536 5377. Use **batchInsert** to insert data in batches to the DataAbility. 538 539 ```ts 540 import ability from '@ohos.ability.ability'; 541 import featureAbility from '@ohos.ability.featureAbility'; 542 import { BusinessError } from '@ohos.base'; 543 import ohos_data_ability from '@ohos.data.dataAbility'; 544 import rdb from '@ohos.data.rdb'; 545 import promptAction from '@ohos.promptAction'; 546 import hilog from '@ohos.hilog'; 547 548 const TAG: string = 'PageDataAbility'; 549 const domain: number = 0xFF00; 550 551 @Entry 552 @Component 553 struct PageDataAbility { 554 private crowd = new Array({ name: 'Rose', introduction: 'batchInsert_one' } as rdb.ValuesBucket, 555 { name: 'Rose', introduction: 'batchInsert_two' } as rdb.ValuesBucket); 556 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 557 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 558 559 build() { 560 Column() { 561 // ... 562 List({ initialIndex: 0 }) { 563 // ... 564 ListItemGroup() { 565 ListItem() { 566 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 567 // ... 568 } 569 .onClick(() => { 570 // Callback mode: 571 this.DAHelper.batchInsert(this.uri, this.crowd, (error, data) => { 572 if (error && error.code !== 0) { 573 promptAction.showToast({ 574 message: 'batchInsert_failed_toast' 575 }); 576 } else { 577 promptAction.showToast({ 578 message: 'batchInsert_success_toast' 579 }); 580 } 581 hilog.info(domain, TAG, 'DAHelper batchInsert result: ' + data + ', error: ' + JSON.stringify(error)); 582 } 583 ); 584 }) 585 } 586 // ... 587 } 588 // ... 589 } 590 // ... 591 } 592 // ... 593 } 594 } 595 ``` 596 597 598 ```ts 599 import ability from '@ohos.ability.ability'; 600 import featureAbility from '@ohos.ability.featureAbility'; 601 import { BusinessError } from '@ohos.base'; 602 import ohos_data_ability from '@ohos.data.dataAbility'; 603 import rdb from '@ohos.data.rdb'; 604 import promptAction from '@ohos.promptAction'; 605 import hilog from '@ohos.hilog'; 606 607 const TAG: string = 'PageDataAbility'; 608 const domain: number = 0xFF00; 609 610 @Entry 611 @Component 612 struct PageDataAbility { 613 private crowd = new Array({ name: 'Rose', introduction: 'batchInsert_one' } as rdb.ValuesBucket, 614 { name: 'Rose', introduction: 'batchInsert_two' } as rdb.ValuesBucket); 615 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 616 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 617 618 build() { 619 Column() { 620 // ... 621 List({ initialIndex: 0 }) { 622 // ... 623 ListItemGroup() { 624 ListItem() { 625 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 626 // ... 627 } 628 .onClick(() => { 629 // Promise mode (await needs to be used in the asynchronous method): 630 this.DAHelper.batchInsert(this.uri, this.crowd).then((databatchInsert) => { 631 promptAction.showToast({ 632 message: 'batchInsert_success_toast' 633 }); 634 hilog.info(domain, TAG, 'DAHelper batchInsert result: ' + databatchInsert); 635 }).catch((error: BusinessError) => { 636 promptAction.showToast({ 637 message: 'batchInsert_failed_toast' 638 }); 639 hilog.error(domain, TAG, `DAHelper batchInsert failed. Cause: ${error.message}`); 640 }); 641 }) 642 } 643 // ... 644 } 645 // ... 646 } 647 // ... 648 } 649 // ... 650 } 651 } 652 ``` 653 6548. Use **executeBatch** to process data in batches in the DataAbility. 655 656 ```ts 657 import ability from '@ohos.ability.ability'; 658 import featureAbility from '@ohos.ability.featureAbility'; 659 import { BusinessError } from '@ohos.base'; 660 import ohos_data_ability from '@ohos.data.dataAbility'; 661 import rdb from '@ohos.data.rdb'; 662 import promptAction from '@ohos.promptAction'; 663 import hilog from '@ohos.hilog'; 664 665 const TAG: string = 'PageDataAbility'; 666 const domain: number = 0xFF00; 667 668 @Entry 669 @Component 670 struct PageDataAbility { 671 private predicates = new ohos_data_ability.DataAbilityPredicates(); 672 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 673 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 674 675 build() { 676 Column() { 677 // ... 678 List({ initialIndex: 0 }) { 679 // ... 680 ListItemGroup() { 681 ListItem() { 682 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 683 // ... 684 } 685 .onClick(() => { 686 // Callback mode: 687 let operations: Array<ability.DataAbilityOperation> = [{ 688 uri: this.uri, 689 type: featureAbility.DataAbilityOperationType.TYPE_INSERT, 690 valuesBucket: { name: 'Rose', introduction: 'executeBatch' }, 691 predicates: this.predicates, 692 expectedCount: 0, 693 predicatesBackReferences: undefined, 694 interrupted: true, 695 }]; 696 this.DAHelper.executeBatch(this.uri, operations, (error, data) => { 697 if (error && error.code !== 0) { 698 promptAction.showToast({ 699 message: 'executeBatch_failed_toast' 700 }); 701 } else { 702 promptAction.showToast({ 703 message: 'executeBatch_success_toast' 704 }); 705 } 706 hilog.info(domain, TAG, `DAHelper executeBatch, result: ` + JSON.stringify(data) + ', error: ' + JSON.stringify(error)); 707 }); 708 }) 709 } 710 // ... 711 } 712 // ... 713 } 714 // ... 715 } 716 // ... 717 } 718 } 719 ``` 720 721 722 ```ts 723 import ability from '@ohos.ability.ability'; 724 import featureAbility from '@ohos.ability.featureAbility'; 725 import { BusinessError } from '@ohos.base'; 726 import ohos_data_ability from '@ohos.data.dataAbility'; 727 import rdb from '@ohos.data.rdb'; 728 import promptAction from '@ohos.promptAction'; 729 import hilog from '@ohos.hilog'; 730 731 const TAG: string = 'PageDataAbility'; 732 const domain: number = 0xFF00; 733 734 @Entry 735 @Component 736 struct PageDataAbility { 737 private predicates = new ohos_data_ability.DataAbilityPredicates(); 738 private uri = 'dataability:///com.samples.famodelabilitydevelop.DataAbility'; 739 private DAHelper = featureAbility.acquireDataAbilityHelper(this.uri); 740 741 build() { 742 Column() { 743 // ... 744 List({ initialIndex: 0 }) { 745 // ... 746 ListItemGroup() { 747 ListItem() { 748 Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { 749 // ... 750 } 751 .onClick(() => { 752 // Promise mode (await needs to be used in the asynchronous method): 753 let operations: Array<ability.DataAbilityOperation> = [{ 754 uri: this.uri, 755 type: featureAbility.DataAbilityOperationType.TYPE_INSERT, 756 valuesBucket: { name: 'Rose', introduction: 'executeBatch' }, 757 predicates: this.predicates, 758 expectedCount: 0, 759 predicatesBackReferences: undefined, 760 interrupted: true, 761 }]; 762 this.DAHelper.executeBatch(this.uri, operations).then((dataquery) => { 763 promptAction.showToast({ 764 message: 'executeBatch_success_toast' 765 }); 766 hilog.info(domain, TAG, 'DAHelper executeBatch result: ' + JSON.stringify(dataquery)); 767 }).catch((error: BusinessError) => { 768 promptAction.showToast({ 769 message: 'executeBatch_failed_toast' 770 }); 771 hilog.error(domain, TAG, `DAHelper executeBatch failed. Cause: ${error.message}`); 772 }); 773 }) 774 } 775 // ... 776 } 777 // ... 778 } 779 // ... 780 } 781 // ... 782 } 783 } 784 ``` 785 786 787The APIs for operating a DataAbility are provided by **DataAbilityHelper**. For details about the APIs, see [DataAbilityHelper](../reference/apis-ability-kit/js-apis-inner-ability-dataAbilityHelper.md). 788