Модераторы: Akina
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Запрос на выборку случайных записей, собственно оно и есть. 
:(
    Опции темы
altarasjuk
Дата 30.8.2003, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: нет
Всего: 1



Всем привет!

БД Accsess.

Есть, скажем таблица. И вот надо из этой таблицы одним запросом вынуть 100 записей, при том случайных. Как это сделать?

Заранее огромное спасибо. smile.gif


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
Kurt
Дата 31.8.2003, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



"Чистый" Access? Или будешь вызывать из какой-то проги? Если так, то какой язык?


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
altarasjuk
Дата 1.9.2003, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: нет
Всего: 1



Ну собственно это всё мудет вызываться из Delphi через ADO. Но хотелось бы иметь чистый SQL, если это возможно, который будет работать через любое подключение, и по возможности с любой базой.
Вот Connection string:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DataBase.mdb;Persist Security Info=True;Jet OLEDB:Global Partial Bulk Ops=1


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
Vit
Дата 2.9.2003, 03:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Чистый SQL не получится так как MS Access не имеет функции для запроса который будет выбирвать ограниченное количество записей. А случайные в MS SQL Server делается путём добавления условия по автовычисляемому GUID полю, можно ли такое провернуть с MS Access - не знаю, завтра на работе, если вспомню посмотрю.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
DENNN
Дата 2.9.2003, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



Цитата
по автовычисляемому GUID полю, можно ли такое провернуть с MS Access - не знаю,

Access, в отличие от SQL-Server не понимает поле GUID - это самая большая проблема при переносе базы на Access
(по крайней мере на моем офисе это так).
PM ICQ   Вверх
altarasjuk
Дата 2.9.2003, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: нет
Всего: 1



Цитата
Чистый SQL не получится так как MS Access не имеет функции для запроса который будет выбирвать ограниченное количество записей
Код
select top x * from ............

где x - сколько записей отобрать


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
altarasjuk
Дата 2.9.2003, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 7.5.2003
Где: Харьков

Репутация: нет
Всего: 1



2. Тут самая большая проблема отсортировать в случайном порядке, а выбрать 100 верхних - не проблема
У меня премешка записей делается по готовому резултсету. т.е. считал - перемешал и готово, но хотелось бы чтобы СУБД перемешиала за меня, пусть она хоть что-то делает biggrin.gif

Это сообщение отредактировал(а) altarasjuk - 2.9.2003, 13:15


--------------------
Правда - изобретение маньяков: колет глаза и режет уши.
PM MAIL ICQ   Вверх
Unregistered
Дата 2.10.2003, 17:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А почему не написать WHERE n*Fix(cnt/n) = cnt - Выбирает каждую n-ую запись (n - целое число, cnt - поле счётчика, если в таблице есть такое поле). Если подумать, то можно и Rnd() приспособить.
  Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.