我写了一个从数据表中取随机记录的程序,但是奇怪的是,每次程序重新启动后,取出的记录都会相同,不知道是什么原因?

解决方案 »

  1.   

    谢谢各位,不好意思,首先我不知道这个randomize怎么使用,我加在程序的form onshow里但是没起作用.我的程序是这样的,每次按钮一次,就在数据库中随机取出一条,我加上按钮的onclick里也不好使,是不是我的用法不对啊,请大家指点!
      

  2.   

    select * from table order by newid()
    用這樣的試試, 不需要調用Delphi的randomize啦
      

  3.   

    我用的是access数据库 
    select top 1 *,rnd(len(Number)) as bb from Archives_Examinant order by rnd(len(Number)) ;
    每次程序重新启动的时候,都是取相同的数据!
      

  4.   

    如果调用randomize的话,程序重新启动每次都得到一样的东西,
    如果真的想取随即数的话,还不如取当前时间呢,只要精度大一些,非常好用。
      

  5.   

    hhnick ,不好意思,我没弄明白,还有就是randomize我没用明白,不知道怎么使用?
      

  6.   

    randomize我也不知道怎么用,
      

  7.   

    我用的是access数据库 
    select top 1 *,rnd(len(Number)) as bb from Archives_Examinant order by rnd(len(Number)) ;
    每次程序重新启动的时候,都是取相同的数据!
    今天我又发现,不单单是每次启动重新取数据相同,而且在以后每轮取数时,顺序也相同
    不知道是什么原因呢?
      

  8.   

    我用的是access数据库 
    select top 1 *,rnd(len(Number)) as bb from Archives_Examinant order by rnd(len(Number)) ;
    每次程序重新启动的时候,都是取相同的数据!
    现在我又发现,因为我的数据是按轮次取数据,程序每次重新启动以后,这随机取的数据,在轮次上数据顺序又会相同,数列如下:
    第一轮:
    1-3 2-9 3-8 4-15 5-13 6-5 7-11 8-12 9-6 10-14 11-1 12-4 13-10 14-2 15-7
    第二轮
    1-13 2-1 3-10 4-5 5-8 6-2 7-11 8-3 9-6 10-12 11-7 12-4 13-9 14-15 15-14
    第三轮
    1-12 2-13 3-4 4-11 5-9 6-1 7-3 8-10 9-14 10-8 11-7 12-6 13-5 14-15 15-2
    第四轮
    1-5 2-6 3-13 4-3 5-8 6-9 7-10 8-11 9-14 10-2 11-4 12-1 13-12 14-15 15-7
    第五轮
    1-4 2-14 3-5 4-10 5-2 6-7 7-3 8-13 9-6 10-12 11-9 12-15 13-1 14-11 15-8
    ......
    以后每次启动程序后都是这个顺序。