OpenHarmony关系型数据库查询结果呈现

1 resultset(结果集)resultset(结果集)是openharmony关系型数据库提供查询数据表返回结果的方法,提供了多种灵活的数据访问方式,以便于开发者获取各项数据,resultset属性如表1-1所示,resultset方法如表1-2所示。
表1-1 resultset属性
名称类型必填说明
columnnames array 是 结果集中所有列的名称
columncount number 是 结果集中的列数
rowcount number 是 结果集中的行数
rowindex number 是 结果集当前行的索引
isatfirstrow boolean 是 结果集是否位于第一行
isatlastrow boolean 是 结果集是否位于最后一行
isended boolean 是 结果集是否位于最后一行之后
isstarted boolean 是 指针是否移动过
isclosed boolean 是 当前结果集是否关闭
表1-2 resultset方法
名称描述
getcolumnindex(columnname: string): number 根据指定的列名获取列索引columnname: 结果集中指定列的名称 number: 返回指定列的索引
getcolumnname(columnindex: number): string 根据指定的列索引获取列名columnindex: 结果集中指定列的索引string: 返回指定列的名称
goto(offset: number): boolean 向前或向后转至结果集的指定行,相对于当前行位置偏移offset: 表示相对于当前行位置偏移量boolean:操作成功,则为true,否则为false
gotorow(position: number): boolean 转到结果集的指定行position: 表示要移动到的指定位置boolean: 操作成功,则为true,否则为false
gotofirstrow(): boolean 转到结果集的第一行boolean: 操作成功,则为true,否则为false
gotolastrow(): boolean 转到结果集的最后一行boolean: 操作成功,则为true,否则为false
gotonextrow(): boolean 转到结果集的下一行boolean: 操作成功,则为true,否则为false
gotopreviousrow(): boolean 转到结果集上一行boolean: 操作成功,则为true,否则为false
getblob(columnindex: number): uint8array 以字节数组的形式获取当前行中指定列的值指定的列索引,从0开始uint8array: 以字节数组的形式返回指定列的值
getstring(columnindex: number): string 以字符串形式获取当前行中指定列的值columnindex: 指定的列索引,从0开始string: 以字符串形式返回指定列的值
getlong(columnindex: number): number 以long形式获取当前行中指定列的值columnindex: 指定的列索引,从0开始number: 以long形式返回指定列的值。该接口支持的数据范围是:number.min_safe_integer~number.max_safe_integer,若超出该范围,则建议使用getdouble
getdouble(columnindex: number): number 以double形式获取当前行中指定列的值columnindex: 指定的列索引,从0开始number: 以double形式返回指定列的值
iscolumnnull(columnindex: number): boolean 检查当前行中指定列的值是否为nullcolumnindex: 指定的列索引,从0开始boolean: 当前行中指定列的值为null,则返回true,否则为false
close(): void 关闭结果集
2 流程
3 步骤3.1 获取resultset结果集通过rdbstore实例的query()或querysql()方法获得resultset结果集。
let predicates = new relationalstore.rdbpredicates(this.tablename);let result = await this.rdbstore.query(predicates, columns);3.2 自定义返回结果类自定义tableresultset类用于前台展示。
export class tableresultset { private total: number; // 总条数 private data: any; // 数据表数据 settotal(total: number) { this.total = total; } setdata(data: any) { this.data = data; }}3.3 结果集转返回结果resultset并不能直接用来展示,通过resultset提供的各类方法获取需要的信息。
private resulttoobject(result: relationalstore.resultset) { let trs = new tableresultset(); trs.setdata(result.rowcount); let data: array = []; let count = result.rowcount; if (count === 0 || typeof count === 'string') { trs.setdata([]); } else { // 从数据第一行开始读取 result.gotofirstrow(); for (let j = 0; j < count; j++) { let temp: any = {}; for (let i = 0; i { gridcol() { text(field) .width(100%).height(54) .fontsize(16) .textalign(textalign.center) } .colstyle() }) } .width('90%').height(54) .backgroundcolor(0xe5e5e5) // 显示表数据 foreach(this.result.data, (item) => { gridrow({ columns: tableconstants.t_account_fields.length, direction: gridrowdirection.row }) { foreach(tableconstants.t_account_fields, (field) => { gridcol() { this.label(item[field.name].tostring()) } .colstyle() }) } .width('90%').height(54) .backgroundcolor(0xf5f5f5) }, temp => temp.tostring()) }}.width('100%')

刚刚!最新中国MEMS传感器10强企业名单公布!(附全名单)
电机的星形和三角形接法
手持式智能农业气象环境检测仪的突出性能说明
如何快速识别PCB板的层数
马化腾入股科大讯飞
OpenHarmony关系型数据库查询结果呈现
2017年LED 照明白皮书,转型的四大方向
能摸能听的天翼
理解单端,伪差分和全差分ADC输入-Understandin
全景相机防水泄压膜ES672材料:既防水又透气泄压
为windows XP的USB设备添加“只读属性”方法及图解
中美 SaaS 领域的差别
科学家创造出脑打字系统
一文看懂码灵半导体CFW32C7UL系列MPU产品应用(六): ISP图像处理单元
VR相机品牌 Insta360 主打运动相机,对标GoPro
amoled屏幕会漏液吗_tft屏幕和amoled哪个好
IPX7级户外防水音箱透气膜产品的特点以及优势
ai边缘计算在视觉分析领域的优点?ai边缘计算可以应用于哪些领域
Openwrt实现4G模块上网功能
GPU引擎增强了超声检测到的大脑运动计算