国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

簡單高效:不重復隨機讀取數據庫記錄

2024-07-21 02:04:02
字體:
來源:轉載
供稿:網友

看到經常有人問這個問題。又到網上找了些看,覺得寫得不滿意。
大多讀取記錄到數組里去抽取。昨天又看到人寫,心血來潮就順手想了個,個人認為這種方法應該錯吧,呵呵。剛好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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浑源县| 敦化市| 五常市| 浏阳市| 鹿邑县| 界首市| 高邮市| 临江市| 罗定市| 万全县| 衡东县| 韶山市| 闻喜县| 沈丘县| 郧西县| 轮台县| 达尔| 天台县| 邮箱| 铜川市| 通江县| 休宁县| 龙胜| 焉耆| 双鸭山市| 荃湾区| 南江县| 得荣县| 栾城县| 安化县| 海丰县| 宁海县| 屏南县| 深水埗区| 延庆县| 宕昌县| 瓮安县| 永年县| 通道| 景谷| 建瓯市|