假設(shè)這個(gè)數(shù)據(jù)表有一個(gè)唯一的ID字段,并至少有一條記錄。隨機(jī)存取其中一條記錄的方法是非常簡(jiǎn)單的,可以分為四步: 1、取得記錄總數(shù)n。 2、把所有的ID號(hào)存儲(chǔ)到一個(gè)數(shù)組中 3、產(chǎn)生一個(gè)不大于n的隨機(jī)數(shù)m 4、從數(shù)組中取出第m個(gè)ID號(hào),查詢數(shù)據(jù)表,取得記錄數(shù)據(jù)。 下面是部分代碼:
$#@60;% set conn = Server.CreateObject(‘ADODB.Connection‘) conn.open ‘$#@60;conn string$#@62;‘
‘ ***** (step 1) *****
set rs = conn.execute(‘Select count(id) from someTable‘) rCount = rs(0)
‘ ***** (step 2) *****
set rs = conn.execute(“select id from someTable”) cnt = 1 dim RRs redim RRs(rCount) do while not rs.eof RRs(cnt) = rs(0) cnt = cnt + 1 rs.movenext loop
‘ ***** (step 3) *****
randomize currentRR = cLng(rnd*rCount+0.5) ID = RRs(currentRR)
‘ ***** (step 4) *****
sql = “select otherfield from someTable where id=” & ID set rs = conn.execute(sql) response.write “ID # ” & ID & “ = ” & rs(0) rs.close: set rs = nothing conn.close: set conn = nothing %$#@62;
對(duì)于SQL Server,還有更加有效率的方法。比如設(shè)計(jì)兩個(gè)存儲(chǔ)過(guò)程。我這里只是闡明一些思路,并希望這種思路可以同時(shí)用在Access和SQL Server中。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!