当然在服务器端实现了:(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

解决方案 »

  1.   

    许多网站采取的方法是限制最多返回最符合条件的100条记录,再多就只能更严格的限定搜索条件,象msdn. 对于100条左右的记录,无论是在哪一层实现都没有问题了。
      

  2.   

    无论那种数据库,在页面显示(一次显示10条记录):
        先查询生成一个游标循环,再定义两个变量,一个做计数用i,每FETCH一次就加1。当该变量大于10就退出循环。还一个变量定义当前已经显示的最后一条记录到了第几条J。点中“下一页”后,从第J条以前的,光FETCH不显示;第J到J+10条FETCH并且显示,J+10以后又退出循环。以此类推。
      

  3.   

    yangzi(笨笨) 的是一种方法!
    同时可以直接使用ado的RECORDSET的属性PAGESIZE/PAGECOUNT等
      

  4.   

        感谢大家的热心帮助
        我觉得笨笨的办法可以一试,但不知在Oracle、Informix和Sybase数据库上能否实现。
        另外,july,ADO好像对非SQL Server数据库支持不算好,而且ADO的RecordSet是否算本地缓存的一种呢?
        希望大家能继续发表意见
      

  5.   

    oracle中我使用的是minus这个自带差集函数