• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# OH_Cursor
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**起始版本:** 10
14
15**相关模块:** [RDB](capi-rdb.md)
16
17**所在头文件:** [oh_cursor.h](capi-oh-cursor-h.md)
18
19### 成员变量
20
21| 名称       | 描述                          |
22| ---------- | ----------------------------- |
23| int64_t id | OH_Cursor结构体的唯一标识符。 |
24
25
26### 成员函数
27
28| 名称                                                         | 描述                                                         |
29| ------------------------------------------------------------ | ------------------------------------------------------------ |
30| [int (*getColumnCount)(OH_Cursor *cursor, int *count)](#getcolumncount) | 函数指针,获取结果集中的列数。                               |
31| [int (*getColumnType)(OH_Cursor *cursor, int32_t columnIndex, OH_ColumnType *columnType)](#getcolumntype) | 函数指针,根据指定的列索引获取列类型。                       |
32| [int (*getColumnIndex)(OH_Cursor *cursor, const char *name, int *columnIndex)](#getcolumnindex) | 函数指针,根据指定的列名获取列索引。                         |
33| [int (*getColumnName)(OH_Cursor *cursor, int32_t columnIndex, char *name, int length)](#getcolumnname) | 函数指针,根据指定的列索引获取列名。                         |
34| [int (*getRowCount)(OH_Cursor *cursor, int *count)](#getrowcount) | 函数指针,获取结果集中的行数。                               |
35| [int (*goToNextRow)(OH_Cursor *cursor)](#gotonextrow)        | 函数指针,转到结果集的下一行。                               |
36| [int (*getSize)(OH_Cursor *cursor, int32_t columnIndex, size_t *size)](#getsize) | 函数指针,当结果集中列的数据类型是BLOB或者TEXT时,获取其值所需的内存。 |
37| [int (*getText)(OH_Cursor *cursor, int32_t columnIndex, char *value, int length)](#gettext) | 函数指针,以字符串形式获取当前行中指定列的值。               |
38| [int (*getInt64)(OH_Cursor *cursor, int32_t columnIndex, int64_t *value)](#getint64) | 函数指针,以int64_t形式获取当前行中指定列的值。              |
39| [int (*getReal)(OH_Cursor *cursor, int32_t columnIndex, double *value)](#getreal) | 函数指针,以double形式获取当前行中指定列的值。               |
40| [int (*getBlob)(OH_Cursor *cursor, int32_t columnIndex, unsigned char *value, int length)](#getblob) | 函数指针,以字节数组的形式获取当前行中指定列的值。           |
41| [int (*isNull)(OH_Cursor *cursor, int32_t columnIndex, bool *isNull)](#isnull) | 函数指针,检查当前行中指定列的值是否为null。                 |
42| [int (*destroy)(OH_Cursor *cursor)](#destroy)                | 函数指针,关闭结果集。                                       |
43| [int (*getAsset)(OH_Cursor *cursor, int32_t columnIndex, Data_Asset *value)](#getasset) | 函数指针,以资产的形式获取当前行中指定列的值。               |
44| [int (*getAssets)(OH_Cursor *cursor, int32_t columnIndex, Data_Asset **value, uint32_t length)](#getassets) | 函数指针,以资产数组的形式获取当前行中指定列的值。           |
45
46
47## 成员函数说明
48
49### getColumnCount()
50
51```
52int (*getColumnCount)(OH_Cursor *cursor, int *count)
53```
54
55**描述**
56
57函数指针,获取结果集中的列数。
58
59**起始版本:** 10
60
61
62**参数:**
63
64| 参数项            | 描述                                         |
65| ----------------- | -------------------------------------------- |
66| OH_Cursor *cursor | 表示指向OH_Cursor实例的指针                  |
67| int *count        | 该参数是输出参数,结果集中的列数会写入该变量 |
68
69**返回:**
70
71| 类型 | 说明                                       |
72| ---- | ------------------------------------------ |
73| int  | 返回操作是否成功,出错时返回对应的错误码。 |
74
75### getColumnType()
76
77```
78int (*getColumnType)(OH_Cursor *cursor, int32_t columnIndex, OH_ColumnType *columnType)
79```
80
81**描述**
82
83函数指针,根据指定的列索引获取列类型。
84
85**起始版本:** 10
86
87
88**参数:**
89
90| 参数项                                                       | 描述                                                         |
91| ------------------------------------------------------------ | ------------------------------------------------------------ |
92| OH_Cursor *cursor                                            | 表示指向OH_Cursor实例的指针                                  |
93| int32_t columnIndex                                          | 表示结果集中指定列的索引,索引值从0开始。                    |
94| [OH_ColumnType](capi-oh-data-value-h.md#oh_columntype) *columnType | 该参数是输出参数,结果集中指定列的数据类型[OH_ColumnType](capi-oh-data-value-h.md#oh_columntype)会写入该变量。 |
95
96**返回:**
97
98| 类型 | 说明                                       |
99| ---- | ------------------------------------------ |
100| int  | 返回操作是否成功,出错时返回对应的错误码。 |
101
102### getColumnIndex()
103
104```
105int (*getColumnIndex)(OH_Cursor *cursor, const char *name, int *columnIndex)
106```
107
108**描述**
109
110函数指针,根据指定的列名获取列索引。
111
112**起始版本:** 10
113
114
115**参数:**
116
117| 参数项            | 描述                                                 |
118| ----------------- | ---------------------------------------------------- |
119| OH_Cursor *cursor | 表示指向OH_Cursor实例的指针                          |
120| const char *name  | 表示结果集中指定列的名称。                           |
121| int *columnIndex  | 该参数是输出参数,结果集中指定列的索引会写入该变量。 |
122
123**返回:**
124
125| 类型 | 说明                                       |
126| ---- | ------------------------------------------ |
127| int  | 返回操作是否成功,出错时返回对应的错误码。 |
128
129### getColumnName()
130
131```
132 int (*getColumnName)(OH_Cursor *cursor, int32_t columnIndex, char *name, int length)
133```
134
135**描述**
136
137函数指针,根据指定的列索引获取列名。
138
139**起始版本:** 10
140
141
142**参数:**
143
144| 参数项              | 描述                                                         |
145| ------------------- | ------------------------------------------------------------ |
146| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针                                  |
147| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。                    |
148| char *name          | 该参数是输出参数,结果集中指定列的名称会写入该变量。         |
149| int length          | 该参数为输入参数,表示开发者传入的包括终止符在内的列名字符串的总长度。 |
150
151**返回:**
152
153| 类型 | 说明                                       |
154| ---- | ------------------------------------------ |
155| int  | 返回操作是否成功,出错时返回对应的错误码。 |
156
157### getRowCount()
158
159```
160int (*getRowCount)(OH_Cursor *cursor, int *count)
161```
162
163**描述**
164
165函数指针,获取结果集中的行数。
166
167**起始版本:** 10
168
169
170**参数:**
171
172| 参数项            | 描述                                         |
173| ----------------- | -------------------------------------------- |
174| OH_Cursor *cursor | 表示指向OH_Cursor实例的指针                  |
175| int *count        | 该参数是输出参数,结果集中的列数会写入该变量 |
176
177**返回:**
178
179| 类型 | 说明                                       |
180| ---- | ------------------------------------------ |
181| int  | 返回操作是否成功,出错时返回对应的错误码。 |
182
183### goToNextRow()
184
185```
186 int (*goToNextRow)(OH_Cursor *cursor)
187```
188
189**描述**
190
191函数指针,转到结果集的下一行。
192
193**起始版本:** 10
194
195
196**参数:**
197
198| 参数项            | 描述                        |
199| ----------------- | --------------------------- |
200| OH_Cursor *cursor | 表示指向OH_Cursor实例的指针 |
201
202**返回:**
203
204| 类型 | 说明                                       |
205| ---- | ------------------------------------------ |
206| int  | 返回操作是否成功,出错时返回对应的错误码。 |
207
208### getSize()
209
210```
211int (*getSize)(OH_Cursor *cursor, int32_t columnIndex, size_t *size)
212```
213
214**描述**
215
216函数指针,当结果集中列的数据类型是BLOB或者TEXT时,获取其值所需的内存。
217
218**起始版本:** 10
219
220
221**参数:**
222
223| 参数项              | 描述                                                         |
224| ------------------- | ------------------------------------------------------------ |
225| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针。                                |
226| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。                    |
227| size_t *size        | 该参数是输出参数,BLOB或者TEXT数据所需内存大小会写入该变量。 |
228
229**返回:**
230
231| 类型 | 说明                                       |
232| ---- | ------------------------------------------ |
233| int  | 返回操作是否成功,出错时返回对应的错误码。 |
234
235### getText()
236
237```
238int (*getText)(OH_Cursor *cursor, int32_t columnIndex, char *value, int length)
239```
240
241**描述**
242
243函数指针,以字符串形式获取当前行中指定列的值。
244
245**起始版本:** 10
246
247
248**参数:**
249
250| 参数项              | 描述                                                         |
251| ------------------- | ------------------------------------------------------------ |
252| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针                                  |
253| int32_t columnIndex | 该表示结果集中指定列的索引,索引值从0开始。                  |
254| char *value         | 该参数是输出参数,结果集中指定列的值会以字符串形式写入该变量。 |
255| int length          | 该参数是输入参数,表示value的长度,该值可通过getSize获取。   |
256
257**返回:**
258
259| 类型 | 说明                                       |
260| ---- | ------------------------------------------ |
261| int  | 返回操作是否成功,出错时返回对应的错误码。 |
262
263### getInt64()
264
265```
266int (*getInt64)(OH_Cursor *cursor, int32_t columnIndex, int64_t *value)
267```
268
269**描述**
270
271函数指针,以int64_t形式获取当前行中指定列的值。
272
273**起始版本:** 10
274
275
276**参数:**
277
278| 参数项              | 描述                                                         |
279| ------------------- | ------------------------------------------------------------ |
280| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针                                  |
281| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。                    |
282| int64_t *value      | 该参数是输出参数,结果集中指定列的值会以int64_t形式写入该变量。 |
283
284**返回:**
285
286| 类型 | 说明                                       |
287| ---- | ------------------------------------------ |
288| int  | 返回操作是否成功,出错时返回对应的错误码。 |
289
290### getReal()
291
292```
293int (*getReal)(OH_Cursor *cursor, int32_t columnIndex, double *value)
294```
295
296**描述**
297
298函数指针,以double形式获取当前行中指定列的值。
299
300**起始版本:** 10
301
302
303**参数:**
304
305| 参数项              | 描述                                                         |
306| ------------------- | ------------------------------------------------------------ |
307| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针                                  |
308| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。                    |
309| double *value       | 该参数是输出参数,结果集中指定列的值会以double形式写入该变量。 |
310
311**返回:**
312
313| 类型 | 说明                                       |
314| ---- | ------------------------------------------ |
315| int  | 返回操作是否成功,出错时返回对应的错误码。 |
316
317### getBlob()
318
319```
320int (*getBlob)(OH_Cursor *cursor, int32_t columnIndex, unsigned char *value, int length)
321```
322
323**描述**
324
325函数指针,以字节数组的形式获取当前行中指定列的值。
326
327**起始版本:** 10
328
329
330**参数:**
331
332| 参数项               | 描述                                                         |
333| -------------------- | ------------------------------------------------------------ |
334| OH_Cursor *cursor    | 表示指向OH_Cursor实例的指针                                  |
335| int32_t columnIndex  | 表示结果集中指定列的索引,索引值从0开始。                    |
336| unsigned char *value | 该参数是输出参数,结果集中指定列的值会以字节数组形式写入该变量。 |
337| int length           | 该参数为输入参数,表示传入的value的长度,该值可通过getSize获取。 |
338
339**返回:**
340
341| 类型 | 说明                                       |
342| ---- | ------------------------------------------ |
343| int  | 返回操作是否成功,出错时返回对应的错误码。 |
344
345### isNull()
346
347```
348int (*isNull)(OH_Cursor *cursor, int32_t columnIndex, bool *isNull)
349```
350
351**描述**
352
353函数指针,检查当前行中指定列的值是否为null。
354
355**起始版本:** 10
356
357
358**参数:**
359
360| 参数项              | 描述                                                         |
361| ------------------- | ------------------------------------------------------------ |
362| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针                                  |
363| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。                    |
364| bool *isNull        | 该参数是输出参数,如果当前行中指定列的值为null,该值为true,否则为false。 |
365
366**返回:**
367
368| 类型 | 说明                                       |
369| ---- | ------------------------------------------ |
370| int  | 返回操作是否成功,出错时返回对应的错误码。 |
371
372### destroy()
373
374```
375int (*destroy)(OH_Cursor *cursor)
376```
377
378**描述**
379
380函数指针,关闭结果集。
381
382**起始版本:** 10
383
384
385**参数:**
386
387| 参数项            | 描述                        |
388| ----------------- | --------------------------- |
389| OH_Cursor *cursor | 表示指向OH_Cursor实例的指针 |
390
391**返回:**
392
393| 类型 | 说明                                       |
394| ---- | ------------------------------------------ |
395| int  | 返回操作是否成功,出错时返回对应的错误码。 |
396
397### getAsset()
398
399```
400int (*getAsset)(OH_Cursor *cursor, int32_t columnIndex, Data_Asset *value)
401```
402
403**描述**
404
405函数指针,以资产的形式获取当前行中指定列的值。
406
407**起始版本:** 10
408
409
410**参数:**
411
412| 参数项              | 描述                                                         |
413| ------------------- | ------------------------------------------------------------ |
414| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针                                  |
415| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。                    |
416| Data_Asset *value   | 该参数是输出参数,结果集中指定列的值会以资产形式写入该变量。 |
417
418**返回:**
419
420| 类型 | 说明                                       |
421| ---- | ------------------------------------------ |
422| int  | 返回操作是否成功,出错时返回对应的错误码。 |
423
424### getAssets()
425
426```
427int (*getAssets)(OH_Cursor *cursor, int32_t columnIndex, Data_Asset **value, uint32_t length)
428```
429
430**描述**
431
432函数指针,以资产数组的形式获取当前行中指定列的值。
433
434**起始版本:** 10
435
436
437**参数:**
438
439| 参数项              | 描述                                                         |
440| ------------------- | ------------------------------------------------------------ |
441| OH_Cursor *cursor   | 表示指向OH_Cursor实例的指针                                  |
442| int32_t columnIndex | 表示结果集中指定列的索引,索引值从0开始。                    |
443| Data_Asset **value  | 该参数是输出参数,结果集中指定列的值会以资产数组形式写入该变量。 |
444| uint32_t length     | 既是入参又是出参:作为入参,需要开发者传入一个uint32_t类型的变量,表示输入缓冲区的大小;作为出参,表示函数执行后,length指向的变量会被更新为实际返回的资产数组的长度。 |
445
446
447**返回:**
448
449| 类型 | 说明                                       |
450| ---- | ------------------------------------------ |
451| int  | 返回操作是否成功,出错时返回对应的错误码。 |