1# Accessing a DataAbility 2 3 4To access a DataAbility, import the basic dependency packages and obtain the URI string for communicating with the DataAbility. 5 6 7The basic dependency packages include: 8 9 10- @ohos.ability.featureAbility 11 12- @ohos.data.dataAbility 13 14- @ohos.data.relationalStore 15 16 17The sample code for accessing a DataAbility is as follows: 18 19 201. Create a **DataAbilityHelper** instance. 21 22 ```ts 23 // Different from the URI defined in the config.json file, the URI passed in the parameter has an extra slash (/), three slashes in total. 24 import featureAbility from '@ohos.ability.featureAbility' 25 import ohos_data_ability from '@ohos.data.dataAbility' 26 import relationalStore from '@ohos.data.relationalStore' 27 28 let urivar = "dataability:///com.ix.DataAbility" 29 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 30 ``` 31 322. Construct RDB data. 33 34 ```ts 35 import ohos_data_ability from '@ohos.data.dataAbility' 36 import rdb from '@ohos.data.rdb' 37 38 let valuesBucket: rdb.ValuesBucket = {"name": "gaolu"} 39 let da = new ohos_data_ability.DataAbilityPredicates() 40 let valArray = new Array("value1"); 41 let cars = new Array({"batchInsert1" : "value1",} as rdb.ValuesBucket); 42 ``` 43 44 For details about DataAbilityPredicates, see [DataAbility Predicates](../reference/apis/js-apis-data-ability.md). 45 463. Use **insert** to insert data to the DataAbility. 47 48 ```ts 49 import { BusinessError } from '@ohos.base'; 50 51 // Callback mode: 52 DAHelper.insert( 53 urivar, 54 valuesBucket, 55 (error: BusinessError, data: number) => { 56 console.info("DAHelper insert result: " + data) 57 } 58 ); 59 ``` 60 61 62 ```ts 63 import featureAbility from '@ohos.ability.featureAbility' 64 import { BusinessError } from '@ohos.base'; 65 66 let urivar = "dataability:///com.ix.DataAbility" 67 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 68 // Promise mode (await needs to be used in the asynchronous method): 69 let datainsert = await DAHelper.insert(urivar, valuesBucket).then((data) => { 70 console.info("insert success."); 71 }).catch((error: BusinessError) => { 72 console.error("insert failed."); 73 }); 74 ``` 75 764. Use **delete** to delete data from the DataAbility. 77 78 ```ts 79 import featureAbility from '@ohos.ability.featureAbility' 80 81 let urivar = "dataability:///com.ix.DataAbility" 82 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 83 // Callback mode: 84 DAHelper.delete( 85 urivar, 86 da, 87 (error, data) => { 88 console.info("DAHelper delete result: " + data) 89 } 90 ); 91 ``` 92 93 94 ```ts 95 import featureAbility from '@ohos.ability.featureAbility' 96 97 let urivar = "dataability:///com.ix.DataAbility" 98 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 99 // Promise mode (await needs to be used in the asynchronous method): 100 let datadelete = await DAHelper.delete( 101 urivar, 102 da, 103 ); 104 ``` 105 1065. Use **update** to update data in the DataAbility. 107 108 ```ts 109 import featureAbility from '@ohos.ability.featureAbility' 110 111 let urivar = "dataability:///com.ix.DataAbility" 112 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 113 // Callback mode: 114 DAHelper.update( 115 urivar, 116 valuesBucket, 117 da, 118 (error, data) => { 119 console.info("DAHelper update result: " + data) 120 } 121 ); 122 ``` 123 124 125 ```ts 126 import featureAbility from '@ohos.ability.featureAbility' 127 128 let urivar = "dataability:///com.ix.DataAbility" 129 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 130 // Promise mode (await needs to be used in the asynchronous method): 131 let dataupdate = await DAHelper.update( 132 urivar, 133 valuesBucket, 134 da, 135 ); 136 ``` 137 1386. Use **query** to query data in the DataAbility. 139 140 ```ts 141 import featureAbility from '@ohos.ability.featureAbility' 142 143 let urivar = "dataability:///com.ix.DataAbility" 144 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 145 // Callback mode: 146 DAHelper.query( 147 urivar, 148 valArray, 149 da, 150 (error, data) => { 151 console.info("DAHelper query result: " + data) 152 } 153 ); 154 ``` 155 156 157 ```ts 158 import featureAbility from '@ohos.ability.featureAbility' 159 160 let urivar = "dataability:///com.ix.DataAbility" 161 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 162 // Promise mode (await needs to be used in the asynchronous method): 163 let dataquery = await DAHelper.query( 164 urivar, 165 valArray, 166 da 167 ); 168 ``` 169 1707. Use **batchInsert** to insert data in batches to the DataAbility. 171 172 ```ts 173 import featureAbility from '@ohos.ability.featureAbility' 174 175 let urivar = "dataability:///com.ix.DataAbility" 176 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 177 // Callback mode: 178 DAHelper.batchInsert( 179 urivar, 180 cars, 181 (error, data) => { 182 console.info("DAHelper batchInsert result: " + data) 183 } 184 ); 185 ``` 186 187 188 ```ts 189 import featureAbility from '@ohos.ability.featureAbility' 190 191 let urivar = "dataability:///com.ix.DataAbility" 192 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 193 // Promise mode (await needs to be used in the asynchronous method): 194 let databatchInsert = await DAHelper.batchInsert( 195 urivar, 196 cars 197 ); 198 ``` 199 2008. Use **executeBatch** to process data in batches in the DataAbility. 201 202 ```ts 203 import featureAbility from '@ohos.ability.featureAbility' 204 205 let urivar = "dataability:///com.ix.DataAbility" 206 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 207 // Callback mode: 208 DAHelper.executeBatch( 209 urivar, 210 [ 211 { 212 uri: urivar, 213 type: featureAbility.DataAbilityOperationType.TYPE_INSERT, 214 valuesBucket: {"executeBatch" : "value1",}, 215 predicates: da, 216 expectedCount:0, 217 predicatesBackReferences: undefined, 218 interrupted:true, 219 } 220 ], 221 (error, data) => { 222 console.info("DAHelper executeBatch result: " + data) 223 } 224 ); 225 ``` 226 227 228 ```ts 229 import featureAbility from '@ohos.ability.featureAbility' 230 231 let urivar = "dataability:///com.ix.DataAbility" 232 let DAHelper = featureAbility.acquireDataAbilityHelper(urivar); 233 // Promise mode (await needs to be used in the asynchronous method): 234 let dataexecuteBatch = await DAHelper.executeBatch( 235 urivar, 236 [ 237 { 238 uri: urivar, 239 type: featureAbility.DataAbilityOperationType.TYPE_INSERT, 240 valuesBucket: 241 { 242 "executeBatch" : "value1", 243 }, 244 predicates: da, 245 expectedCount:0, 246 predicatesBackReferences: undefined, 247 interrupted:true, 248 } 249 ] 250 ); 251 ``` 252 253 254The APIs for operating a DataAbility are provided by **DataAbilityHelper**. For details about the APIs, see [DataAbilityHelper](../reference/apis/js-apis-inner-ability-dataAbilityHelper.md). 255