js-apis-data-DataShareResultSet.md 11.4 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'
S
songruirui 已提交
25

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

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

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

### 属性
S
songruirui 已提交
53

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

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

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

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

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

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