怎样使Query查寻的返回结果记录数为一个指定数,例如一次返回10条?(100分)

  • 主题发起人 主题发起人 Gusn
  • 开始时间 开始时间
G

Gusn

Unregistered / Unconfirmed
GUEST, unregistred user!
请问有谁知道怎样使Query返回查询结果为一指定的数,如一次返回10条,当再需要时再返
回10条。
 
rows top 10
 
不好意思,还是用between 把
 
sql中 top 10 绝对可以,看你怎么处理了
 
用ado可以分页
用top 10 的话无法返回 top 10-20
 
若是Oracle数据库,可以这样返回11-20之间的记录:
select * from
(select rownum rn,a.* from TabName a)
where rn>10 and rn<=20
 
我是想做到ClientDataSet的PackeyRecords相似的功能,因为我一次查询的数据量比较大,
返回结果也较大,经常出现内存溢出的错误,所以我想让它分批返结果,这样速度也快很多
请问有谁有好的好法和建议,并且可否写的详细点?我用的是paradox/access
 
那个top 10 加在那儿?用paradox有没有Oracle里的rn?
 
select Top 10 * form 表名 where 字段名=×××
 
top 10 好像只适用于ACCESS的数据库吧,不是通用的语句,就像mysql的 limit 10 语句一样
所以,限制的方法是........我现在不知道,回去查查先:)
 
Oracle没有Top 10 ,龙丹的方法可用,但不能排序后用。
 
rn 是Orracle的,可以用,
top 10 是access和SQL SERVER里用的,全不是通用的,
我也正想问一下PARRADOX里的这个功能怎么实现,100分,
对不起,Gusn,借您宝地用一下:)
 
你可以把查询的内容放在一个表里面,然后再对这张表进行操作,是不是可以变相解决
这个问题?
 
用ADO的分页功能很容易就实现你说的功能;它只会传递当前页的数据到客户端,
和TCLIENTDATASET的GETNEXTPACKET功能相同。
adoquery1.recordset.pagesize:=总页数;
adoquery1.recordset.absolutepage:=当前绝对页号;
这应该很通用了,只要你是用的ADO来存取数据,就可行。
 
如果是sql数据库,不能用在paradox中
select * from 数据库 where keyword='任意关键字' limit 开始数据,要返回的记录数.
eg:
select * from mydatebase where keyword='a' limit 0,10;就表是从第一个数据开始,取
10个记录,如果要取后面的数就是把limit后的0,该为0+10开始的,以后就是这样的了...
try it.......
 
LIMIT是SQL的吧,PARADOX好象不能用
 
你是用的QUERY吗,用BDE连的数据库?据我所知,QUERY本身就有这功能,你不信写入如下
语句:SELECT * FROM YOURTABLE 然后运行程序,当你的GRID的滚动条移动时,你就会看
到鼠标会短暂的变成一个小漏斗形状,这就是它在取数据了。QUERY默认的是取能添满当前
GRID显示区域的记录,当需要显示后面的记录时再提取。我曾经做过测试,数据库中有5万
多条记录,我就用上面的语句,然后打开,QUERY只用了不到0。1秒的时间就给我显示出来了。
 
后退
顶部