- 论坛徽章:
- 0
|
回复 #1 wingofwind 的帖子
我的解决方案是通过EC程序实现的:
分页记录中页数PAGENUM每页记录数PAGECRDNUM通过参数读入
根据查询条件组织动态查询语句
如果是首次查询
SELECT FIRST PAGECRDNUM COL1,COL2,...,COLn,rowid FROM table WHERE QUERY FILTER ORDER BY ORDER CONDITION,rowid
将选取出的min rowid,max rowid记录下来
下翻一页只需要在QUERY FILTER中加入rowid > max rowid
上翻一页只需要在QUERY FILTER中加入rowid < max rowid
由于FIRST语句不支持子查询,如果要实现跳页查询,需要使用临时表先取得其前一页的最后一条记录的rowid
欲查询第PAGENUM页
SELECT FIRST (PAGENUM - 1)*PAGECRDNUM rowid FROM table WHERE QUERY FILTER ORDER BY ORDER CONDITION,rowid INTO temp tablerowid;
SELECT max(rowid) into :Thresholdrowid FROM tablerowid;
SELECT FIRST PAGECRDNUM COL1,COL2,...,COLn,rowid FROM table WHERE QUERY FILTER AND rowid > Thresholdrowid ORDER BY ORDER CONDITION,rowid
按照这个原理使用SPL效率应该能更好些
呵呵,权当抛砖引玉,希望大家有更好的方法及时提出来共同提高
[ 本帖最后由 wingofwind 于 2008-1-17 11:28 编辑 ] |
|