js-apis-data-DataShareResultSet.md 11.2 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
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;
    }
});

S
songruirui 已提交
34
let columns = ["*"];
S
songruirui 已提交
35 36 37 38 39 40 41 42 43
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
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core

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

## goToFirstRow

S
songruirui 已提交
59
goToFirstRow(): boolean
S
songruirui 已提交
60

S
songruirui 已提交
61
转到结果集的第一行。
S
songruirui 已提交
62

S
songruirui 已提交
63
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
64 65 66

**返回值:**

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

**示例:**

S
songruirui 已提交
73
```ts
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

S
songruirui 已提交
84
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
85 86 87 88 89

**返回值:**

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

**示例:**

S
songruirui 已提交
94
```ts
S
songruirui 已提交
95 96 97 98 99 100
let isGoToLastRow = resultSet.goToLastRow();
console.info('resultSet.goToLastRow: ' + isGoToLastRow);
```

## goToNextRow

S
songruirui 已提交
101
goToNextRow(): boolean
S
songruirui 已提交
102

S
songruirui 已提交
103
转到结果集的下一行。
S
songruirui 已提交
104

S
songruirui 已提交
105
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
106 107 108

**返回值:**

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

**示例:**

S
songruirui 已提交
115
```ts
S
songruirui 已提交
116 117 118 119 120 121
let isGoToNextRow = resultSet.goToNextRow();
console.info('resultSet.goToNextRow: ' + isGoToNextRow);
```

## goToPreviousRow

S
songruirui 已提交
122
goToPreviousRow(): boolean
S
songruirui 已提交
123

S
songruirui 已提交
124
转到结果集的上一行。
S
songruirui 已提交
125

S
songruirui 已提交
126
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
127 128 129

**返回值:**

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

**示例:**

S
songruirui 已提交
136
```ts
S
songruirui 已提交
137 138 139 140 141 142
let isGoToPreviousRow = resultSet.goToPreviousRow();
console.info('resultSet.goToPreviousRow: ' + isGoToPreviousRow);
```

## goTo

S
songruirui 已提交
143
goTo(offset:number): boolean
S
songruirui 已提交
144

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

S
songruirui 已提交
147
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
148 149 150

**参数:**

S
修改  
songruirui 已提交
151 152 153
| **参数名** | **类型** | **必填** | 说明                                                         |
| ---------- | -------- | -------- | ------------------------------------------------------------ |
| offset     | number   | 是       | 表示相对于当前位置的偏移量。offset为负值表示向前偏移,正值则表示向后偏移。 |
S
songruirui 已提交
154 155 156

**返回值:**

S
songruirui 已提交
157 158 159
| 类型    | 说明                                          |
| ------- | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
160 161 162

**示例:**

S
songruirui 已提交
163
```ts
S
songruirui 已提交
164 165 166 167 168 169 170
let goToNum = 1;
let isGoTo = resultSet.goTo(goToNum);
console.info('resultSet.goTo: ' + isGoTo);
```

## goToRow

S
songruirui 已提交
171
goToRow(position: number): boolean
S
songruirui 已提交
172

S
songruirui 已提交
173
转到结果集的指定行。
S
songruirui 已提交
174

S
songruirui 已提交
175
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
176 177 178 179 180

**参数:**

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

**返回值:**

S
songruirui 已提交
185 186 187
| 类型    | 说明                                          |
| ------- | --------------------------------------------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
S
songruirui 已提交
188 189 190

**示例:**

S
songruirui 已提交
191
```ts
S
songruirui 已提交
192 193 194 195 196 197 198
let goToRowNum = 2
let isGoToRow = resultSet.goToRow(goToRowNum);
console.info('resultSet.goToRow: ' + isGoToRow);
```

## getBlob

S
songruirui 已提交
199
getBlob(columnIndex: number): Uint8Array
S
songruirui 已提交
200

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

S
songruirui 已提交
203
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
204 205 206

**参数:**

S
songruirui 已提交
207 208 209
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
210 211 212

**返回值:**

S
songruirui 已提交
213 214 215
| 类型       | 说明                             |
| ---------- | -------------------------------- |
| Uint8Array | 以字节数组的形式返回指定列的值。 |
S
songruirui 已提交
216 217 218

**示例:**

S
songruirui 已提交
219
```ts
S
songruirui 已提交
220 221 222 223 224 225 226 227
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getBlob = resultSet.getBlob(columnIndex);
console.info('resultSet.getBlob: ' + getBlob);
```

## getString

S
songruirui 已提交
228
getString(columnIndex: number): *string*
S
songruirui 已提交
229

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

S
songruirui 已提交
232
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
233 234 235

**参数:**

S
songruirui 已提交
236 237 238
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
239 240 241

**返回值:**

S
songruirui 已提交
242 243 244
| 类型   | 说明                         |
| ------ | ---------------------------- |
| string | 以字符串形式返回指定列的值。 |
S
songruirui 已提交
245 246 247

**示例:**

S
songruirui 已提交
248
```ts
S
songruirui 已提交
249 250 251 252 253 254 255 256
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getString = resultSet.getString(columnIndex);
console.info('resultSet.getString: ' + getString);
```

## getLong

S
songruirui 已提交
257
getLong(columnIndex: number): number
S
songruirui 已提交
258

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

S
songruirui 已提交
261
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
262 263 264

**参数:**

S
songruirui 已提交
265 266 267
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
268 269 270

**返回值:**

S
songruirui 已提交
271 272
| 类型   | 说明                       |
| ------ | -------------------------- |
S
songruirui 已提交
273
| number | 以长整数值形式返回指定列的值。 |
S
songruirui 已提交
274 275 276

**示例:**

S
songruirui 已提交
277
```ts
S
songruirui 已提交
278 279 280 281 282 283 284 285
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getLong = resultSet.getLong(columnIndex);
console.info('resultSet.getLong: ' + getLong);
```

## getDouble

S
songruirui 已提交
286
getDouble(columnIndex: number): number
S
songruirui 已提交
287

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

S
songruirui 已提交
290
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
291 292 293

**参数:**

S
songruirui 已提交
294 295 296
| **参数名**  | **类型** | **必填** | 说明                    |
| ----------- | -------- | -------- | ----------------------- |
| columnIndex | number   | 是       | 指定的列索引,从0开始。 |
S
songruirui 已提交
297 298 299

**返回值:**

S
songruirui 已提交
300 301
| 类型   | 说明                         |
| ------ | ---------------------------- |
S
songruirui 已提交
302
| number | 值类型为双浮点数形式返回指定列的值。 |
S
songruirui 已提交
303 304 305

**示例:**

S
songruirui 已提交
306
```ts
S
songruirui 已提交
307 308 309 310 311 312 313 314
let columnIndex = 1
let goToFirstRow = resultSet.goToFirstRow();
let getDouble = resultSet.getDouble(columnIndex);
console.info('resultSet.getDouble: ' + getDouble);
```

## close

S
songruirui 已提交
315
close(): void
S
songruirui 已提交
316

S
songruirui 已提交
317
关闭结果集。
S
songruirui 已提交
318

S
songruirui 已提交
319
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
320 321 322

**示例:**

S
songruirui 已提交
323
```ts
S
songruirui 已提交
324 325 326 327 328
resultSet.close();
```

## getColumnIndex

S
songruirui 已提交
329
getColumnIndex(columnName: string): number
S
songruirui 已提交
330

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

S
songruirui 已提交
333
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
334 335 336

**参数:**

S
songruirui 已提交
337 338 339
| **参数名** | **类型** | **必填** | 说明                       |
| ---------- | -------- | -------- | -------------------------- |
| columnName | string   | 是       | 表示结果集中指定列的名称。 |
S
songruirui 已提交
340 341 342

**返回值:**

S
songruirui 已提交
343 344 345
| 类型   | 说明               |
| ------ | ------------------ |
| number | 返回指定列的索引。 |
S
songruirui 已提交
346 347 348

**示例:**

S
songruirui 已提交
349
```ts
S
songruirui 已提交
350 351 352 353 354 355 356
let ColumnName = "name"
let getColumnIndex = resultSet.getColumnIndex(ColumnName)
console.info('resultSet.getColumnIndex: ' + getColumnIndex);
```

## getColumnName

S
songruirui 已提交
357
getColumnName(columnIndex: number): *string*
S
songruirui 已提交
358

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

S
songruirui 已提交
361
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
362 363 364

**参数:**

S
songruirui 已提交
365 366 367
| **参数名**  | **类型** | **必填** | 说明                       |
| ----------- | -------- | -------- | -------------------------- |
| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
S
songruirui 已提交
368 369 370

**返回值:**

S
songruirui 已提交
371 372 373
| 类型   | 说明               |
| ------ | ------------------ |
| string | 返回指定列的名称。 |
S
songruirui 已提交
374 375 376

**示例:**

S
songruirui 已提交
377
```ts
S
songruirui 已提交
378 379 380 381 382 383 384
let columnIndex = 1
let getColumnName = resultSet.getColumnName(columnIndex)
console.info('resultSet.getColumnName: ' + getColumnName);
```

## getDataType

S
songruirui 已提交
385
getDataType(columnIndex: number): DataType
S
songruirui 已提交
386

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

S
songruirui 已提交
389
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
390 391 392

**参数:**

S
songruirui 已提交
393 394 395
| **参数名**  | **类型** | **必填** | 说明                       |
| ----------- | -------- | -------- | -------------------------- |
| columnIndex | number   | 是       | 表示结果集中指定列的索引。 |
S
songruirui 已提交
396 397 398

**返回值:**

S
songruirui 已提交
399 400 401
| 类型                  | 说明               |
| --------------------- | ------------------ |
| [DataType](#datatype) | 返回指定列的类型。 |
S
songruirui 已提交
402 403 404

**示例:**

S
songruirui 已提交
405
```ts
S
songruirui 已提交
406 407 408 409 410 411 412
let columnIndex = 1;
let getDataType = resultSet.getDataType(columnIndex);
console.info('resultSet.getDataType: ' + getDataType);
```

## DataType

S
songruirui 已提交
413
用于表示数据类型。
S
songruirui 已提交
414

S
songruirui 已提交
415
只能被系统应用使用。
S
songruirui 已提交
416

S
songruirui 已提交
417
**系统能力:**  SystemCapability.DistributedDataManager.DataShare.Core
S
songruirui 已提交
418 419 420 421

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