Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Randomaize [D7]


mikola ©   (2004-07-07 13:50:00) 

Здравствуйте.
Подскажите пожайлуста как можно сделать так чтобы записи которые есть в базе показывались произвольным образом(тоесть типа Randomaze) и если например показалось 30 записей то показать сообщение.

Заранее спасибо.


Ratiborr   (2004-07-08 12:58:00) [1]

На сколько я понял, кол-во записей конечно. т.е. рано или поздно процесс выборки без повторений закончится. так? если так, то можно сделать след. в цикле: выдергиваешь рандомайзем записи, параллельно с этим ведешь список уже выдернутых записей. так вот, выдернул - проверил на вхождение в список уже выдернутых(не входит - попрет и сразу же обновляешь список выдернутых, входит - цикл дальше гоняешь). возможно есть способ рациональней. но это первое, что мне пришло в голову.


mikola   (2004-07-08 12:45:00) [2]

>>>>>>>>Ratiborr

А ты немогбы по подробнее рассказать о

>>  чтобы не повторялись элементы, написать обработочку, когда random'ом пользуешься.


Ratiborr   (2004-07-08 11:06:00) [3]

Пришел как-то однажды Locate к Randomiz'у.......:)


Ratiborr   (2004-07-08 10:47:00) [4]

Можно создать новый набор данных:ид_записей, №записи_в_НД(тот же SELECT ;)). теперь можно использовать randomize(). получив №, можно перейти к самому идешнику. и сЁ. а чтобы не повторялись элементы, написать обработочку, когда random'ом пользуешься.


mikola   (2004-07-08 08:19:00) [5]

А можно как нибудь подсчитать количество записей в таблице, и потом просто делать переход по ним произвольным образом подставльть номер записи на которую нужно перейтий.

Блин есё надо чтобы показываемые записи неповторялись.


Sir John   (2004-07-07 17:56:00) [6]

для MySQL сие выглядит вот так:

SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000

MySQL Reference Manual (C) 2002 MySQL AB


Sandman25   (2004-07-07 15:28:00) [7]

[3] miwa ©   (07.07.04 15:27)

Бывает, что отсортированы. Бывает, что если 5 раз пишем один и тот же select, то 5 раз получаем данные в одном и том же порядке.


miwa   (2004-07-07 15:27:00) [8]

Хм... Дайте подумаю... А разве записи из базы при использовании select'а как-то отсортированы? Что мешает просто показывать их в порядке получения?


Anatoly Podgoretsky   (2004-07-07 14:01:00) [9]

Написать наследника от TDataset


Курдль   (2004-07-07 13:58:00) [10]

У записей ID есть?
Да и вообще, самому лень, что ли, подумать? :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо