1# oh_cursor.h 2<!--Kit: ArkData--> 3<!--Subsystem: DistributedDataManager--> 4<!--Owner: @baijidong--> 5<!--Designer: @widecode; @htt1997--> 6<!--Tester: @yippo; @logic42--> 7<!--Adviser: @ge-yafang--> 8 9## 概述 10 11提供通过查询数据库生成的数据库结果集的访问方法。结果集是指用户调用关系型数据库查询接口之后返回的结果集合,提供了多种灵活的数据访问方式,以便用户获取各项数据。 12 13**引用文件:** <database/rdb/oh_cursor.h> 14 15**库:** libnative_rdb_ndk.z.so 16 17**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 18 19**起始版本:** 10 20 21**相关模块:** [RDB](capi-rdb.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| ------------------------------ | ------------- | ------------------------------------------------------------ | 29| [OH_Cursor](capi-rdb-oh-cursor.md) | OH_Cursor | 提供通过查询数据库生成的数据库结果集的访问方法。结果集是指用户调用关系型数据库查询接口之后返回的结果集合,提供了多种灵活的数据访问方式,以便用户获取各项数据。 | 30 31### 函数 32 33| 名称 | 描述 | 34| ------------------------------------------------------------ | ------------------------------------------ | 35| [int OH_Cursor_GetFloatVectorCount(OH_Cursor *cursor, int32_t columnIndex, size_t *length)](#oh_cursor_getfloatvectorcount) | 获取当前行中指定列的浮点数数组大小。 | 36| [int OH_Cursor_GetFloatVector(OH_Cursor *cursor, int32_t columnIndex, float *val, size_t inLen, size_t *outLen)](#oh_cursor_getfloatvector) | 以浮点数数组的形式获取当前行中指定列的值。 | 37 38## 函数说明 39 40### OH_Cursor_GetFloatVectorCount() 41 42``` 43int OH_Cursor_GetFloatVectorCount(OH_Cursor *cursor, int32_t columnIndex, size_t *length) 44``` 45 46**描述** 47 48获取当前行中指定列的浮点数数组大小。 49 50**起始版本:** 18 51 52 53**参数:** 54 55| 参数项 | 描述 | 56| -------------------------------------- | ------------------------------------------------------------ | 57| [OH_Cursor](capi-rdb-oh-cursor.md) *cursor | 表示指向[OH_Cursor](capi-rdb-oh-cursor.md)实例的指针。 | 58| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。 | 59| size_t *length | 该参数是输出参数,结果集中指定列的浮点数数组大小会写入该变量。 | 60 61**返回:** 62 63| 类型 | 说明 | 64| ---- | ------------------------------------------------------------ | 65| int | 返回执行结果。<br>返回RDB_OK表示成功。<br>返回RDB_E_ERROR表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示无效参数。<br>返回RDB_E_SQLITE_CORRUPT表示数据库损坏。<br>返回RDB_E_STEP_RESULT_CLOSED表示查询到的结果集已经关闭。<br>返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。<br>返回RDB_E_SQLITE_PERM表示SQLite错误: 访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误: 数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误: 数据库内存不足。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误: 磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 | 66 67### OH_Cursor_GetFloatVector() 68 69``` 70int OH_Cursor_GetFloatVector(OH_Cursor *cursor, int32_t columnIndex, float *val, size_t inLen, size_t *outLen) 71``` 72 73**描述** 74 75以浮点数数组的形式获取当前行中指定列的值。 76 77**起始版本:** 18 78 79 80**参数:** 81 82| 参数项 | 描述 | 83| -------------------------------------- | ------------------------------------------------------------ | 84| [OH_Cursor](capi-rdb-oh-cursor.md) *cursor | 表示指向[OH_Cursor](capi-rdb-oh-cursor.md)实例的指针。 | 85| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。 | 86| float *val | 该参数是输出参数,结果集中指定列的值会以浮点数数组形式写入该变量,调用者需要申请数组内存。 | 87| size_t inLen | 表示申请的浮点数数组大小。 | 88| size_t *outLen | 该参数是输出参数,表示实际浮点数数组的大小。 | 89 90**返回:** 91 92| 类型 | 说明 | 93| ---- | ------------------------------------------------------------ | 94| int | 返回执行结果。<br>返回RDB_OK表示成功。<br>返回RDB_E_ERROR表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示无效参数。<br>返回RDB_E_SQLITE_CORRUPT表示数据库损坏。<br>返回RDB_E_STEP_RESULT_CLOSED表示查询到的结果集已经关闭。<br>返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。<br>返回RDB_E_SQLITE_PERM表示SQLite错误: 访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误: 数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误: 数据库内存不足。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误: 磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 | 95 96 97 98