本三层结构 中间层采用的ro da,数据库采用的oracle 10g, 客户端使用了cxgrid问题:现在某些表,记录数很多,打开特别慢。我想知道能不能做一个比较通用的函数让数据记录非常多的表,每次只传递部分数据给客户端,客户端通过 命令 分页查看余下的记录,或者显示全部的记录。这个函数 可以放在中间层 或者 数据库层,我觉得都可以因为程序已经做好了,希望改动能比较少麻烦大侠 给个办法来实现,谢谢
解决方案 »
- 如何用delphi 读取系统字体
- 高手这种情况怎么修改?
- 在rxdbrichedit中,同时插入bmp和汉字时,保存的时候成了乱码.???
- 很菜的问题,请帮手,在线等……
- 打印格式问题?高分
- 本人要做一个项目,是学校办公自动化系统,包括办公自动化、人事管理、档案管理、图书管理、学生管理、工资管理、教职工管理等模块。各位有什么好的建议,请畅所欲言,意见被采纳者得分!
- ●☆★●☆★Data2000 v1.1正式发布(想要1157条delphi代码吗?)★☆●★☆●
- 菜鸟问题,如何知道当前是第几条记录???
- Delphi5的language的详细使用方法?
- 請教如何分離出outlook中電子郵件的郵件內容與附件?
- cxgrid fix band 在56s版本怎么就有问题了?
- delphi2010 乱码?!!! 我ku 没有足够的技术分
FROMTestTable
WHERE(IDNOTIN
(SELECTTOP20id
FROMTestTable
ORDERBYid))
ORDERBYID
SELECTTOP页大小*
FROMTestTable
WHERE(IDNOTIN
(SELECTTOP页大小*页数id
FROM表
ORDERBYid))
ORDERBYID 2.分页方案二:(利用ID大于多少和SELECT TOP分页) 语句形式: SELECTTOP10*
FROMTestTable
WHERE(ID>
(SELECTMAX(id)
FROM(SELECTTOP20id
FROMTestTable
ORDERBYid)AST))
ORDERBYID
SELECTTOP页大小*
FROMTestTable
WHERE(ID>
(SELECTMAX(id)
FROM(SELECTTOP页大小*页数id
FROM表
ORDERBYid)AST))
ORDERBYID 3.分页方案三:(利用SQL的游标存储过程分页)create procedureSqlPager
@sqlstrnvarchar(4000),--查询字符串
@currentpageint,--第N页
@pagesizeint--每页行数
as
setnocounton
declare@P1int,--P1是游标的id
@rowcountint
execsp_cursoropen@P1output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcountoutput
selectceiling(1.0*@rowcount/@pagesize)as总页数--,@rowcountas总行数,@currentpageas当前页
set@currentpage=(@currentpage-1)*@pagesize+1
execsp_cursorfetch@P1,16,@currentpage,@pagesize
execsp_cursorclose@P1
setnocountoff