What is the DataBase? Use SQL if it surports SQL!

解决方案 »

  1.   

    你看下面这是向下分页取数据的,晚上刚刚把向上分页搞定,向下分页简单点
    向上难一点点.向下
    SELECT TOP 100 <PrimaryKey> FROM Table1
    WHERE <PrimaryKey> > <本页分页标记>
    ORDER BY <PrimaryKey>向上,给个思路给你。 设一个上页分页标记,先降序,取出前你要的记录数, 然后再升序。 搞定看下面, 这思路我问人家花掉300分SELECT TOP <每页记录数> <PrimaryKey>FROM Table1 WHERE <PrimaryKey> IN (
      SELECT TOP <每页记录数> <PrimaryKey> FROM Table1
      WHERE <PrimaryKey> <= <上一页分页标记>
      ORDER BY <PrimaryKey> DESC
    )
    ORDER BY <PrimaryKey>我晚上搞了一晚, 刚刚通过,太兴奋了。以前我把所有数据都显示出来, 这样软件速度慢极了。 现在快多了。
      

  2.   

    不明白你的意思;
    你是一次从数据库中读出100条
    还是读出所有按100分次处理呢?
    如果一次100条,可以用SQL语句来控制;
    如果分次处理,那么可以用TBOOKMARK处理;
      

  3.   

    答 outer2000   
       是这样的 如果一个表里有300 条记录
       我第一次是取 0 --100 条记录
       第二次是去101---200条记录
       目的是如此..为了提高程序的速度..和做些别的操作..
      

  4.   

    请问 My_first 在这边你的  分页标记 是怎么设定东西..
       我不太明白...
       能不能再说详细一点
       ....
       thank you
      

  5.   

    向下
    SELECT TOP 100 <PrimaryKey> FROM Table1
    WHERE <PrimaryKey> > <本页分页标记>
    ORDER BY <PrimaryKey>
    那我来告诉你吧 <PrimaryKey> 是一个键, 比如说编号 bh, 编号须是排序的。0-3000吧
    首先你取出table1表的第一条记录。 存放到一个变量里头,
    var
    tmplb:string;
    beginadotable1.first;
    TMPlb:=ADOTable1.Fields.FieldByName('bh').AsString;   // 这里取到的是第一条记录也就是值bh=0的记录送到tmplb变量里
    select top 100 * from  table1
    where bh>TMPlb //这里是你定义的分页标记,   where bh>0  
    ORDER BY bhend;
    点击下一页时,就取出第100条记录的值送于tmplb, select top 100 * from  table1
    where bh>TMPlb //这里是你定义的分页标记,   where bh>100  
    ORDER BY bh
    这样你取的是100-200做个循环不就成了