• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 结果集
2
3结果集是指用户调用关系型数据库查询接口之后返回的结果集合,提供了多种灵活的数据访问方式,以便用户获取各项数据。
4
5> **说明:**
6>
7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9
10## 使用说明
11
12需要通过[RdbStore.query()](js-apis-data-rdb.md#query)获取resultSet对象。
13
14```js
15import dataRdb from '@ohos.data.rdb';
16let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
17predicates.equalTo("AGE", 18)
18let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
19promise.then((resultSet) => {
20    console.log(TAG + "resultSet columnNames:" + resultSet.columnNames);
21    console.log(TAG + "resultSet columnCount:" + resultSet.columnCount);})
22```
23
24## ResultSet
25
26提供通过查询数据库生成的数据库结果集的访问方法。
27
28
29### 属性
30
31**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core32
33| 名称 | 参数类型 | 必填 | 说明 |
34| -------- | -------- | -------- | -------- |
35| columnNames | Array<string> | 是 | 获取结果集中所有列的名称。 |
36| columnCount | number | 是 | 获取结果集中的列数。 |
37| rowCount | number | 是 | 获取结果集中的行数。 |
38| rowIndex | number | 是 | 获取结果集当前行的索引。 |
39| isAtFirstRow | boolean | 是 | 检查结果集是否位于第一行。 |
40| isAtLastRow | boolean | 是 | 检查结果集是否位于最后一行。 |
41| isEnded | boolean | 是 | 检查结果集是否位于最后一行之后。 |
42| isStarted | boolean | 是 | 检查指针是否移动过。 |
43| isClosed | boolean | 是 | 检查当前结果集是否关闭。 |
44
45
46### getColumnIndex
47
48getColumnIndex(columnName: string): number
49
50根据指定的列名获取列索引。
51
52**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core53
54**参数:**
55  | 参数名 | 类型 | 必填 | 说明 |
56  | -------- | -------- | -------- | -------- |
57  | columnName | string | 是 | 表示结果集中指定列的名称。 |
58
59**返回值:**
60  | 类型 | 说明 |
61  | -------- | -------- |
62  | number | 返回指定列的索引。 |
63
64**示例:**
65  ```js
66  resultSet.goToFirstRow()
67  const id = resultSet.getLong(resultSet.getColumnIndex("ID"))
68  const name = resultSet.getString(resultSet.getColumnIndex("NAME"))
69  const age = resultSet.getLong(resultSet.getColumnIndex("AGE"))
70  const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))
71  ```
72
73
74### getColumnName
75
76getColumnName(columnIndex: number): string
77
78根据指定的列索引获取列名。
79
80**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core81
82**参数:**
83  | 参数名 | 类型 | 必填 | 说明 |
84  | -------- | -------- | -------- | -------- |
85  | columnIndex | number | 是 | 表示结果集中指定列的索引。 |
86
87**返回值:**
88  | 类型 | 说明 |
89  | -------- | -------- |
90  | string | 返回指定列的名称。 |
91
92**示例:**
93  ```js
94  const id = resultSet.getColumnName(0)
95  const name = resultSet.getColumnName(1)
96  const age = resultSet.getColumnName(2)
97  ```
98
99
100### goTo
101
102goTo(offset:number): boolean
103
104向前或向后转至结果集的指定行,相对于其当前位置偏移。
105
106**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core107
108**参数:**
109  | 参数名 | 类型 | 必填 | 说明 |
110  | -------- | -------- | -------- | -------- |
111  | offset | number | 是 | 表示相对于当前位置的偏移量。 |
112
113**返回值:**
114  | 类型 | 说明 |
115  | -------- | -------- |
116  | boolean | 如果成功移动结果集,则为true;否则返回false。 |
117
118**示例:**
119  ```js
120  let predicatesgoto = new dataRdb.RdbPredicates("EMPLOYEE")
121  let promisequerygoto = rdbStore.query(predicatesgoto, ["ID", "NAME", "AGE", "SALARY", "CODES"])
122  promisequerygoto.then((resultSet) => {
123      resultSet.goTo(1)
124      resultSet.close()
125  }).catch((err) => {
126      console.log('query failed')
127  })
128  ```
129
130
131### goToRow
132
133goToRow(position: number): boolean
134
135转到结果集的指定行。
136
137**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core138
139**参数:**
140  | 参数名 | 类型 | 必填 | 说明 |
141  | -------- | -------- | -------- | -------- |
142  | position | number | 是 | 表示要移动到的指定位置。 |
143
144**返回值:**
145  | 类型 | 说明 |
146  | -------- | -------- |
147  | boolean | 如果成功移动结果集,则为true;否则返回false。 |
148
149**示例:**
150  ```js
151  let predicatesgotorow = new dataRdb.RdbPredicates("EMPLOYEE")
152  let promisequerygotorow = rdbStore.query(predicatesgotorow, ["ID", "NAME", "AGE", "SALARY", "CODES"])
153  promisequerygotorow.then((resultSet) => {
154      resultSet.goToRow(5)
155      resultSet.close()
156  }).catch((err) => {
157      console.log('query failed')
158  })
159  ```
160
161
162### goToFirstRow
163
164goToFirstRow(): boolean
165
166
167转到结果集的第一行。
168
169**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core170
171**返回值:**
172  | 类型 | 说明 |
173  | -------- | -------- |
174  | boolean | 如果成功移动结果集,则为true;否则返回false。 |
175
176**示例:**
177  ```js
178  let predicatesgoFirst = new dataRdb.RdbPredicates("EMPLOYEE")
179  let promisequerygoFirst = rdbStore.query(predicatesgoFirst, ["ID", "NAME", "AGE", "SALARY", "CODES"])
180  promisequerygoFirst.then((resultSet) => {
181      resultSet.goToFirstRow()
182      resultSet.close()
183  }).catch((err) => {
184      console.log('query failed')
185  })
186  ```
187
188
189### goToLastRow
190
191goToLastRow(): boolean
192
193转到结果集的最后一行。
194
195**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core196
197**返回值:**
198  | 类型 | 说明 |
199  | -------- | -------- |
200  | boolean | 如果成功移动结果集,则为true;否则返回false。 |
201
202**示例:**
203  ```js
204  let predicatesgoLast = new dataRdb.RdbPredicates("EMPLOYEE")
205  let promisequerygoLast = rdbStore.query(predicatesgoLast, ["ID", "NAME", "AGE", "SALARY", "CODES"])
206  promisequerygoLast.then((resultSet) => {
207      resultSet.goToLastRow()
208      resultSet.close()
209  }).catch((err) => {
210      console.log('query failed')
211  })
212  ```
213
214
215### goToNextRow
216
217goToNextRow(): boolean
218
219转到结果集的下一行。
220
221**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core222
223**返回值:**
224  | 类型 | 说明 |
225  | -------- | -------- |
226  | boolean | 如果成功移动结果集,则为true;否则返回false。 |
227
228**示例:**
229  ```js
230  let predicatesgoNext = new dataRdb.RdbPredicates("EMPLOYEE")
231  let promisequerygoNext = rdbStore.query(predicatesgoNext, ["ID", "NAME", "AGE", "SALARY", "CODES"])
232  promisequerygoNext.then((resultSet) => {
233      resultSet.goToNextRow()
234      resultSet.close()
235  }).catch((err) => {
236      console.log('query failed')
237  })
238  ```
239
240
241### goToPreviousRow
242
243goToPreviousRow(): boolean
244
245转到结果集的上一行。
246
247**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core248
249**返回值:**
250  | 类型 | 说明 |
251  | -------- | -------- |
252  | boolean | 如果成功移动结果集,则为true;否则返回false。 |
253
254**示例:**
255  ```js
256  let predicatesgoPrev = new dataRdb.RdbPredicates("EMPLOYEE")
257  let promisequerygoPrev = rdbStore.query(predicatesgoPrev, ["ID", "NAME", "AGE", "SALARY", "CODES"])
258  promisequerygoPrev.then((resultSet) => {
259      resultSet.goToPreviousRow()
260      resultSet.close()
261  }).catch((err) => {
262      console.log('query failed')
263  })
264  ```
265
266
267### getBlob
268
269getBlob(columnIndex: number): Uint8Array
270
271以字节数组的形式获取当前行中指定列的值。
272
273**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core274
275**参数:**
276  | 参数名 | 类型 | 必填 | 说明 |
277  | -------- | -------- | -------- | -------- |
278  | columnIndex | number | 是 | 指定的列索引,从0开始。 |
279
280**返回值:**
281  | 类型 | 说明 |
282  | -------- | -------- |
283  | Uint8Array | 以字节数组的形式返回指定列的值。 |
284
285**示例:**
286  ```js
287  const codes = resultSet.getBlob(resultSet.getColumnIndex("CODES"))
288  ```
289
290
291### getString
292
293getString(columnIndex: number): string
294
295以字符串形式获取当前行中指定列的值。
296
297**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core298
299**参数:**
300  | 参数名 | 类型 | 必填 | 说明 |
301  | -------- | -------- | -------- | -------- |
302  | columnIndex | number | 是 | 指定的列索引,从0开始。 |
303
304**返回值:**
305  | 类型 | 说明 |
306  | -------- | -------- |
307  | string | 以字符串形式返回指定列的值。 |
308
309**示例:**
310  ```js
311  const name = resultSet.getString(resultSet.getColumnIndex("NAME"))
312  ```
313
314
315### getLong
316
317getLong(columnIndex: number): number
318
319以Long形式获取当前行中指定列的值。
320
321**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core322
323**参数:**
324  | 参数名 | 类型 | 必填 | 说明 |
325  | -------- | -------- | -------- | -------- |
326  | columnIndex | number | 是 | 指定的列索引,从0开始。 |
327
328**返回值:**
329  | 类型 | 说明 |
330  | -------- | -------- |
331  | number | 以Long形式返回指定列的值。 |
332
333**示例:**
334  ```js
335  const age = resultSet.getLong(resultSet.getColumnIndex("AGE"))
336  ```
337
338
339### getDouble
340
341getDouble(columnIndex: number): number
342
343以double形式获取当前行中指定列的值。
344
345**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core346
347**参数:**
348  | 参数名 | 类型 | 必填 | 说明 |
349  | -------- | -------- | -------- | -------- |
350  | columnIndex | number | 是 | 指定的列索引,从0开始。 |
351
352**返回值:**
353  | 类型 | 说明 |
354  | -------- | -------- |
355  | number | 以double形式返回指定列的值。 |
356
357**示例:**
358  ```js
359  const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))
360  ```
361
362
363### isColumnNull
364
365isColumnNull(columnIndex: number): boolean
366
367检查当前行中指定列的值是否为null。
368
369**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core370
371**参数:**
372  | 参数名 | 类型 | 必填 | 说明 |
373  | -------- | -------- | -------- | -------- |
374  | columnIndex | number | 是 | 指定的列索引,从0开始。 |
375
376**返回值:**
377  | 类型 | 说明 |
378  | -------- | -------- |
379  | boolean | 如果当前行中指定列的值为null,则返回true,否则返回false。 |
380
381**示例:**
382  ```js
383  const isColumnNull = resultSet.isColumnNull(resultSet.getColumnIndex("CODES"))
384  ```
385
386
387### close
388
389close(): void
390
391关闭结果集。
392
393**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core394
395**示例:**
396  ```js
397  let predicatesClose = new dataRdb.RdbPredicates("EMPLOYEE")
398  let promiseClose = rdbStore.query(predicatesClose, ["ID", "NAME", "AGE", "SALARY", "CODES"])
399  promiseClose.then((resultSet) => {
400      resultSet.close()
401  }).catch((err) => {
402      console.log('resultset close failed')
403  })
404  ```
405
406