1 概述

1.1 版本

服务器版本
v8.0.0及以上版本

1.2 功能说明

存储过程分页查询,用于在处理大量数据时,通过存储过程实现高效分页,减少一次性加载数据量,提升报表、列表页面的加载性能。分页查询需配置固定的分页参数,由系统自动传入当前页、每页条数等信息,并接收总记录数。

1 传入和返回的参数及接纳的变量

在上节规定的参数及接纳变量的规则基础上,还需要有:
√ 返回一个数值参数(必须)
用系统变量“procOutPageRowCount”进行接纳,所代表的含义是“记录总数”。并且,只要确保在第一页的时候该参数有值即可。

2 传递的参数及取值的变量

指乐创者需要传递给存储过程的参数,以及,系统变量为乐创者提供该参数的值。
√传递一个数值参数(必须)
从系统变量“procInPageBeginNum”进行取值,所代表的含义是“分页的开始行”。

√ 传递另一个数值参数(必须)
从系统变量“procInPageEndNum”进行取值,所代表的含义是“分页的结束行”。

3 存储过程 get_pageLists

以存储过程 get_pageLists 为例,如下:

CREATE PROCEDURE `get_pageLists`(OUT _totalcount INT,_startRow INT,_endRow INT,out stateMark INT(10))
BEGIN
#分页存储过程
#计算起始行号
SET @startRow = _startRow; #开始行号
#SET @pageSize = _endRow; #每页记录数
SET @rowindex = 0; #行号
set @currCount = _endRow - _startRow;

#合并字符串 
SET @strsql = CONCAT( 
'select sql_calc_found_rows 订单.* from `订单` limit ' ,@startRow ,',' ,@currCount);
PREPARE strsql FROM @strsql;#定义预处理语句
EXECUTE strsql; #执行预处理语句 
DEALLOCATE PREPARE strsql; #删除定义
#通过 sql_calc_found_rows 记录没有使用 limit 语句的记录,使用 found_rows() 获取行数
SET _totalcount = found_rows();
SET stateMark=0;
END

_totalcountstateMark 两个返回参数,分别表示“返回总记录数” 和 “执行状态”
_startRow_endRow两个输入参数,用于接收分页查询的起止记录编号,乐创者会产生并传入。

sql_calc_found_rowsfound_rows,配合使用是为了获取排除limit限制情况下的记录总数。可自行查阅用法。

4 定义数据模型

4.1 功能入口

进入数据模型管理界面,点击全局“+”或某目录的“+”选择新建模型“存储过程”,如下图:

4.2 存储过程配置

4.2.1 基础配置

1、数据连接:下拉选择目标数据库连接(如示例中的ddsl)。
2、存储过程:下拉选择需要调用的存储过程(如示例中的get_pageLists),可搜索。
3、用途:选择【分页查询】。

4.2.2 参数配置

分页查询需配置以下系统变量参数:

  • procOutPageRowCount: 数据集记录总数,结合每页记录数,便于报表生成总页码。
  • proceInPageBeginNum: 当前页起始行,系统自动计算并传入。
  • proceInPageEndNum:当前页截止行,系统自动计算并传入。
  • proceOutResultType:存储过程执行结果,0:成功,非0:失败。

注意:分页存储过程必须包含上述 4 个参数,否则无法正常使用分页功能。

4.2.3 数据转换(计算列)配置

如需对分页查询返回的数据进行扩展处理(如字段拼接、公式计算),可使用数据转换功能:
点击右上角【数据转换】按钮,弹出配置窗口;

点击【添加】,新增计算列:

  • 计算列名称:自定义字段名(如订单状态名称);
  • 值:支持常量和表达式(支持字段引用、函数、变量);
  • 数据类型:选择计算结果的类型(如 String/Int);
    配置完成后点击【确定】,数据转换规则将在查询运行时自动生效。

5 使用

这样就实现了一个存储过程数据模型的定义,后续应用到报表跟普通SQL视图类似。

注意:设置为系统变量的参数,在引用的地方,由于系统内部传递了,因此不会呈现为参数。此例子中,四个参数都为系统变量,没有业务变量。

分页查询的数据视图,只适合用于数据模式为 海量 ,引擎为 按页取数的报表模板。

作者:fancy  创建时间:2026-04-23 18:11
最后编辑:fancy  更新时间:2026-06-22 11:36