数据集

报表性能优化方案之单数据集分页SQL实现层式报表

点点圈 提交于 2019-12-03 09:12:29
1、概述 我们知道,行式引擎按页取数只适用于Oracle,mysql,hsql和sqlserver2008及以上数据库,其他数据库,如access,sqlserver2005,sqlite等必须编写分页SQL。 下面以Access数据库为例介绍需要写分页SQL的数据库怎样利用行式的引擎实现层式报表。 解决方案提供工具:报表开发工具FineReport 2、解决思路 对于mysql这类可以直接使用行式的引擎实现层式报表的数据库来说,如果勾选了行式引擎,程序会自动生成分页sql,如,我新建了一个数据集ds1,来源于mysql数据库,基本sql语句为: SELECT * FROM 订单明细 如果不定义分页sql,勾选行式引擎选项,预览报表时,程序会将上面的sql语句转化为下面的语句来取一页的数据: SELECT COUNT(*)AS totalRowCount FROM (SELECT * FROM 订单明细) t 如果数据库是上面所说的access一类的无法直接生成分页sql的数据库,那么就需要编写分页SQL。 3、操作步骤 以FRDemo内置的sqlite为例,说明sqlite如何写分页查询。 注:sqlserver2005和sqlite操作步骤一样。 3.1新建数据集 新建数据集ds1:SELECT * FROM 订单明细。 3.2添加分页查询SQL语句