Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];

Вниз

Как перейти к n-ой записи ADOQuery?   Найти похожие ветки 

 
Мелкий   (2009-06-04 19:27) [0]

MS Access
Уважаемые мастера не могу разобраться как можно без ADOQuery.Next получить данные n-ой записи запроса (n <= ADOQuery.RecordCount).

ADOQuery.Open

а дальше не знаю что делать, возможно, что у ADOQuery есть что-то вроде Count или Index, но я к сожалению этого не знаю.
Подскажите как это можно осуществить или прочитать об этом.
Спасибо


 
Нат ©   (2009-06-04 19:36) [1]

Что мешает нажать F1? Прочитать можно во встроенной справке, купить или скачать какую-л книжку.
DataSet.MoveBy


 
int64   (2009-06-04 19:44) [2]

Мелкий   (04.06.09 19:27)  

Сомнительная необходимость.


 
Мелкий   (2009-06-04 19:46) [3]

> Нат ©   (04.06.09 19:36) [1]

Спасибо за MoveBy


 
sniknik ©   (2009-06-04 20:05) [4]

хотя это и глупо полагаться на порядковый номер записи, но ADOQuery.RecNo:= n;
в том случае когда RecNo актуально, должно работать. прочем, когда неактуально и MoveBy не будет, т.к. там RecordCount используется.

p.s. лучше меняй логику программы, так чтобы не использовать сомнительные методы.


 
Мелкий   (2009-06-04 20:25) [5]

> sniknik ©   (04.06.09 20:05) [4]


> p.s. лучше меняй логику программы, так чтобы не использовать cомнительные методы.


Возможно в этом есть смысл, поскольку конкретно моя задача заключается в случайной выборке n записей из ADOQuery.RecordCount.

Я генерирую n из ADOQuery.RecordCount случайных чисел и затем обрабатываю эти записи.

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


 
sniknik ©   (2009-06-04 21:05) [6]

> Скорее всего, действительно, есть более удачные решения, чем я предполагаю использовать.
наверняка есть, но решаемая задача видать засекречена, т.к. о ней ни слова, вместо нее в ветке обсуждается "пустячок", частный случай того как ты видишь это решение
и раз оно основано на RecordCount то сразу можно сказать идиотское решение... (подставим например конкретные, пусть и вымышленные числа вместо безликих переменных - пусть  n = 5 и RecordCount = 1 000 000, получается выборка из миллиона записей ради 5 обрабатываемых значений, причем вся выборка только ради того чтобы узнать количество... что это как не идиотизм?)
и даже не полное решение а часть части - "вот тут нужно что то, я не знаю для этого функции. подскажите ее". - двойной идиотизм.


 
MsGuns ©   (2009-06-04 21:06) [7]

>Мелкий   (04.06.09 20:25) [5]
>Я генерирую n из ADOQuery.RecordCount случайных чисел и затем >обрабатываю эти записи.

Не проще ли в запросе указать Top n


 
palva ©   (2009-06-04 21:44) [8]

Если в запросе есть числовое поле id то можно получить 5 случайных записей следующим образом:
SELECT TOP 5 rnd(id), * FROM table1 ORDER BY 1


 
sniknik ©   (2009-06-04 21:54) [9]

> SELECT TOP 5 rnd(id), * FROM table1 ORDER BY 1
не обязательно вносить сортируемое условие в результаты, можно просто
SELECT TOP 5 * FROM table1 ORDER BY rnd(id)
ну и конечно * заменить на список только нужных полей.


 
palva ©   (2009-06-04 22:08) [10]

sniknik
А как сделать randomize для данного случая, не знаешь?


 
sniknik ©   (2009-06-04 23:06) [11]

> А как сделать randomize для данного случая, не знаешь?
нет там такого как randomize это не же паскаль. а начальную точку последовательности, seed вроде называется (randomize тоже ее устанавливает), можно установить вызвав функцию с отрицательным значением.


 
oldman ©   (2009-06-04 23:11) [12]


> Я генерирую n из ADOQuery.RecordCount случайных чисел и
> затем обрабатываю эти записи.


Если количество записей в базе постоянно (например, если пишешь опросник-тест), заведи поле с номером и шагай на него запросом.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.08.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
15-1244147405
Юрий
2009-06-05 00:30
2009.08.02
С днем рождения ! 5 июня 2009 пятница


15-1244061366
Юрий
2009-06-04 00:36
2009.08.02
С днем рождения ! 4 июня 2009 четверг


15-1244110187
GEN++
2009-06-04 14:09
2009.08.02
Интересная (возможно) задача.


2-1244028786
madmech
2009-06-03 15:33
2009.08.02
Неправильно всплывает хинт


3-1225445615
dmitry_12_08_73
2008-10-31 12:33
2009.08.02
Запуск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский