js-apis-data-DataShareResultSet.md 12.3 KB
Newer Older
S
songruirui 已提交
1
# DataShareResultSet
S
songruirui 已提交
2

S
songruirui 已提交
3
**结果集(DataShareResultSet)** 是为了提供通过查询数据库生成的结果集的访问方法,可以根据提供的行数,查询相应的值,也可以查询指定数据类型的值。
S
songruirui 已提交
4 5

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


## 导入模块

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

## 使用说明

S
songruirui 已提交
18
需要通过[dataShare.query()](js-apis-data-dataShare.md#query)获取DataShareResultSet对象。
S
songruirui 已提交
19

S
songruirui 已提交
20
```ts
S
songruirui 已提交
21 22
import dataShare from '@ohos.data.dataShare';

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

let columns = ["*"]
let da = new dataShare.DataSharePredicates();
let resultSet;
da.equalTo("name", "ZhangSan");
dataShareHelper.query(uri, da, columns).then((data) => {
    console.log("query end, data : " + data);
    resultSet = data;
}).catch((err) => {
	console.log("query fail, error message : " + err);
});
S
songruirui 已提交
44 45 46 47
```

## 属性

S
songruirui 已提交
48 49 50 51 52 53
| 名称        | 参数类型      | 必填 | 说明                     |
| ----------- | ------------- | ---- | ------------------------ |
| columnNames | Array<string> | 是   | 结果集中所有列的名称。   |
| columnCount | number        | 是   | 结果集中的列数。         |
| rowCount    | number        | 是   | 结果集中的行数。         |
| isClosed    | boolean       | 是   | 标志当前结果集是否关闭。 |
S
songruirui 已提交
54 55 56

## goToFirstRow

S
songruirui 已提交
57
goToFirstRow(): boolean;
S
songruirui 已提交
58

S
songruirui 已提交
59
该接口用于转到结果集的第一行。
S
songruirui 已提交
60 61 62 63 64

**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core。

**返回值:**

S
songruirui 已提交
65 66 67
| 类型    | 说明                                          |
| :------ | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
68 69 70

**示例:**

S
songruirui 已提交
71 72 73
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
74 75 76 77 78 79
let isGoTOFirstRow = resultSet.goToFirstRow();
console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow);
```

## goToLastRow

S
songruirui 已提交
80
goToLastRow(): boolean;
S
songruirui 已提交
81

S
songruirui 已提交
82
该接口用于转到结果集的最后一行。
S
songruirui 已提交
83 84 85 86 87 88 89

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
S
songruirui 已提交
90
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
91 92 93

**示例:**

S
songruirui 已提交
94 95 96
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
97 98 99 100 101 102
let isGoToLastRow = resultSet.goToLastRow();
console.info('resultSet.goToLastRow: ' + isGoToLastRow);
```

## goToNextRow

S
songruirui 已提交
103
goToNextRow(): boolean;
S
songruirui 已提交
104

S
songruirui 已提交
105
该接口用于转到结果集的下一行。
S
songruirui 已提交
106 107 108 109 110

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**返回值:**

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

**示例:**

S
songruirui 已提交
117 118 119
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
120 121 122 123 124 125 126 127
let isGoToNextRow = resultSet.goToNextRow();
console.info('resultSet.goToNextRow: ' + isGoToNextRow);
```

## goToPreviousRow

goToPreviousRow(): boolean;

S
songruirui 已提交
128
该接口用于转到结果集的上一行。
S
songruirui 已提交
129 130 131 132 133

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**返回值:**

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

**示例:**

S
songruirui 已提交
140 141 142
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
143 144 145 146 147 148 149 150
let isGoToPreviousRow = resultSet.goToPreviousRow();
console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
```

## goTo

goTo(offset:number): boolean;

S
songruirui 已提交
151
该接口用于向前或向后转至结果集的指定行,相对于其当前位置偏移。
S
songruirui 已提交
152 153 154 155 156 157 158

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

| **参数名** | **类型** | **必填** | 说明                         |
| ---------- | -------- | -------- | ---------------------------- |
S
songruirui 已提交
159
| offset     | number   | 是       | 表示相对于当前位置的偏移量。 |
S
songruirui 已提交
160 161 162

**返回值:**

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

**示例:**

S
songruirui 已提交
169 170 171
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
172 173 174 175 176 177 178 179 180
let goToNum = 1;
let isGoTo = resultSet.goTo(goToNum);
console.info('resultSet.goTo: ' + isGoTo);
```

## goToRow

goToRow(position: number): boolean;

S
songruirui 已提交
181
该接口用于转到结果集的指定行。
S
songruirui 已提交
182 183 184 185 186 187 188

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

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

**返回值:**

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

**示例:**

S
songruirui 已提交
199 200 201
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
202 203 204 205 206 207 208
let goToRowNum = 2
let isGoToRow = resultSet.goToRow(goToRowNum);
console.info('resultSet.goToRow: ' + isGoToRow);
```

## getBlob

S
songruirui 已提交
209
getBlob(columnIndex: number): Uint8Array;
S
songruirui 已提交
210

S
songruirui 已提交
211
该接口用于以字节数组的形式获取当前行中指定列的值。
S
songruirui 已提交
212 213 214 215 216

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

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

**返回值:**

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

**示例:**

S
songruirui 已提交
229 230 231
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
232 233 234 235 236 237 238 239
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getBlob = resultSet.getBlob(columnIndex);
console.info('resultSet.getBlob: ' + getBlob);
```

## getString

S
songruirui 已提交
240
getString(columnIndex: number): *string*;
S
songruirui 已提交
241

S
songruirui 已提交
242
该接口用于以字符串形式获取当前行中指定列的值。
S
songruirui 已提交
243 244 245 246 247

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

S
songruirui 已提交
248 249 250
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
251 252 253

**返回值:**

S
songruirui 已提交
254 255 256
| 类型   | 说明                         |
| ------ | ---------------------------- |
| string | 以字符串形式返回指定列的值。 |
S
songruirui 已提交
257 258 259

**示例:**

S
songruirui 已提交
260 261 262
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
263 264 265 266 267 268 269 270
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getString = resultSet.getString(columnIndex);
console.info('resultSet.getString: ' + getString);
```

## getLong

S
songruirui 已提交
271
getLong(columnIndex: number): *number*;
S
songruirui 已提交
272

S
songruirui 已提交
273
该接口用于以Long形式获取当前行中指定列的值。
S
songruirui 已提交
274 275 276 277 278

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

S
songruirui 已提交
279 280 281
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
282 283 284

**返回值:**

S
songruirui 已提交
285 286 287
| 类型   | 说明                       |
| ------ | -------------------------- |
| number | 以Long形式返回指定列的值。 |
S
songruirui 已提交
288 289 290

**示例:**

S
songruirui 已提交
291 292 293
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
294 295 296 297 298 299 300 301
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getLong = resultSet.getLong(columnIndex);
console.info('resultSet.getLong: ' + getLong);
```

## getDouble

S
songruirui 已提交
302
getDouble(columnIndex: number): *number*;
S
songruirui 已提交
303

S
songruirui 已提交
304
该接口用于以double形式获取当前行中指定列的值。
S
songruirui 已提交
305 306 307 308 309

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

S
songruirui 已提交
310 311 312
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
313 314 315

**返回值:**

S
songruirui 已提交
316 317 318
| 类型   | 说明                         |
| ------ | ---------------------------- |
| number | 以double形式返回指定列的值。 |
S
songruirui 已提交
319 320 321

**示例:**

S
songruirui 已提交
322 323 324
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
325 326 327 328 329 330 331 332
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getDouble = resultSet.getDouble(columnIndex);
console.info('resultSet.getDouble: ' + getDouble);
```

## close

S
songruirui 已提交
333
close(): void;
S
songruirui 已提交
334

S
songruirui 已提交
335
该接口用于关闭结果集。
S
songruirui 已提交
336 337 338 339 340

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**示例:**

S
songruirui 已提交
341
```ts
S
songruirui 已提交
342 343 344 345 346
resultSet.close();
```

## getColumnIndex

S
songruirui 已提交
347
getColumnIndex(columnName: string): *number*;
S
songruirui 已提交
348

S
songruirui 已提交
349
该接口用于根据指定的列名获取列索引。
S
songruirui 已提交
350 351 352 353 354

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

S
songruirui 已提交
355 356 357
| **参数名** | **类型** | **必填** | 说明                       |
| ---------- | -------- | -------- | -------------------------- |
| columnName | string   | 是       | 表示结果集中指定列的名称。 |
S
songruirui 已提交
358 359 360

**返回值:**

S
songruirui 已提交
361 362 363
| 类型   | 说明               |
| ------ | ------------------ |
| number | 返回指定列的索引。 |
S
songruirui 已提交
364 365 366

**示例:**

S
songruirui 已提交
367 368 369
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
370 371 372 373 374 375 376
let ColumnName = "name"
let getColumnIndex = resultSet.getColumnIndex(ColumnName)
console.info('resultSet.getColumnIndex: ' + getColumnIndex);
```

## getColumnName

S
songruirui 已提交
377
getColumnName(columnIndex: number): *string*;
S
songruirui 已提交
378

S
songruirui 已提交
379
该接口用于根据指定的列索引获取列名。
S
songruirui 已提交
380 381 382 383 384

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

S
songruirui 已提交
385 386 387
| **参数名**  | **类型** | **必填** | 说明                       |
| ----------- | -------- | -------- | -------------------------- |
| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
S
songruirui 已提交
388 389 390

**返回值:**

S
songruirui 已提交
391 392 393
| 类型   | 说明               |
| ------ | ------------------ |
| string | 返回指定列的名称。 |
S
songruirui 已提交
394 395 396

**示例:**

S
songruirui 已提交
397 398 399
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
400 401 402 403 404 405 406
let columnIndex = 1
let getColumnName = resultSet.getColumnName(columnIndex)
console.info('resultSet.getColumnName: ' + getColumnName);
```

## getDataType

S
songruirui 已提交
407
getDataType(columnIndex: number): DataType;
S
songruirui 已提交
408

S
songruirui 已提交
409
该接口用于获取指定列的数据类型。
S
songruirui 已提交
410 411 412 413 414

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

**参数:**

S
songruirui 已提交
415 416 417
| **参数名**  | **类型** | **必填** | 说明                       |
| ----------- | -------- | -------- | -------------------------- |
| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
S
songruirui 已提交
418 419 420

**返回值:**

S
songruirui 已提交
421 422 423
| 类型                  | 说明               |
| --------------------- | ------------------ |
| [DataType](#datatype) | 返回指定列的类型。 |
S
songruirui 已提交
424 425 426

**示例:**

S
songruirui 已提交
427 428 429
```ts
// Refer to the instructions for the method of obtaining resultSet
let resultSet;
S
songruirui 已提交
430 431 432 433 434 435 436
let columnIndex = 1;
let getDataType = resultSet.getDataType(columnIndex);
console.info('resultSet.getDataType: ' + getDataType);
```

## DataType

S
songruirui 已提交
437
该类型用于用于表示数据类型。
S
songruirui 已提交
438 439 440 441 442 443 444 445 446 447 448 449

只能被内部应用使用。

**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core。

| 名称        | 默认值 | 说明                 |
| ----------- | ------ | -------------------- |
| TYPE_NULL   | 0      | 表示值类型为空。     |
| TYPE_LONG   | 1      | 表示值类型为Long。   |
| TYPE_DOUBLE | 2      | 表示值类型为Double。 |
| TYPE_STRING | 3      | 表示值类型为String。 |
| TYPE_BLOB   | 4      | 表示值类型为Blob。   |