读书人

ACCESS取随机记录的方法无效?解决方案

发布时间: 2012-04-21 14:34:44 作者: rapoo

ACCESS取随机记录的方法无效?
我用一个ADOQUERY来取记录
table1如下:
id
1
2
3

SQL如下
select top 1 * from table1 order by rnd(:r)

步骤:
先active:=false
再对r赋random值(之前已经randomize):
adoquery1.Parameters.ParamValues['r']:=-random*100;

最后再active:=true

但是执行的结果在dbgrid是
id
3
2
1

且不说TOP被忽略,每回返回的结果也是一样的,完全不对的说,到底怎么取呢?

[解决办法]

Delphi(Pascal) code
'select Top 1 * from table1 order by rnd(-id+'+inttostr(random(100))+')';
[解决办法]
order by?

读书人网 >.NET

热点推荐