asp随机提取access数据库记录的几种方法

作者:Atwind 时间:2007-09-06 19:42:00 

今天研究了些取access数据库随机记录问题,这是这我自己搜集整理的方法。大家有没有高见,可以告诉我,或者我总结的东东本身有误,也可以帮我修正。

检查了一些贴子对于MS SQL数据库一般可以采用这样的语句:

select top 50 * from someTable order by NewID()


但是如果是Access数据库的话似乎没有什么好的解决方法。
方法一:有人用如下代码以记录总数为极大值来首先提取出指定数量的随机数,然后以这些随机数做为记录ID。



dim n,j 
dim su() 
dim a,b,k 
b=myrs.RecordCount 
Randomize 
redim su(index_N) 
su(1)=Int((b * Rnd) + 1) 
for n=2 to index_N 
  a=Int((b * Rnd) + 1) 
  for j=1 to n 
      do while a=su(j) 
          a=Int((b* Rnd) + 1) 
          j=1          
      loop 
  next 
  su(n)=a 
next



这种方式有一些问题,就是当ID不是连续的话,有可能某些随机数不存在ID序列当中。另外ID的最大值与总的记录值不一定相等,这样有些记录ID会永远被忽略。

方法二:有人采用一条SQL语句解决此问题
select top 50 * from table order by int(rand()*50)
如果这条语句可行的话是个不错的方法。我测试这条语句并没有通过,如果有人知道是哪有问题请告诉我,非常感谢。

方法三:有这样一种方法,我觉的不错。


yourstr="*1*3*4*6*12*...." 
sql="select top 10 * form yourdb where instr(’*’&id&’*’,’"&yourstr&"’)<>0"

yourstr可以生成随机数多一点大于所限定抽取的随机数为好。这样可以排除记录不足的情况。
方法四:



<% 
   n=10    ’’取任意10条记录 
   set rs = server.CreateObject ("adodb.recordset") 
      sql = "select * from table" 
      rs.open sql,conn,1,1 
      count=rs.recordcount   ’’记录总数 
      IF Count<>empty Then 
         Randomize        
        for i = 1 to n       ’’循环n次 
           num=Fix(Rnd*count) ’’num便是随机产生的记录行数,用Fix(),使其不会大于count值。 
           rs.move num    ’’移到改随机行 
           Response.write rs(0)   ’’出该条记录 
        rs.movefirst     ’’别忘了再把指针移到第一条 
        next 
      End IF 
      rs.close 
   set rs = nothing 
%>


标签:access,随机,记录
0
投稿

猜你喜欢

  • 详解链接的rel与target

    2007-11-05 18:25:00
  • ASP隐藏真实文件的下载功能实现代码

    2011-04-14 11:12:00
  • 让MYSQL彻底支持中文

    2008-12-24 16:23:00
  • utf-8 网页不显示+utf-8网页乱码的通用解决方法

    2011-04-19 10:47:00
  • CSS的渲染效率:书写高效的CSS

    2008-11-13 16:55:00
  • 网马解密大讲堂——网马解密初级篇

    2009-09-16 14:45:00
  • IE8 的 noscript 标签 Bug

    2009-08-18 12:37:00
  • 用Javascript正则表达式验证Email地址

    2009-12-09 15:56:00
  • 客户体验

    2008-12-11 13:58:00
  • 网页代码中键盘操作相关标签教程

    2010-03-18 15:56:00
  • 两个css郁闷的发现

    2007-12-16 15:31:00
  • 写SQL语句的经验

    2009-04-13 16:02:00
  • 教程javascript的function(函数)

    2007-09-30 13:38:00
  • div中class与id的区别及应用

    2007-09-22 08:37:00
  • HTML5 Canvas 起步(1) - 基本概念

    2009-04-21 13:14:00
  • 如何用METADATA替换ADOVBS.INC?

    2010-06-12 12:54:00
  • 不得不承认:韩国的 Web 设计很唯美

    2009-05-13 13:26:00
  • 实例解析:MySQL 实例管理器识别的命令

    2009-02-23 17:33:00
  • Microsoft Enterprise Library 5.0 如何集成MyS

    2011-03-16 15:19:00
  • 泛泛而谈界面中的斑马纹设计

    2010-07-15 12:59:00
  • asp之家 网络编程 m.aspxhome.com