使用Query
sql为: select top 10 * from tablename 
以后依次为:select top 10 * from tablename where id not in(select top 10 * from tablename)
select top 10 * from tablename where id not in(select top 20 * from 
tablename)
.........
DBGrid的dataSet :query
 我想也许有更好的方法,一时想不到了!

解决方案 »

  1.   

    最好使用动态的SQL语句
    分页:1 2 3 4 5 6 7 8 9 10
    第一页
    with Query1 do
    sql.clear;
    sql.add('select top 10 * from tablename');
    open;
      

  2.   

    其实控制dbgrid显示的条数就是控制dbgrid对应的dataset(应该是query)返回的记录数目
      

  3.   

    "select top 10"不是标准SQL语句,只有在ACCESS和SQL server数据库管理系统中才好用,像MYSQL等是不通用的.
      

  4.   

    呵呵,使用adoquery不行吗?adoquery有一个Recordset.PageSize属性,它可以支持分页显示的.
    需要注意几个属性,ADOQuery.Recordset.AbsolutePage等.自己看一下吧,应该能搞定
      

  5.   

    对DataSet的返回值进行控制行数就可以了。
    ================================================================
    一颗红心向前看,为了革命两茫然,不好意思才囊尽,只能说上一点点。
    ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
    ★    我踢  我踢   我踢  我踢  我踢  我踢  我踢  我踢  我踢   ★
    ★    你UP  你UP   你UP  你UP  你UP  你UP  你UP  你UP  你UP   ★
    ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
    ================================================================
      

  6.   

    如果想用参数控制呢,
    如:select top :i * from tablename
    怎么参数设置的时候总是报错呢
      

  7.   

    只要把ADOQuery的属性MaxRecords设为10就可以了,就这么简单!