当然在服务器端实现了:(sql server)记住当前的页数:如n.
上一页: select Top 50 * from (select Top (50*(n-1)) * from your_table) as dd order by id desc
下一页:select Top 50 * from (select Top (50*(n+1)) * from your_table) as dd order by id desc
第n页:select Top 50 * from (select Top (50*n) * from your_table) as dd order by id desc
上一页: select Top 50 * from (select Top (50*(n-1)) * from your_table) as dd order by id desc
下一页:select Top 50 * from (select Top (50*(n+1)) * from your_table) as dd order by id desc
第n页:select Top 50 * from (select Top (50*n) * from your_table) as dd order by id desc
先查询生成一个游标循环,再定义两个变量,一个做计数用i,每FETCH一次就加1。当该变量大于10就退出循环。还一个变量定义当前已经显示的最后一条记录到了第几条J。点中“下一页”后,从第J条以前的,光FETCH不显示;第J到J+10条FETCH并且显示,J+10以后又退出循环。以此类推。
同时可以直接使用ado的RECORDSET的属性PAGESIZE/PAGECOUNT等
我觉得笨笨的办法可以一试,但不知在Oracle、Informix和Sybase数据库上能否实现。
另外,july,ADO好像对非SQL Server数据库支持不算好,而且ADO的RecordSet是否算本地缓存的一种呢?
希望大家能继续发表意见