<%
' Переход к случайной записи - Расширение Стивена Джонса
Если нет(имя набора записей.bof и имя набора записей.eof) Тогда
'сбрасываем курсор в начало
Если (RecordSetName.CursorType > 0) Тогда
Имя набора записей.MoveFirst
Еще
Имя набора записей.Requery
Конец, если
Имя набора записей_totalrn = -1
RecordsetName_totalrn = RecordsetName.RecordCount ' работает только с некоторыми наборами записей, но гораздо быстрее
If (recordsetname_totalrn = -1) then ' и если не сработало, нам все равно придется посчитать записи.
' подсчитываем общее количество записей, перебирая набор записей
Имя набора записей_totalrn=0
Пока (не имя набора записей.EOF)
имянабора_записей_всегоrn = имянабора_записей_всегоrn + 1
Имя набора записей.MoveNext
Венд
'сбрасываем курсор в начало
Если (RecordSetName.CursorType > 0) Тогда
Имя набора записей.MoveFirst
Еще
Имя набора записей.Requery
Конец, если
Конец, если
' теперь делаем окончательные настройки и переходим к случайной записи
имя набора_записей_всегоrn = имя набора_записей_всегоrn - 1
Если имя набора_записей_totalrn > 0 Тогда
Рандомизировать
Имя набора записей.Move Int((имя набора записей_totalrn + 1) * Rnd)
Конец, если
Конец, если
' все готово, перед отображением данных всегда следует проверять наличие пустого набора записей;
%>