js-apis-data-DataShareResultSet.md 11.4 KB
Newer Older
S
songruirui 已提交
1
# 数据共享结果集
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
```

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

### 属性
S
songruirui 已提交
51

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

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

G
ge-yafang 已提交
61
### goToFirstRow
S
songruirui 已提交
62

S
songruirui 已提交
63
goToFirstRow(): boolean
S
songruirui 已提交
64

S
songruirui 已提交
65
转到结果集的第一行。
S
songruirui 已提交
66

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
82
### goToLastRow
S
songruirui 已提交
83

S
songruirui 已提交
84
goToLastRow(): boolean
S
songruirui 已提交
85

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

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
103
### goToNextRow
S
songruirui 已提交
104

S
songruirui 已提交
105
goToNextRow(): boolean
S
songruirui 已提交
106

S
songruirui 已提交
107
转到结果集的下一行。
S
songruirui 已提交
108

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
124
### goToPreviousRow
S
songruirui 已提交
125

S
songruirui 已提交
126
goToPreviousRow(): boolean
S
songruirui 已提交
127

S
songruirui 已提交
128
转到结果集的上一行。
S
songruirui 已提交
129

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
145
### goTo
S
songruirui 已提交
146

S
songruirui 已提交
147
goTo(offset:number): boolean
S
songruirui 已提交
148

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
173
### goToRow
S
songruirui 已提交
174

S
songruirui 已提交
175
goToRow(position: number): boolean
S
songruirui 已提交
176

S
songruirui 已提交
177
转到结果集的指定行。
S
songruirui 已提交
178

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
201
### getBlob
S
songruirui 已提交
202

S
songruirui 已提交
203
getBlob(columnIndex: number): Uint8Array
S
songruirui 已提交
204

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
230
### getString
S
songruirui 已提交
231

S
songruirui 已提交
232
getString(columnIndex: number): *string*
S
songruirui 已提交
233

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
259
### getLong
S
songruirui 已提交
260

S
songruirui 已提交
261
getLong(columnIndex: number): number
S
songruirui 已提交
262

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
288
### getDouble
S
songruirui 已提交
289

S
songruirui 已提交
290
getDouble(columnIndex: number): number
S
songruirui 已提交
291

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
317
### close
S
songruirui 已提交
318

S
songruirui 已提交
319
close(): void
S
songruirui 已提交
320

S
songruirui 已提交
321
关闭结果集。
S
songruirui 已提交
322

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

**示例:**

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

G
ge-yafang 已提交
331
### getColumnIndex
S
songruirui 已提交
332

S
songruirui 已提交
333
getColumnIndex(columnName: string): number
S
songruirui 已提交
334

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
359
### getColumnName
S
songruirui 已提交
360

S
songruirui 已提交
361
getColumnName(columnIndex: number): *string*
S
songruirui 已提交
362

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
387
### getDataType
S
songruirui 已提交
388

S
songruirui 已提交
389
getDataType(columnIndex: number): DataType
S
songruirui 已提交
390

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

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

**参数:**

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

**返回值:**

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

**示例:**

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

G
ge-yafang 已提交
415
## DataType
S
songruirui 已提交
416

S
修改  
songruirui 已提交
417
数据类型枚举。
S
songruirui 已提交
418

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

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