# DataAbilityHelper Module (JavaScript SDK APIs)
> **NOTE**
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```js
import featureAbility from "@ohos.ability.featureAbility";
```
## Usage
Import the following modules based on the actual situation before using the current module:
```
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataAbility'
import ohos_data_rdb from '@ohos.data.rdb'
```
## DataAbilityHelper.openFile
openFile(uri: string, mode: string, callback: AsyncCallback\): void
Opens a file with a specified URI. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ---------------------- | ---- | ---------------------------------- |
| uri | string | Yes | URI of the file to open. |
| mode | string | Yes | Mode for opening the file. The value can be **rwt**. |
| callback | AsyncCallback\ | Yes | Callback used to return the file descriptor.|
**Example**
```javascript
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
var mode = "rwt";
DAHelper.openFile(
"dataability:///com.example.DataAbility",
mode,
(err) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.openFile
openFile(uri: string, mode: string): Promise\
Opens a file with a specified URI. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name| Type | Mandatory| Description |
| ---- | ------ | ---- | ------------------------ |
| uri | string | Yes | URI of the file to open.|
| mode | string | Yes | Mode for opening the file. The value can be **rwt**. |
**Return value**
| Type | Description |
| ---------------- | ---------------- |
| Promise\ | Promise used to return the file descriptor.|
**Example**
```javascript
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
var mode = "rwt";
DAHelper.openFile(
"dataability:///com.example.DataAbility",
mode).then((data) => {
console.info("==========================>openFileCallback=======================>");
});
```
## DataAbilityHelper.on
on(type: 'dataChange', uri: string, callback: AsyncCallback\): void
Registers an observer to observe data specified by a given URI. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | -------------------- | ---- | ------------------------ |
| type | string | Yes | Type of the event to observe. The value is **dataChange**. |
| uri | string | Yes | URI of the data.|
| callback | AsyncCallback\ | Yes | Callback invoked when the data is changed. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var helper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
function onChangeNotify() {
console.info("==========================>onChangeNotify=======================>");
};
helper.on(
"dataChange",
"dataability:///com.example.DataAbility",
onChangeNotify
)
```
## DataAbilityHelper.off
off(type: 'dataChange', uri: string, callback?: AsyncCallback\): void
Unregisters the observer used to observe data specified by a given URI. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | -------------------- | ---- | ------------------------ |
| type | string | Yes | Type of the event to observe. The value is **dataChange**. |
| uri | string | Yes | URI of the data.|
| callback | AsyncCallback\ | No | Callback used to return the result. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var helper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
function onChangeNotify() {
console.info("==========================>onChangeNotify=======================>");
};
helper.off(
"dataChange",
"dataability:///com.example.DataAbility",
)
helper.off(
"dataChange",
"dataability:///com.example.DataAbility",
onChangeNotify
)
```
## DataAbilityHelper.getType
getType(uri: string, callback: AsyncCallback\): void
Obtains the MIME type of the data specified by a given URI. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ---------------------- | ---- | --------------------------------------------- |
| uri | string | Yes | URI of the data. |
| callback | AsyncCallback\ | Yes | Callback used to return the MIME type.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.getType(
"dataability:///com.example.DataAbility",
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.getType
getType(uri: string): Promise\
Obtains the MIME type of the data specified by a given URI. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name| Type | Mandatory| Description |
| ---- | ------ | ---- | ------------------------ |
| uri | string | Yes | URI of the data.|
**Return value**
| Type | Description |
| ---------------- | ----------------------------------- |
| Promise\ | Promise used to return the MIME type.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.getType(
"dataability:///com.example.DataAbility"
).then((data) => {
console.info("==========================>getTypeCallback=======================>");
});
```
## DataAbilityHelper.getFileTypes
getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback>): void
Obtains the supported MIME types of a specified file. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------------- | ------------------------------ | ---- | ---------------------------------- |
| uri | string | Yes | URI of the file. |
| mimeTypeFilter | string | Yes | MIME type of the file. |
| callback | AsyncCallback\> | Yes | Callback used to return the supported MIME types.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.getFileTypes(
"dataability:///com.example.DataAbility",
"image/*",
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.getFileTypes
getFileTypes(uri: string, mimeTypeFilter: string): Promise\>
Obtains the supported MIME types of a specified file. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------------- | ------ | ---- | ---------------------------- |
| uri | string | Yes | URI of the file. |
| mimeTypeFilter | string | Yes | MIME type of the file.|
**Return value**
| Type | Description |
| ------------------------ | ------------------------ |
| Promise\> | Promise used to return the supported MIME types.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.getFileTypes(
"dataability:///com.example.DataAbility",
"image/*"
).then((data) => {
console.info("==========================>getFileTypesCallback=======================>");
});
```
## DataAbilityHelper.normalizeUri
normalizeUri(uri: string, callback: AsyncCallback\): void
Converts the URI that refers to a Data ability into a normalized URI. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
| uri | string | Yes | URI object to normalize. |
| callback | AsyncCallback\ | Yes | Callback used to return the normalized URI object if the Data ability supports URI normalization. If the Data ability does not support URI normalization, **null** is returned.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.normalizeUri(
"dataability:///com.example.DataAbility",
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.normalizeUri
normalizeUri(uri: string): Promise\
Converts the URI that refers to a Data ability into a normalized URI. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name| Type | Mandatory| Description |
| ---- | ------ | ---- | ----------------------- |
| uri | string | Yes | URI object to normalize.|
**Return value**
| Type | Description |
| ---------------- | ------------------------------------------------------ |
| Promise\ | Promise used to return the normalized URI object if the Data ability supports URI normalization. If the Data ability does not support URI normalization, **null** is returned.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.normalizeUri(
"dataability:///com.example.DataAbility",
).then((data) => {
console.info("==========================>normalizeUriCallback=======================>");
});
```
## DataAbilityHelper.denormalizeUri
denormalizeUri(uri: string, callback: AsyncCallback\): void
Converts a normalized URI generated by **DataAbilityHelper.normalizeUri(uri: string, callback: AsyncCallback\)** to a denormalized one. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ---------------------- | ---- | --------------------------------------------------- |
| uri | string | Yes | URI object to normalize. |
| callback | AsyncCallback\ | Yes | Callback used to return the denormalized URI object.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.denormalizeUri(
"dataability:///com.example.DataAbility",
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.denormalizeUri
denormalizeUri(uri: string): Promise\
Converts a normalized URI generated by **DataAbilityHelper.normalizeUri(uri: string)** to a denormalized one. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name| Type | Mandatory| Description |
| ---- | ------ | ---- | ----------------------- |
| uri | string | Yes | URI object to normalize.|
**Return value**
| Type | Description |
| ---------------- | ----------------------------------------- |
| Promise\ | Promise used to return the denormalized URI object.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.denormalizeUri(
"dataability:///com.example.DataAbility",
).then((data) => {
console.info("==========================>denormalizeUriCallback=======================>");
});
```
## DataAbilityHelper.notifyChange
notifyChange(uri: string, callback: AsyncCallback\): void
Notifies the registered observer of a change to the data specified by the URI. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | -------------------- | ---- | ------------------------ |
| uri | string | Yes | URI of the data.|
| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var helper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
helper.notifyChange(
"dataability:///com.example.DataAbility",
(err) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.notifyChange
notifyChange(uri: string): Promise\
Notifies the registered observer of a change to the data specified by the URI. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name| Type | Mandatory| Description |
| ---- | ------ | ---- | ------------------------ |
| uri | string | Yes | URI of the data.|
**Return value**
| Type | Description |
| -------------- | --------------------- |
| Promise\ | Promise used to return the result.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
DAHelper.notifyChange(
"dataability:///com.example.DataAbility",
).then(() => {
console.info("==========================>notifyChangeCallback=======================>");
});
```
## DataAbilityHelper.insert
insert(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback\): void
Inserts a single data record into the database. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | ---------------------- | ---- | ------------------------------------------------------ |
| uri | string | Yes | URI of the data to insert. |
| valuesBucket | rdb.ValuesBucket | Yes | Data record to insert. If this parameter is **null**, a blank row will be inserted.|
| callback | AsyncCallback\ | Yes | Callback used to return the index of the inserted data record. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
const valueBucket = {
"name": "rose",
"age": 22,
"salary": 200.5,
"blobType": "u8",
}
DAHelper.insert(
"dataability:///com.example.DataAbility",
valueBucket,
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.insert
insert(uri: string, valuesBucket: rdb.ValuesBucket): Promise\
Inserts a single data record into the database. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | ---------------- | ---- | ------------------------------------------------------ |
| uri | string | Yes | URI of the data to insert. |
| valuesBucket | rdb.ValuesBucket | Yes | Data record to insert. If this parameter is **null**, a blank row will be inserted.|
**Return value**
| Type | Description |
| ---------------- | ------------------------ |
| Promise\ | Promise used to return the index of the inserted data record.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
const valueBucket = {
"name": "rose1",
"age": 221,
"salary": 20.5,
"blobType": "u8",
}
DAHelper.insert(
"dataability:///com.example.DataAbility",
valueBucket
).then((data) => {
console.info("==========================>insertCallback=======================>");
});
```
## DataAbilityHelper.batchInsert
batchInsert(uri: string, valuesBuckets: Array, callback: AsyncCallback\): void
Inserts multiple data records into the database. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | ----------------------- | ---- | -------------------------------- |
| uri | string | Yes | URI of the data to insert. |
| valuesBucket | Array | Yes | Data records to insert. |
| callback | AsyncCallback\ | Yes | Callback used to return the number of inserted data records.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": "u8",},
{"name": "roe12", "age": 21, "salary": 20.5, "blobType": "u8",},
{"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",})
DAHelper.batchInsert(
"dataability:///com.example.DataAbility",
cars,
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.batchInsert
batchInsert(uri: string, valuesBuckets: Array): Promise\
Inserts multiple data records into the database. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | ----------------------- | ---- | ------------------------ |
| uri | string | Yes | URI of the data to insert.|
| valuesBucket | Array | Yes | Data record to insert. |
**Return value**
| Type | Description |
| ---------------- | ---------------------- |
| Promise\ | Promise used to return the number of inserted data records.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": "u8",},
{"name": "roe12", "age": 21, "salary": 20.5, "blobType": "u8",},
{"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",})
DAHelper.batchInsert(
"dataability:///com.example.DataAbility",
cars
).then((data) => {
console.info("==========================>batchInsertCallback=======================>");
});
```
## DataAbilityHelper.delete
delete(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\): void
Deletes one or more data records from the database. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the data to delete. |
| valuesBucket | dataAbility.DataAbilityPredicates | Yes | Filter criteria. You should define the processing logic when this parameter is **null**.|
| callback | AsyncCallback\ | Yes | Callback used to return the number of deleted data records. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.delete(
"dataability:///com.example.DataAbility",
da,
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.delete
delete(uri: string, predicates: dataAbility.DataAbilityPredicates): Promise\
Deletes one or more data records from the database. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the data to delete. |
| valuesBucket | dataAbility.DataAbilityPredicates | Yes | Filter criteria. You should define the processing logic when this parameter is **null**.|
**Return value**
| Type | Description |
| ---------------- | ------------------------ |
| Promise\ | Promise used to return the number of deleted data records.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.delete(
"dataability:///com.example.DataAbility",
da
).then((data) => {
console.info("==========================>deleteCallback=======================>");
});
```
## DataAbilityHelper.update
update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\): void
Updates data records in the database. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the data to update. |
| valuesBucket | rdb.ValuesBucket | Yes | New values. |
| predicates | dataAbility.DataAbilityPredicates | Yes | Filter criteria. You should define the processing logic when this parameter is **null**.|
| callback | AsyncCallback\ | Yes | Callback used to return the number of updated data records. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
const va = {
"name": "roe1",
"age": 21,
"salary": 20.5,
"blobType": "u8",
}
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.update(
"dataability:///com.example.DataAbility",
va,
da,
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.update
update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates): Promise\
Updates data records in the database. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ------------ | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the data to update. |
| valuesBucket | rdb.ValuesBucket | Yes | New values. |
| predicates | dataAbility.DataAbilityPredicates | Yes | Filter criteria. You should define the processing logic when this parameter is **null**.|
**Return value**
| Type | Description |
| ---------------- | -------------------------------------------- |
| Promise\ | Promise used to return the number of updated data records. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
const va = {
"name": "roe1",
"age": 21,
"salary": 20.5,
"blobType": "u8",
}
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.update(
"dataability:///com.example.DataAbility",
va,
da
).then((data) => {
console.info("==========================>updateCallback=======================>");
});
```
## DataAbilityHelper.query
query(uri: string, columns: Array\, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback\): void
Queries data in the database. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the data to query. |
| columns | rdb.ValuesBucket | Yes | Columns to query. If this parameter is **null**, all columns will be queried. |
| predicates | dataAbility.DataAbilityPredicates | Yes | Filter criteria. You should define the processing logic when this parameter is **null**.|
| callback | AsyncCallback\ | Yes | Callback used to return the data queried. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
var cars=new Array("value1", "value2", "value3", "value4");
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.query(
"dataability:///com.example.DataAbility",
cars,
da,
(err, data) => {
console.info("==========================>Called=======================>");
});
```
## DataAbilityHelper.query
query(uri: string, columns: Array\, predicates: dataAbility.DataAbilityPredicates): Promise\
Queries data in the database. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the data to query. |
| columns | rdb.ValuesBucket | Yes | Columns to query. If this parameter is **null**, all columns will be queried. |
| predicates | dataAbility.DataAbilityPredicates | Yes | Filter criteria. You should define the processing logic when this parameter is **null**.|
**Return value**
| Type | Description |
| ------------------- | -------------- |
| Promise\ | Promise used to return the data queried.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility"
);
var cars=new Array("value1", "value2", "value3", "value4");
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.query(
"dataability:///com.example.DataAbility",
cars,
da
).then((data) => {
console.info("==========================>queryCallback=======================>");
});
```
## DataAbilityHelper.call
call(uri: string, method: string, arg: string, extras: PacMap): Promise
Calls the extended API of the Data ability. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx" |
| method | string | Yes | Name of the API to call. |
| arg | string | Yes |Parameter to pass. |
| extras | [PacMap](#pacmap) | Yes | Key-value pair parameter. |
**Return value**
| Type| Description|
|------ | ------- |
|Promise<[PacMap](#pacmap)> | Promise used to return the result.|
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility';
let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility");
dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", "method", "arg", {"key1":"value1"}).then((data) => {
console.info('Operation succeeded: ' + data);
}).catch((error) => {
console.error('Operation failed. Cause: ' + error);
});
```
## DataAbilityHelper.call
call(uri: string, method: string, arg: string, extras: PacMap, callback: AsyncCallback): void
Calls the extended API of the Data ability. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel
**Parameters**
| Name | Type | Mandatory| Description |
| ---------- | --------------------------------- | ---- | ------------------------------------------------ |
| uri | string | Yes | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx" |
| method | string | Yes | Name of the API to call. |
| arg | string | Yes |Parameter to pass. |
| extras | [PacMap](#pacmap) | Yes | Key-value pair parameter. |
| callback | AsyncCallback<[PacMap](#pacmap)> | Yes| Callback used to return the result. |
**Example**
```js
import featureAbility from '@ohos.ability.featureAbility';
let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility");
dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", "method", "arg", {"key1":"value1"}, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + err);
return;
}
console.info('Operation succeeded: ' + data);
});
```
## PacMap
| Name| Type| Mandatory| Description|
| ------ | ------ | ------ | ------ |
| [key: string] | number \| string \| boolean \| Array\ \| null | Yes| Data stored in key-value pairs.|