服务热线:021- 51097925/ 021-51611926 QQ:QQ 373522105 QQ:QQ 853678734                    网站地图    
首 页
网站建设
软件开发
域名主机
成功案例
关于我们
知识库
 
网络编程
建站常识
网站建设
网页制作
域名知识
网络编程
图形图象
网络安全
 
热门文章
任务中国与5大名企共同打造30
合肥汽车网站:向左走爱好 向
网站四年,我只是一名苦行僧
中级个人站长应当寻找适合自己
cms系统和企业建站系统软件开
趋势观察:网站建设市场2008年
做B2C!但别迷失在起跑线上
浅谈cms系统的seo优化
女性网站如何与电子商务结合
站长内容联盟--使用体验
阿里巴巴酝酿新计划:运营中小
未尽的网站无尽的伤感
增值、创新、服务 IDC产业何处
腾讯财付通携手php168整站开拓
南派IT点评傲游浏览器站长版
 
服务咨询
 
联系电话:021-51097925
   021-51611926
业务QQ:QQ791790871
业务QQ:QQ853678734
业务QQ:QQ932933550
客服QQ:QQ373522105
 
 
 
 
网络编程    

  简单高效:不重复随机读取数据库记录 -
 

看到经常有人问这个问题。又到网上找了些看,觉得写得不满意。
大多读取记录到数组里去抽取。昨天又看到人写,心血来潮就顺手想了个,个人认为这种方法应该错吧,呵呵。刚好20行~_~
实现方法:
1。通过recordset游标可移动的特性,在已打开记录集里移动到随机位置读取记录。而且可以将就使用页面中已打开的RS对象。
2。将出现过的随机数保存到一个字符串中,通过instr函数来检查是否重复,重复则递归调用函数至不重复。


数据库打开查询若干,省略... ...Set rs = Server.CreateObject("Adodb.RecordSet")rs.open sql,conn,1,1DIM AppearedCall DisRndRecord(10,rs.recordCount)调用函数该位置显示记录################SUBS#################DisRndRecord(DisNum,rsBound)#参数DisNum:显示数量#参数rsBound:随机数产生范围Sub DisRndRecord(DisNum,rsBound) DIM i,ThisRnd If rsBound < DisNum Then DisNum = rsBound记录总数小于要抽取记录条数的情况 For i = 0 To DisNum - 1  ThisRnd = GetRnd(rsBound)取得一个不重复的随机数  rs.Move(ThisRnd)游标移动到随机数位置数读取  Response.Write("<br>("&rs("id")&")"&rs("Title"))  rs.Move(-ThisRnd) NextEnd Sub# 函数GetRnd(bound)返回一个不重复的随机数字#参数bound:随机范围Function GetRnd(bound) DIM ranNum Randomize() ranNum=int(bound*rnd) If Instr(Appeared,"["&ranNum&"]") Then产生的随机数是否出现过  ranNum = getRnd(bound) End If Appeared = Appeared & "["&ranNum&"]"记录已出现的随机数 GetRnd = ranNumEnd Function
 
快速通道:网站建设 | 网页制作 | 上海网站建设 | 做网站 | 网站报价
Copyright © 2008 上海互联 版权所有
建站热线:021-51097925 51611926 
网址:www.soft-sd.com E-mail:sales#soft-sd.com 沪ICP备06035210号