js-apis-data-DataShareResultSet.md 11.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
需要通过调用[query](js-apis-data-dataShare.md#query)接口获取DataShareResultSet对象。
S
songruirui 已提交
19

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

S
songruirui 已提交
24 25 26 27 28 29 30 31 32 33 34
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 已提交
35
let columns = ["*"];
S
songruirui 已提交
36
let da = new dataSharePredicates.DataSharePredicates();
S
songruirui 已提交
37 38 39 40 41 42 43 44
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 已提交
45 46 47 48
```

## 属性

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

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

## goToFirstRow

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

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

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

**返回值:**

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

**示例:**

S
songruirui 已提交
74
```ts
S
songruirui 已提交
75 76 77 78 79 80
let isGoTOFirstRow = resultSet.goToFirstRow();
console.info('resultSet.goToFirstRow: ' + isGoTOFirstRow);
```

## goToLastRow

S
songruirui 已提交
81
goToLastRow(): boolean
S
songruirui 已提交
82

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

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

**返回值:**

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

**示例:**

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

## goToNextRow

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

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

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

**返回值:**

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

**示例:**

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

## goToPreviousRow

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

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

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

**返回值:**

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

**示例:**

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

## goTo

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## goToRow

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## getBlob

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## getString

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## getLong

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## getDouble

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## close

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

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

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

**示例:**

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

## getColumnIndex

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## getColumnName

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## getDataType

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

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

## DataType

S
修改  
songruirui 已提交
414
数据类型枚举。
S
songruirui 已提交
415

S
修改  
songruirui 已提交
416
只支持系统应用,不支持三方应用。
S
songruirui 已提交
417

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

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