• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.data.dataShareResultSet (数据共享结果集)
2
3**结果集(DataShareResultSet)** 可提供访问由查询数据库生成的结果集的相关方法,根据提供的行数,查询相应的值,也可查询指定数据类型的值。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口为系统接口。
10
11
12## 导入模块
13
14```ts
15import DataShareResultSet from '@ohos.data.DataShareResultSet';
16```
17
18## 使用说明
19
20需要通过调用[query](js-apis-data-dataShare.md#query)接口获取DataShareResultSet对象。
21
22```ts
23import dataShare from '@ohos.data.dataShare';
24import dataSharePredicates from '@ohos.data.dataSharePredicates'
25
26let dataShareHelper;
27let uri = ("datashare:///com.samples.datasharetest.DataShare");
28await dataShare.createDataShareHelper(this.context, uri, (err, data) => {
29	if (err != undefined) {
30        console.info("createDataShareHelper fail, error message : " + err);
31    } else {
32        console.info("createDataShareHelper end, data : " + data);
33        dataShareHelper = data;
34    }
35});
36
37let columns = ["*"];
38let da = new dataSharePredicates.DataSharePredicates();
39let resultSet;
40da.equalTo("name", "ZhangSan");
41dataShareHelper.query(uri, da, columns).then((data) => {
42    console.log("query end, data : " + data);
43    resultSet = data;
44}).catch((err) => {
45	console.log("query fail, error message : " + err);
46});
47```
48
49## DataShareResultSet
50提供通过查询数据库生成的结果集的相关访问方法。
51
52### 属性
53
54**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
55
56| 名称        | 类型      | 必填 | 说明                     |
57| ----------- | ------------- | ---- | ------------------------ |
58| columnNames | Array<string> | 是   | 结果集中所有列的名称。   |
59| columnCount | number        | 是   | 结果集中的列数。         |
60| rowCount    | number        | 是   | 结果集中的行数。         |
61| isClosed    | boolean       | 是   | 标识当前结果集是否关闭。 |
62
63### goToFirstRow
64
65goToFirstRow(): boolean
66
67转到结果集的第一行。
68
69**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
70
71**返回值:**
72
73| 类型    | 说明                                          |
74| :------ | --------------------------------------------- |
75| boolean | 如果成功移动结果集,则为true;否则返回false。 |
76
77**示例:**
78
79```ts
80let isGoTOFirstRow = resultSet.goToFirstRow();
81console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow);
82```
83
84### goToLastRow
85
86goToLastRow(): boolean
87
88转到结果集的最后一行。
89
90**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
91
92**返回值:**
93
94| 类型 | 说明 |
95| -------- | -------- |
96| boolean | 如果成功移动结果集,则为true;否则返回false。 |
97
98**示例:**
99
100```ts
101let isGoToLastRow = resultSet.goToLastRow();
102console.info('resultSet.goToLastRow: ' + isGoToLastRow);
103```
104
105### goToNextRow
106
107goToNextRow(): boolean
108
109转到结果集的下一行。
110
111**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
112
113**返回值:**
114
115| 类型    | 说明                                          |
116| ------- | --------------------------------------------- |
117| boolean | 如果成功移动结果集,则为true;否则返回false。 |
118
119**示例:**
120
121```ts
122let isGoToNextRow = resultSet.goToNextRow();
123console.info('resultSet.goToNextRow: ' + isGoToNextRow);
124```
125
126### goToPreviousRow
127
128goToPreviousRow(): boolean
129
130转到结果集的上一行。
131
132**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
133
134**返回值:**
135
136| 类型    | 说明                                          |
137| ------- | --------------------------------------------- |
138| boolean | 如果成功移动结果集,则为true;否则返回false。 |
139
140**示例:**
141
142```ts
143let isGoToPreviousRow = resultSet.goToPreviousRow();
144console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
145```
146
147### goTo
148
149goTo(offset:number): boolean
150
151相对于当前位置向前或向后移动指定行数。
152
153**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
154
155**参数:**
156
157| **参数名** | **类型** | **必填** | 说明                                                         |
158| ---------- | -------- | -------- | ------------------------------------------------------------ |
159| offset     | number   | 是       | 表示相对于当前位置的偏移量。offset为负值表示向前偏移,正值则表示向后偏移。 |
160
161**返回值:**
162
163| 类型    | 说明                                          |
164| ------- | --------------------------------------------- |
165| boolean | 如果成功移动结果集,则为true;否则返回false。 |
166
167**示例:**
168
169```ts
170let goToNum = 1;
171let isGoTo = resultSet.goTo(goToNum);
172console.info('resultSet.goTo: ' + isGoTo);
173```
174
175### goToRow
176
177goToRow(position: number): boolean
178
179转到结果集的指定行。
180
181**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
182
183**参数:**
184
185| **参数名** | **类型** | **必填** | 说明                     |
186| ---------- | -------- | -------- | ------------------------ |
187| position   | number   | 是       | 表示要移动到的指定位置。 |
188
189**返回值:**
190
191| 类型    | 说明                                          |
192| ------- | --------------------------------------------- |
193| boolean | 如果成功移动结果集,则为true;否则返回false。 |
194
195**示例:**
196
197```ts
198let goToRowNum = 2;
199let isGoToRow = resultSet.goToRow(goToRowNum);
200console.info('resultSet.goToRow: ' + isGoToRow);
201```
202
203### getBlob
204
205getBlob(columnIndex: number): Uint8Array
206
207以字节数组的形式获取当前行中指定列的值。
208
209**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
210
211**参数:**
212
213| **参数名**  | **类型** | **必填** | 说明                    |
214| ----------- | -------- | -------- | ----------------------- |
215| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
216
217**返回值:**
218
219| 类型       | 说明                             |
220| ---------- | -------------------------------- |
221| Uint8Array | 以字节数组的形式返回指定列的值。 |
222
223**示例:**
224
225```ts
226let columnIndex = 1;
227let goToFirstRow = resultSet.goToFirstRow();
228let getBlob = resultSet.getBlob(columnIndex);
229console.info('resultSet.getBlob: ' + getBlob);
230```
231
232### getString
233
234getString(columnIndex: number): string
235
236以字符串形式获取当前行中指定列的值。
237
238**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
239
240**参数:**
241
242| **参数名**  | **类型** | **必填** | 说明                    |
243| ----------- | -------- | -------- | ----------------------- |
244| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
245
246**返回值:**
247
248| 类型   | 说明                         |
249| ------ | ---------------------------- |
250| string | 以字符串形式返回指定列的值。 |
251
252**示例:**
253
254```ts
255let columnIndex = 1;
256let goToFirstRow = resultSet.goToFirstRow();
257let getString = resultSet.getString(columnIndex);
258console.info('resultSet.getString: ' + getString);
259```
260
261### getLong
262
263getLong(columnIndex: number): number
264
265以长整数值形式获取当前行中指定列的值。
266
267**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
268
269**参数:**
270
271| **参数名**  | **类型** | **必填** | 说明                    |
272| ----------- | -------- | -------- | ----------------------- |
273| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
274
275**返回值:**
276
277| 类型   | 说明                       |
278| ------ | -------------------------- |
279| number | 以长整数值形式返回指定列的值。 |
280
281**示例:**
282
283```ts
284let columnIndex = 1;
285let goToFirstRow = resultSet.goToFirstRow();
286let getLong = resultSet.getLong(columnIndex);
287console.info('resultSet.getLong: ' + getLong);
288```
289
290### getDouble
291
292getDouble(columnIndex: number): number
293
294以值类型为双浮点数形式获取当前行中指定列的值。
295
296**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
297
298**参数:**
299
300| **参数名**  | **类型** | **必填** | 说明                    |
301| ----------- | -------- | -------- | ----------------------- |
302| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
303
304**返回值:**
305
306| 类型   | 说明                         |
307| ------ | ---------------------------- |
308| number | 值类型为双浮点数形式返回指定列的值。 |
309
310**示例:**
311
312```ts
313let columnIndex = 1;
314let goToFirstRow = resultSet.goToFirstRow();
315let getDouble = resultSet.getDouble(columnIndex);
316console.info('resultSet.getDouble: ' + getDouble);
317```
318
319### close
320
321close(): void
322
323关闭结果集。
324
325**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
326
327**示例:**
328
329```ts
330resultSet.close();
331```
332
333### getColumnIndex
334
335getColumnIndex(columnName: string): number
336
337根据指定的列名获取列索引。
338
339**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
340
341**参数:**
342
343| **参数名** | **类型** | **必填** | 说明                       |
344| ---------- | -------- | -------- | -------------------------- |
345| columnName | string   | 是       | 表示结果集中指定列的名称。 |
346
347**返回值:**
348
349| 类型   | 说明               |
350| ------ | ------------------ |
351| number | 返回指定列的索引。 |
352
353**示例:**
354
355```ts
356let ColumnName = "name";
357let getColumnIndex = resultSet.getColumnIndex(ColumnName);
358console.info('resultSet.getColumnIndex: ' + getColumnIndex);
359```
360
361### getColumnName
362
363getColumnName(columnIndex: number): string
364
365根据指定的列索引获取列名。
366
367**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
368
369**参数:**
370
371| **参数名**  | **类型** | **必填** | 说明                       |
372| ----------- | -------- | -------- | -------------------------- |
373| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
374
375**返回值:**
376
377| 类型   | 说明               |
378| ------ | ------------------ |
379| string | 返回指定列的名称。 |
380
381**示例:**
382
383```ts
384let columnIndex = 1;
385let getColumnName = resultSet.getColumnName(columnIndex);
386console.info('resultSet.getColumnName: ' + getColumnName);
387```
388
389### getDataType
390
391getDataType(columnIndex: number): DataType
392
393指定列索引获取该列的数据类型。
394
395**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
396
397**参数:**
398
399| **参数名**  | **类型** | **必填** | 说明                       |
400| ----------- | -------- | -------- | -------------------------- |
401| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
402
403**返回值:**
404
405| 类型                  | 说明               |
406| --------------------- | ------------------ |
407| [DataType](#datatype) | 返回指定列的类型。 |
408
409**示例:**
410
411```ts
412let columnIndex = 1;
413let getDataType = resultSet.getDataType(columnIndex);
414console.info('resultSet.getDataType: ' + getDataType);
415```
416
417## DataType
418
419数据类型枚举。
420
421**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
422
423| 名称        | 值 | 说明                 |
424| ----------- | ------ | -------------------- |
425| TYPE_NULL   | 0      | 表示值类型为空。     |
426| TYPE_LONG   | 1      | 表示值类型为长整数值。   |
427| TYPE_DOUBLE | 2      | 表示值类型为双浮点数。 |
428| TYPE_STRING | 3      | 表示值类型为字符串。 |
429| TYPE_BLOB   | 4      | 表示值类型为字节数组。 |