получить случайную запись

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kulidas
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 14.09.2006 (Чт) 15:07
Откуда: Санкт-Петербург

получить случайную запись

Сообщение kulidas » 21.09.2007 (Пт) 10:32

добрый день!
может кто подскажет:
как можно подключившись к базе (access ADO) получить случайную запись?
т.е. sql запрос с определенными условиями директивы where
и получить случайную запись из набора, удовлетворяющего условиям?
спасибо.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 21.09.2007 (Пт) 11:17

Получить весь набор, выбрать случайную
Изображение

kulidas
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 14.09.2006 (Чт) 15:07
Откуда: Санкт-Петербург

Сообщение kulidas » 21.09.2007 (Пт) 11:55

1.подключаемся к базе
2. заполняем рекордсет идентификаторами записей
3. формируем массив из полученных идентификаторов
4. выбираем случайный элемент массива - идентификатор записи
5. отключаемся
6. снова подключаемся
7. заполняем рекордсет записью с полученным случайным идентификатором

правильно ли я все понимаю и является ли такой путь оптимальным?
надо чтобы пользователь быстро на форме получал случайные записи базы, пользователей несколько, база большая несколько десятков тысяч записей?
спасибо!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 21.09.2007 (Пт) 12:27

Кхм.. Да вы, батенька, извращенец..

А почему не заполнить рекордсет сразу записями и не выбрать случайную запись по сгенерированному случайному номеру?
label:
cli
jmp label

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.09.2007 (Пт) 12:38

Чтобы не таскать с сервера большой трафик.
Lasciate ogni speranza, voi ch'entrate.

kulidas
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 14.09.2006 (Чт) 15:07
Откуда: Санкт-Петербург

Сообщение kulidas » 21.09.2007 (Пт) 12:38

точно...
как получит случайное число?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 21.09.2007 (Пт) 13:52

kulidas писал(а):точно...
как получит случайное число?

В начале процедуры поставить Randomize, а далее использовать функцию Rnd.
Salus populi suprema lex

kulidas
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 14.09.2006 (Чт) 15:07
Откуда: Санкт-Петербург

Сообщение kulidas » 21.09.2007 (Пт) 14:45

..да. спасибо..


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot], YaCy [Bot] и гости: 51

    TopList