js-apis-data-DataShareResultSet.md 11.6 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.data.dataShareResultSet (数据共享结果集)
S
songruirui 已提交
2

S
修改  
songruirui 已提交
3
**结果集(DataShareResultSet)** 可提供访问由查询数据库生成的结果集的相关方法,根据提供的行数,查询相应的值,也可查询指定数据类型的值。
S
songruirui 已提交
4

5
> **说明:** 
S
songruirui 已提交
6
>
7 8 9
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> 本模块接口为系统接口。
S
songruirui 已提交
10 11 12 13


## 导入模块

14
```ts
S
songruirui 已提交
15
import DataShareResultSet from '@ohos.data.DataShareResultSet';
S
songruirui 已提交
16 17 18 19
```

## 使用说明

S
修改  
songruirui 已提交
20
需要通过调用[query](js-apis-data-dataShare.md#query)接口获取DataShareResultSet对象。
S
songruirui 已提交
21

22
```ts
S
songruirui 已提交
23
import dataShare from '@ohos.data.dataShare';
S
songruirui 已提交
24
import dataSharePredicates from '@ohos.data.dataSharePredicates'
25
import { BusinessError } from '@ohos.base'
S
songruirui 已提交
26

27
let dataShareHelper: dataShare.DataShareHelper;
S
songruirui 已提交
28 29 30
let uri = ("datashare:///com.samples.datasharetest.DataShare");
await dataShare.createDataShareHelper(this.context, uri, (err, data) => {
	if (err != undefined) {
S
srr101 已提交
31
        console.error("createDataShareHelper fail, error message : " + err);
S
songruirui 已提交
32 33 34 35 36 37
    } else {
        console.info("createDataShareHelper end, data : " + data);
        dataShareHelper = data;
    }
});

S
songruirui 已提交
38
let columns = ["*"];
S
songruirui 已提交
39
let da = new dataSharePredicates.DataSharePredicates();
40
let resultSet: DataShareResultSet;
S
songruirui 已提交
41
da.equalTo("name", "ZhangSan");
42
dataShareHelper.query(uri, da, columns).then((data: DataShareResultSet) => {
S
srr101 已提交
43
    console.info("query end, data : " + data);
S
songruirui 已提交
44
    resultSet = data;
45
}).catch((err: BusinessError) => {
S
srr101 已提交
46
	console.error("query fail, error message : " + err);
S
songruirui 已提交
47
});
S
songruirui 已提交
48 49
```

G
ge-yafang 已提交
50 51 52 53
## DataShareResultSet
提供通过查询数据库生成的结果集的相关访问方法。

### 属性
S
songruirui 已提交
54

S
songruirui 已提交
55 56
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core

57
| 名称        | 类型      | 必填 | 说明                     |
S
songruirui 已提交
58
| ----------- | ------------- | ---- | ------------------------ |
S
songruirui 已提交
59
| columnNames | Array<string> | 是   | 结果集中所有列的名称。   |
S
songruirui 已提交
60 61
| columnCount | number        | 是   | 结果集中的列数。         |
| rowCount    | number        | 是   | 结果集中的行数。         |
S
songruirui 已提交
62
| isClosed    | boolean       | 是   | 标识当前结果集是否关闭。 |
S
songruirui 已提交
63

G
ge-yafang 已提交
64
### goToFirstRow
S
songruirui 已提交
65

S
songruirui 已提交
66
goToFirstRow(): boolean
S
songruirui 已提交
67

S
songruirui 已提交
68
转到结果集的第一行。
S
songruirui 已提交
69

S
songruirui 已提交
70
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
71 72 73

**返回值:**

S
songruirui 已提交
74 75 76
| 类型    | 说明                                          |
| :------ | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
77 78 79

**示例:**

80
```ts
S
songruirui 已提交
81 82 83 84
let isGoTOFirstRow = resultSet.goToFirstRow();
console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow);
```

G
ge-yafang 已提交
85
### goToLastRow
S
songruirui 已提交
86

S
songruirui 已提交
87
goToLastRow(): boolean
S
songruirui 已提交
88

S
songruirui 已提交
89
转到结果集的最后一行。
S
songruirui 已提交
90

S
songruirui 已提交
91
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
92 93 94 95 96

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
S
songruirui 已提交
97
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
98 99 100

**示例:**

101
```ts
S
songruirui 已提交
102 103 104 105
let isGoToLastRow = resultSet.goToLastRow();
console.info('resultSet.goToLastRow: ' + isGoToLastRow);
```

G
ge-yafang 已提交
106
### goToNextRow
S
songruirui 已提交
107

S
songruirui 已提交
108
goToNextRow(): boolean
S
songruirui 已提交
109

S
songruirui 已提交
110
转到结果集的下一行。
S
songruirui 已提交
111

S
songruirui 已提交
112
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
113 114 115

**返回值:**

S
songruirui 已提交
116 117 118
| 类型    | 说明                                          |
| ------- | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
119 120 121

**示例:**

122
```ts
S
songruirui 已提交
123 124 125 126
let isGoToNextRow = resultSet.goToNextRow();
console.info('resultSet.goToNextRow: ' + isGoToNextRow);
```

G
ge-yafang 已提交
127
### goToPreviousRow
S
songruirui 已提交
128

S
songruirui 已提交
129
goToPreviousRow(): boolean
S
songruirui 已提交
130

S
songruirui 已提交
131
转到结果集的上一行。
S
songruirui 已提交
132

S
songruirui 已提交
133
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
134 135 136

**返回值:**

S
songruirui 已提交
137 138 139
| 类型    | 说明                                          |
| ------- | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
140 141 142

**示例:**

143
```ts
S
songruirui 已提交
144 145 146 147
let isGoToPreviousRow = resultSet.goToPreviousRow();
console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
```

G
ge-yafang 已提交
148
### goTo
S
songruirui 已提交
149

S
songruirui 已提交
150
goTo(offset:number): boolean
S
songruirui 已提交
151

S
修改  
songruirui 已提交
152
相对于当前位置向前或向后移动指定行数。
S
songruirui 已提交
153

S
songruirui 已提交
154
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
155 156 157

**参数:**

S
修改  
songruirui 已提交
158 159 160
| **参数名** | **类型** | **必填** | 说明                                                         |
| ---------- | -------- | -------- | ------------------------------------------------------------ |
| offset     | number   | 是       | 表示相对于当前位置的偏移量。offset为负值表示向前偏移,正值则表示向后偏移。 |
S
songruirui 已提交
161 162 163

**返回值:**

S
songruirui 已提交
164 165 166
| 类型    | 说明                                          |
| ------- | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
167 168 169

**示例:**

170
```ts
S
songruirui 已提交
171 172 173 174 175
let goToNum = 1;
let isGoTo = resultSet.goTo(goToNum);
console.info('resultSet.goTo: ' + isGoTo);
```

G
ge-yafang 已提交
176
### goToRow
S
songruirui 已提交
177

S
songruirui 已提交
178
goToRow(position: number): boolean
S
songruirui 已提交
179

S
songruirui 已提交
180
转到结果集的指定行。
S
songruirui 已提交
181

S
songruirui 已提交
182
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
183 184 185 186 187

**参数:**

| **参数名** | **类型** | **必填** | 说明                     |
| ---------- | -------- | -------- | ------------------------ |
S
songruirui 已提交
188
| position   | number   | 是       | 表示要移动到的指定位置。 |
S
songruirui 已提交
189 190 191

**返回值:**

S
songruirui 已提交
192 193 194
| 类型    | 说明                                          |
| ------- | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
195 196 197

**示例:**

198
```ts
199
let goToRowNum = 2;
S
songruirui 已提交
200 201 202 203
let isGoToRow = resultSet.goToRow(goToRowNum);
console.info('resultSet.goToRow: ' + isGoToRow);
```

G
ge-yafang 已提交
204
### getBlob
S
songruirui 已提交
205

S
songruirui 已提交
206
getBlob(columnIndex: number): Uint8Array
S
songruirui 已提交
207

S
songruirui 已提交
208
以字节数组的形式获取当前行中指定列的值。
S
songruirui 已提交
209

S
songruirui 已提交
210
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
211 212 213

**参数:**

S
songruirui 已提交
214 215 216
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
217 218 219

**返回值:**

S
songruirui 已提交
220 221 222
| 类型       | 说明                             |
| ---------- | -------------------------------- |
| Uint8Array | 以字节数组的形式返回指定列的值。 |
S
songruirui 已提交
223 224 225

**示例:**

226
```ts
227
let columnIndex = 1;
S
songruirui 已提交
228 229 230 231 232
let goToFirstRow = resultSet.goToFirstRow();
let getBlob = resultSet.getBlob(columnIndex);
console.info('resultSet.getBlob: ' + getBlob);
```

G
ge-yafang 已提交
233
### getString
S
songruirui 已提交
234

235
getString(columnIndex: number): string
S
songruirui 已提交
236

S
songruirui 已提交
237
以字符串形式获取当前行中指定列的值。
S
songruirui 已提交
238

S
songruirui 已提交
239
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
240 241 242

**参数:**

S
songruirui 已提交
243 244 245
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
246 247 248

**返回值:**

S
songruirui 已提交
249 250 251
| 类型   | 说明                         |
| ------ | ---------------------------- |
| string | 以字符串形式返回指定列的值。 |
S
songruirui 已提交
252 253 254

**示例:**

255
```ts
256
let columnIndex = 1;
S
songruirui 已提交
257 258 259 260 261
let goToFirstRow = resultSet.goToFirstRow();
let getString = resultSet.getString(columnIndex);
console.info('resultSet.getString: ' + getString);
```

G
ge-yafang 已提交
262
### getLong
S
songruirui 已提交
263

S
songruirui 已提交
264
getLong(columnIndex: number): number
S
songruirui 已提交
265

S
songruirui 已提交
266
以长整数值形式获取当前行中指定列的值。
S
songruirui 已提交
267

S
songruirui 已提交
268
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
269 270 271

**参数:**

S
songruirui 已提交
272 273 274
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
275 276 277

**返回值:**

S
songruirui 已提交
278 279
| 类型   | 说明                       |
| ------ | -------------------------- |
S
songruirui 已提交
280
| number | 以长整数值形式返回指定列的值。 |
S
songruirui 已提交
281 282 283

**示例:**

284
```ts
285
let columnIndex = 1;
S
songruirui 已提交
286 287 288 289 290
let goToFirstRow = resultSet.goToFirstRow();
let getLong = resultSet.getLong(columnIndex);
console.info('resultSet.getLong: ' + getLong);
```

G
ge-yafang 已提交
291
### getDouble
S
songruirui 已提交
292

S
songruirui 已提交
293
getDouble(columnIndex: number): number
S
songruirui 已提交
294

S
songruirui 已提交
295
以值类型为双浮点数形式获取当前行中指定列的值。
S
songruirui 已提交
296

S
songruirui 已提交
297
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
298 299 300

**参数:**

S
songruirui 已提交
301 302 303
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
304 305 306

**返回值:**

S
songruirui 已提交
307 308
| 类型   | 说明                         |
| ------ | ---------------------------- |
S
songruirui 已提交
309
| number | 值类型为双浮点数形式返回指定列的值。 |
S
songruirui 已提交
310 311 312

**示例:**

313
```ts
314
let columnIndex = 1;
S
songruirui 已提交
315 316 317 318 319
let goToFirstRow = resultSet.goToFirstRow();
let getDouble = resultSet.getDouble(columnIndex);
console.info('resultSet.getDouble: ' + getDouble);
```

G
ge-yafang 已提交
320
### close
S
songruirui 已提交
321

S
songruirui 已提交
322
close(): void
S
songruirui 已提交
323

S
songruirui 已提交
324
关闭结果集。
S
songruirui 已提交
325

S
songruirui 已提交
326
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
327 328 329

**示例:**

330
```ts
S
songruirui 已提交
331 332 333
resultSet.close();
```

G
ge-yafang 已提交
334
### getColumnIndex
S
songruirui 已提交
335

S
songruirui 已提交
336
getColumnIndex(columnName: string): number
S
songruirui 已提交
337

S
songruirui 已提交
338
根据指定的列名获取列索引。
S
songruirui 已提交
339

S
songruirui 已提交
340
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
341 342 343

**参数:**

S
songruirui 已提交
344 345 346
| **参数名** | **类型** | **必填** | 说明                       |
| ---------- | -------- | -------- | -------------------------- |
| columnName | string   | 是       | 表示结果集中指定列的名称。 |
S
songruirui 已提交
347 348 349

**返回值:**

S
songruirui 已提交
350 351 352
| 类型   | 说明               |
| ------ | ------------------ |
| number | 返回指定列的索引。 |
S
songruirui 已提交
353 354 355

**示例:**

356
```ts
357 358
let ColumnName = "name";
let getColumnIndex = resultSet.getColumnIndex(ColumnName);
S
songruirui 已提交
359 360 361
console.info('resultSet.getColumnIndex: ' + getColumnIndex);
```

G
ge-yafang 已提交
362
### getColumnName
S
songruirui 已提交
363

364
getColumnName(columnIndex: number): string
S
songruirui 已提交
365

S
songruirui 已提交
366
根据指定的列索引获取列名。
S
songruirui 已提交
367

S
songruirui 已提交
368
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
369 370 371

**参数:**

S
songruirui 已提交
372 373 374
| **参数名**  | **类型** | **必填** | 说明                       |
| ----------- | -------- | -------- | -------------------------- |
| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
S
songruirui 已提交
375 376 377

**返回值:**

S
songruirui 已提交
378 379 380
| 类型   | 说明               |
| ------ | ------------------ |
| string | 返回指定列的名称。 |
S
songruirui 已提交
381 382 383

**示例:**

384
```ts
385 386
let columnIndex = 1;
let getColumnName = resultSet.getColumnName(columnIndex);
S
songruirui 已提交
387 388 389
console.info('resultSet.getColumnName: ' + getColumnName);
```

G
ge-yafang 已提交
390
### getDataType
S
songruirui 已提交
391

S
songruirui 已提交
392
getDataType(columnIndex: number): DataType
S
songruirui 已提交
393

S
songruirui 已提交
394
指定列索引获取该列的数据类型。
S
songruirui 已提交
395

S
songruirui 已提交
396
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
397 398 399

**参数:**

S
songruirui 已提交
400 401 402
| **参数名**  | **类型** | **必填** | 说明                       |
| ----------- | -------- | -------- | -------------------------- |
| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
S
songruirui 已提交
403 404 405

**返回值:**

S
songruirui 已提交
406 407 408
| 类型                  | 说明               |
| --------------------- | ------------------ |
| [DataType](#datatype) | 返回指定列的类型。 |
S
songruirui 已提交
409 410 411

**示例:**

412
```ts
S
songruirui 已提交
413 414 415 416 417
let columnIndex = 1;
let getDataType = resultSet.getDataType(columnIndex);
console.info('resultSet.getDataType: ' + getDataType);
```

G
ge-yafang 已提交
418
## DataType
S
songruirui 已提交
419

S
修改  
songruirui 已提交
420
数据类型枚举。
S
songruirui 已提交
421

S
songruirui 已提交
422
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
423

S
修改  
songruirui 已提交
424
| 名称        | 值 | 说明                 |
S
songruirui 已提交
425 426
| ----------- | ------ | -------------------- |
| TYPE_NULL   | 0      | 表示值类型为空。     |
S
songruirui 已提交
427 428 429 430
| TYPE_LONG   | 1      | 表示值类型为长整数值。   |
| TYPE_DOUBLE | 2      | 表示值类型为双浮点数。 |
| TYPE_STRING | 3      | 表示值类型为字符串。 |
| TYPE_BLOB   | 4      | 表示值类型为字节数组。 |