我尝试随机在Access中使用查询对结果集进行排序。
我使用以下代码:
DIM TentamenQuestionID, TentamenQuestionResult, TentamenQuestionQuery, arrTentamenQuestion, arrTentamenQuestionIndex
Set TentamenQuestionResult = Server.CreateObject("ADODB.Recordset")
TentamenQuestionQuery = "SELECT TentamenQuestion.TentamenQuestionID, TentamenQuestion.TentamenQuestion, TentamenQuestion.TentamenQuestionSort " &_
"FROM TentamenQuestion " &_
"WHERE TentamenQuestion.TentamenID=" & TentamenID & " " &_
"ORDER BY Rnd(TentamenQuestion.TentamenQuestionID)"
TentamenQuestionResult.Open TentamenQuestionQuery, Connect, adOpenStatic, adLockReadOnly, adCmdText
If NOT TentamenQuestionResult.EOF then
arrTentamenQuestion = TentamenQuestionResult.GetRows()
End If
TentamenQuestionResult.Close
Set TentamenQuestionResult = Nothing
response.write(arrTentamenQuestion(0,0)) & "<br />"
response.write(arrTentamenQuestion(1,0)) & "<br />"
response.write(arrTentamenQuestion(2,0)) & "<br />"
response.write(arrTentamenQuestion(0,1)) & "<br />"
response.write(arrTentamenQuestion(1,1)) & "<br />"
response.write(arrTentamenQuestion(2,1)) & "<br />"
当我在Access中运行查询时,会随机选择记录,但是当我使用此代码时,响应会写入数组。每次都对数组进行相同的排序,而不是随机排列。如何随机获取结果数组?
答案 0 :(得分:0)
在每次调用Rnd()函数之前,您可以尝试在ASP代码中的某处使用Randomize命令。
否则,我有兴趣知道在选择期间是否进行排序,或者是否将记录检索到变量数组中。您是否尝试使用标准ADO语法(MoveNext)迭代记录以隔离问题?