你看下面这是向下分页取数据的,晚上刚刚把向上分页搞定,向下分页简单点 向上难一点点.向下 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>我晚上搞了一晚, 刚刚通过,太兴奋了。以前我把所有数据都显示出来, 这样软件速度慢极了。 现在快多了。
请问 My_first 在这边你的 分页标记 是怎么设定东西.. 我不太明白... 能不能再说详细一点 .... thank you
向下 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做个循环不就成了
向上难一点点.向下
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>我晚上搞了一晚, 刚刚通过,太兴奋了。以前我把所有数据都显示出来, 这样软件速度慢极了。 现在快多了。
你是一次从数据库中读出100条
还是读出所有按100分次处理呢?
如果一次100条,可以用SQL语句来控制;
如果分次处理,那么可以用TBOOKMARK处理;
是这样的 如果一个表里有300 条记录
我第一次是取 0 --100 条记录
第二次是去101---200条记录
目的是如此..为了提高程序的速度..和做些别的操作..
我不太明白...
能不能再说详细一点
....
thank you
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做个循环不就成了