国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广丰县| 霸州市| 隆回县| 和政县| 华坪县| 缙云县| 新和县| 无锡市| 九江县| 神农架林区| 道孚县| 衡水市| 馆陶县| 柳河县| 玉环县| 黑龙江省| 开江县| 龙陵县| 淅川县| 鸡东县| 雷州市| 斗六市| 湄潭县| 平遥县| 韶山市| 景谷| 浮梁县| 宜良县| 威宁| 万州区| 墨脱县| 施甸县| 抚顺市| 固安县| 华容县| 洛南县| 荣成市| 自贡市| 双桥区| 揭西县| 岳池县|