@ohos.data.dataShareResultSet (数据共享结果集)

结果集(DataShareResultSet) 可提供访问由查询数据库生成的结果集的相关方法,根据提供的行数,查询相应的值,也可查询指定数据类型的值。

说明:

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口为系统接口。

本模块接口仅可在Stage模型下使用。

导入模块

import DataShareResultSet from '@ohos.data.DataShareResultSet';

使用说明

需要通过调用query接口获取DataShareResultSet对象。

import dataShare from '@ohos.data.dataShare';
import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';
import UIAbility from '@ohos.app.ability.UIAbility';

let dataShareHelper: dataShare.DataShareHelper | undefined = undefined;
let uri = ("datashare:///com.samples.datasharetest.DataShare");
let context = getContext(UIAbility);
dataShare.createDataShareHelper(context, uri, (err:BusinessError, data:dataShare.DataShareHelper) => {
  if (err != undefined) {
    console.error("createDataShareHelper fail, error message : " + err);
  } else {
    console.info("createDataShareHelper end, data : " + data);
    dataShareHelper = data;
  }
});

let columns = ["*"];
let da = new dataSharePredicates.DataSharePredicates();
let resultSet: DataShareResultSet | undefined = undefined;
da.equalTo("name", "ZhangSan");
if (dataShareHelper != undefined) {
  (dataShareHelper as dataShare.DataShareHelper).query(uri, da, columns).then((data: DataShareResultSet) => {
    console.info("query end, data : " + data);
    resultSet = data;
  }).catch((err: BusinessError) => {
    console.error("query fail, error message : " + err);
  });
}

DataShareResultSet

提供通过查询数据库生成的结果集的相关访问方法。

列或键名称作为字符串数组返回,其中字符串的顺序与结果集中的列或键的顺序相同。

属性

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

名称 类型 必填 说明
columnNames Array<string> 结果集中所有列的名称。
columnCount number 结果集中的列数。
rowCount number 结果集中的行数。
isClosed boolean 标识当前结果集是否关闭。

goToFirstRow

goToFirstRow(): boolean

转到结果集的第一行。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

返回值:

类型 说明
boolean 如果成功移动结果集,则为true;否则返回false。

示例:

// resultSet需依照本页的使用说明进行创建。
if (resultSet != undefined) {
  let isGoToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
  console.info('resultSet.goToFirstRow: ' + isGoToFirstRow);
}

goToLastRow

goToLastRow(): boolean

转到结果集的最后一行。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

返回值:

类型 说明
boolean 如果成功移动结果集,则为true;否则返回false。

示例:

if (resultSet != undefined) {
  let isGoToLastRow = (resultSet as DataShareResultSet).goToLastRow();
  console.info('resultSet.goToLastRow: ' + isGoToLastRow);
}

goToNextRow

goToNextRow(): boolean

转到结果集的下一行。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

返回值:

类型 说明
boolean 如果成功移动结果集,则为true;否则返回false。

示例:

if (resultSet != undefined) {
  let isGoToNextRow = (resultSet as DataShareResultSet).goToNextRow();
  console.info('resultSet.goToNextRow: ' + isGoToNextRow);
}

goToPreviousRow

goToPreviousRow(): boolean

转到结果集的上一行。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

返回值:

类型 说明
boolean 如果成功移动结果集,则为true;否则返回false。

示例:

if (resultSet != undefined) {
  let isGoToPreviousRow = (resultSet as DataShareResultSet).goToPreviousRow();
  console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
}

goTo

goTo(offset: number): boolean

相对于当前位置向前或向后移动指定行数。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
offset number 表示相对于当前位置的偏移量。offset为负值表示向前偏移,正值则表示向后偏移。

返回值:

类型 说明
boolean 如果成功移动结果集,则为true;否则返回false。

示例:

let goToNum = 1;
if (resultSet != undefined) {
  let isGoTo = (resultSet as DataShareResultSet).goTo(goToNum);
  console.info('resultSet.goTo: ' + isGoTo);
}

goToRow

goToRow(position: number): boolean

转到结果集的指定行。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
position number 表示要移动到的指定位置,从 0 开始。

返回值:

类型 说明
boolean 如果成功移动结果集,则为true;否则返回false。

示例:

let goToRowNum = 2;
if (resultSet != undefined) {
  let isGoToRow = (resultSet as DataShareResultSet).goToRow(goToRowNum);
  console.info('resultSet.goToRow: ' + isGoToRow);
}

getBlob

getBlob(columnIndex: number): Uint8Array

以字节数组的形式获取当前行中指定列的值。

如果当前行中指定的列或键的值为空,或者指定的列或键不是Blob类型,则使用方需要确定是否抛出此异常。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
columnIndex number 指定的列索引,从0开始。

返回值:

类型 说明
Uint8Array 以字节数组的形式返回指定列的值。

示例:

let columnIndex = 1;
if (resultSet != undefined) {
  let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
  let getBlob = (resultSet as DataShareResultSet).getBlob(columnIndex);
  console.info('resultSet.getBlob: ' + getBlob);
}

getString

getString(columnIndex: number): string

以字符串形式获取当前行中指定列的值。

如果当前行中指定的列或键的值为空,或者指定的列或键不是string类型,则使用方需要确定是否抛出此异常。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
columnIndex number 指定的列索引,从0开始。

返回值:

类型 说明
string 以字符串形式返回指定列的值。

示例:

let columnIndex = 1;
if (resultSet != undefined) {
  let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
  let getString = (resultSet as DataShareResultSet).getString(columnIndex);
  console.info('resultSet.getString: ' + getString);
}

getLong

getLong(columnIndex: number): number

以长整数值形式获取当前行中指定列的值。

如果当前行中指定的列或键的值为空,或者指定的列或键不是long类型,则使用方需要确定是否抛出此异常。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
columnIndex number 指定的列索引,从0开始。

返回值:

类型 说明
number 以长整数值形式返回指定列的值。

示例:

let columnIndex = 1;
if (resultSet != undefined) {
  let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
  let getLong = (resultSet as DataShareResultSet).getLong(columnIndex);
  console.info('resultSet.getLong: ' + getLong);
}

getDouble

getDouble(columnIndex: number): number

以值类型为双浮点数形式获取当前行中指定列的值。

如果当前行中指定的列或键的值为空,或者指定的列或键不是double类型,则使用方需要确定是否抛出此异常。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
columnIndex number 指定的列索引,从0开始。

返回值:

类型 说明
number 值类型为双浮点数形式返回指定列的值。

示例:

let columnIndex = 1;
if (resultSet != undefined) {
  let goToFirstRow = (resultSet as DataShareResultSet).goToFirstRow();
  let getDouble = (resultSet as DataShareResultSet).getDouble(columnIndex);
  console.info('resultSet.getDouble: ' + getDouble);
}

close

close(): void

关闭结果集。

对结果集调用此方法将释放其所有资源并使其无效。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

示例:

if (resultSet != undefined) {
  (resultSet as DataShareResultSet).close();
}

getColumnIndex

getColumnIndex(columnName: string): number

根据指定的列名获取列索引。

列名作为输入参数传递。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
columnName string 表示结果集中指定列的名称。

返回值:

类型 说明
number 返回指定列的索引。

示例:

let ColumnName = "name";
if (resultSet != undefined) {
  let getColumnIndex = (resultSet as DataShareResultSet).getColumnIndex(ColumnName);
  console.info('resultSet.getColumnIndex: ' + getColumnIndex);
}

getColumnName

getColumnName(columnIndex: number): string

根据指定的列索引获取列名。

列索引作为输入参数传递。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
columnIndex number 表示结果集中指定列的索引。

返回值:

类型 说明
string 返回指定列的名称。

示例:

let columnIndex = 1;
if (resultSet != undefined) {
  let getColumnName = (resultSet as DataShareResultSet).getColumnName(columnIndex);
  console.info('resultSet.getColumnName: ' + getColumnName);
}

getDataType

getDataType(columnIndex: number): DataType

指定列索引获取该列的数据类型。

如果当前行中指定的列或键的值为空,或者指定的列或键不是DataType类型,则使用方需要确定是否抛出此异常。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

参数:

参数名 类型 必填 说明
columnIndex number 表示结果集中指定列的索引。

返回值:

类型 说明
DataType 返回指定列的类型。

示例:

let columnIndex = 1;
if (resultSet != undefined) {
  let getDataType = (resultSet as DataShareResultSet).getDataType(columnIndex);
  console.info('resultSet.getDataType: ' + getDataType);
}

DataType

数据类型枚举。

系统能力: SystemCapability.DistributedDataManager.DataShare.Core

名称 说明
TYPE_NULL 0 表示值类型为空。
TYPE_LONG 1 表示值类型为长整数值。
TYPE_DOUBLE 2 表示值类型为双浮点数。
TYPE_STRING 3 表示值类型为字符串。
TYPE_BLOB 4 表示值类型为字节数组。