Заказать доступ к ADODB рекордным спискам случайным образом - PullRequest
0 голосов
/ 21 марта 2011

Я пытаюсь упорядочить набор результатов с запросом в 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, записи выбираются случайным образомно когда я использую этот код и ответ пишу массив.Массив сортируется одинаково каждый раз, а не случайно.Как я могу получить массив результатов случайным образом?

1 Ответ

0 голосов
/ 21 марта 2011

Вы можете попробовать использовать команду Randomize где-нибудь в вашем коде ASP перед каждым вызовом функции Rnd ().

В противном случае мне было бы интересно узнать, происходит ли сортировка во время выбора или когда записи извлекаются в массив вариантов. Вы пытались итерировать записи, используя стандартный синтаксис ADO (MoveNext), чтобы изолировать проблему?

...