結果集
結果集是指用戶調用關系型數據庫查詢接口之后返回的結果集合,提供了多種靈活的數據訪問方式,以便用戶獲取各項數據。
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 7開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
使用說明
需要通過[RdbStore.query()]獲取resultSet對象。
import dataRdb from '@ohos.data.rdb';
let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("AGE", 18)
let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) = > {
console.log(TAG + "resultSet columnNames:" + resultSet.columnNames);
console.log(TAG + "resultSet columnCount:" + resultSet.columnCount);})
ResultSet
提供通過查詢數據庫生成的數據庫結果集的訪問方法。
屬性
系統能力: 以下各項對應的系統能力均為SystemCapability.DistributedDataManager.RelationalStore.Core。
| 名稱 | 參數類型 | 必填 | 說明 |
|---|---|---|---|
| columnNames | Array | 是 | 獲取結果集中所有列的名稱。 |
| columnCount | number | 是 | 獲取結果集中的列數。 |
| rowCount | number | 是 | 獲取結果集中的行數。 |
| rowIndex | number | 是 | 獲取結果集當前行的索引。 |
| isAtFirstRow | boolean | 是 | 檢查結果集是否位于第一行。 |
| isAtLastRow | boolean | 是 | 檢查結果集是否位于最后一行。 |
| isEnded | boolean | 是 | 檢查結果集是否位于最后一行之后。 |
| isStarted | boolean | 是 | 檢查指針是否移動過。 |
| isClosed | boolean | 是 | 檢查當前結果集是否關閉。 |
getColumnIndex
getColumnIndex(columnName: string): number
根據指定的列名獲取列索引。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| columnName | string | 是 | 表示結果集中指定列的名稱。 |
返回值:
| 類型 | 說明 |
|---|---|
| number | 返回指定列的索引。 |
示例:
resultSet.goToFirstRow()
const id = resultSet.getLong(resultSet.getColumnIndex("ID"))
const name = resultSet.getString(resultSet.getColumnIndex("NAME"))
const age = resultSet.getLong(resultSet.getColumnIndex("AGE"))
const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))
getColumnName
getColumnName(columnIndex: number): string
根據指定的列索引獲取列名。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| columnIndex | number | 是 | 表示結果集中指定列的索引。 |
返回值:
| 類型 | 說明 |
|---|---|
| string | 返回指定列的名稱。 |
示例:
const id = resultSet.getColumnName(0)
const name = resultSet.getColumnName(1)
const age = resultSet.getColumnName(2)
goTo
goTo(offset:number): boolean
向前或向后轉至結果集的指定行,相對于其當前位置偏移。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| offset | number | 是 | 表示相對于當前位置的偏移量。 |
返回值:
| 類型 | 說明 |
|---|---|
| boolean | 如果成功移動結果集,則為true;否則返回false。 |
示例:
let predicatesgoto = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoto = rdbStore.query(predicatesgoto, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoto.then((resultSet) {
resultSet.goTo(1)
resultSet.close()
}).catch((err) = > {
console.log('query failed')
})
goToRow
goToRow(position: number): boolean
轉到結果集的指定行。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| position | number | 是 | 表示要移動到的指定位置。 |
返回值:
| 類型 | 說明 |
|---|---|
| boolean | 如果成功移動結果集,則為true;否則返回false。 |
示例:
let predicatesgotorow = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygotorow = rdbStore.query(predicatesgotorow, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygotorow.then((resultSet) {
resultSet.goToRow(5)
resultSet.close()
}).catch((err) = > {
console.log('query failed')
})
goToFirstRow
goToFirstRow(): boolean
轉到結果集的第一行。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
| 類型 | 說明 |
|---|---|
| boolean | 如果成功移動結果集,則為true;否則返回false。 |
示例:
let predicatesgoFirst = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoFirst = rdbStore.query(predicatesgoFirst, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoFirst.then((resultSet) {
resultSet.goToFirstRow()
resultSet.close()
}).catch((err) = > {
console.log('query failed')
})
goToLastRow
goToLastRow(): boolean
轉到結果集的最后一行。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
| 類型 | 說明 |
|---|---|
| boolean | 如果成功移動結果集,則為true;否則返回false。 |
示例:
let predicatesgoLast = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoLast = rdbStore.query(predicatesgoLast, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoLast.then((resultSet) {
resultSet.goToLastRow()
resultSet.close()
}).catch((err) = > {
console.log('query failed')
})
goToNextRow
goToNextRow(): boolean
轉到結果集的下一行。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
| 類型 | 說明 |
|---|---|
| boolean | 如果成功移動結果集,則為true;否則返回false。 |
示例:
let predicatesgoNext = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoNext = rdbStore.query(predicatesgoNext, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoNext.then((resultSet) {
resultSet.goToNextRow()
resultSet.close()
}).catch((err) = > {
console.log('query failed')
})
goToPreviousRow
goToPreviousRow(): boolean
轉到結果集的上一行。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
| 類型 | 說明 |
|---|---|
| boolean | 如果成功移動結果集,則為true;否則返回false。 |
示例:
let predicatesgoPrev = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoPrev = rdbStore.query(predicatesgoPrev, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoPrev.then((resultSet) {
resultSet.goToPreviousRow()
resultSet.close()
}).catch((err) = > {
console.log('query failed')
})
getBlob
getBlob(columnIndex: number): Uint8Array
以字節數組的形式獲取當前行中指定列的值。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| columnIndex | number | 是 | 指定的列索引,從0開始。 |
返回值:
| 類型 | 說明 |
|---|---|
| Uint8Array | 以字節數組的形式返回指定列的值。 |
示例:
const codes = resultSet.getBlob(resultSet.getColumnIndex("CODES"))
getString
getString(columnIndex: number): string
以字符串形式獲取當前行中指定列的值。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| columnIndex | number | 是 | 指定的列索引,從0開始。 |
返回值:
| 類型 | 說明 |
|---|---|
| string | 以字符串形式返回指定列的值。 |
示例:
const name = resultSet.getString(resultSet.getColumnIndex("NAME"))
getLong
getLong(columnIndex: number): number
以Long形式獲取當前行中指定列的值。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| columnIndex | number | 是 | 指定的列索引,從0開始。 |
返回值:
| 類型 | 說明 |
|---|---|
| number | 以Long形式返回指定列的值。 |
示例:
const age = resultSet.getLong(resultSet.getColumnIndex("AGE"))
getDouble
getDouble(columnIndex: number): number
以double形式獲取當前行中指定列的值。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| columnIndex | number | 是 | 指定的列索引,從0開始。 |
返回值:
| 類型 | 說明 |
|---|---|
| number | 以double形式返回指定列的值。 |
示例:
const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))
isColumnNull
isColumnNull(columnIndex: number): boolean
檢查當前行中指定列的值是否為null。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
參數:
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| columnIndex | number | 是 | 指定的列索引,從0開始。 |
返回值:
| 類型 | 說明 |
|---|---|
| boolean | 如果當前行中指定列的值為null,則返回true,否則返回false。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |

示例:
const isColumnNull = resultSet.isColumnNull(resultSet.getColumnIndex("CODES"))
close
close(): void
關閉結果集。
系統能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
示例:
let predicatesClose = new dataRdb.RdbPredicates("EMPLOYEE")
let promiseClose = rdbStore.query(predicatesClose, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promiseClose.then((resultSet) {
resultSet.close()
}).catch((err) = > {
console.log('resultset close failed')
})
審核編輯 黃宇
-
接口
+關注
關注
33文章
9519瀏覽量
157015 -
數據管理
+關注
關注
1文章
340瀏覽量
20568 -
數據庫
+關注
關注
7文章
4019瀏覽量
68337 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45883
發布評論請先 登錄
數據管理功能詳解
HarmonyOS應用開發數據交互--關系型數據庫完整流程練習
基于Data Ability的關系型數據庫和數據管理能力,實現數據庫相關應用服務的快速開發
Harmony OS關系數據庫的使用方法
基于Rdb創建的一個Data_Ability的數據操作過程
OpenHarmony標準設備應用開發(三)——分布式數據管理
【學習打卡】OpenHarmony的分布式數據管理介紹
HarmonyOS數據管理與應用數據持久化(一)
集中于車身開發過程的數據管理技術研究
工業現場數據管理 | 什么是工業現場數據管理
試驗數據管理系統TDM與SDM
鴻蒙開發接口數據管理:【@ohos.data.distributedData (分布式數據管理)】
鴻蒙開發接口數據管理:【data/rdb/resultSet (結果集)】
評論