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