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

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

выборка заданного количества записей с помощью sql-запроса [ms access]


Страницы:   1 2

lra ©   (2005-10-20 23:36:00) 

Существует большой объем данных, выполняется sql-запрос на выборку всех записей из таблицы,
нам необходимо остановить его выполнение на определенной записи, а записи с первой по заданную, т.е. на которой мы остановились вывести, например, в грид.


zig   (2005-10-22 00:02:00) [1]

может проще отказатся от грида a использовать DBTEXT
или используй в запросе курсоры (сам не пробовал)


Desdechado   (2005-10-21 18:42:00) [2]

имея "нечто" нужно получить "что-то"
напильник не прилагается, с собой приносить тоже запрещается

ну-ну, трудись дальше


alex_***   (2005-10-21 17:36:00) [3]

вск таки непонятно. это специальное извращение такое для программистов и пользователей? Чем вызваны ограгичения на выборку записей непонятно...


Lexer   (2005-10-21 16:44:00) [4]

>значит так, у записей в таблице нет ID

Вместо ID можешь использовать др. поле (поля) ...ну должен же быть хоть какой то уникальный идентификатор

>и в инструкции sql-запроса не должно содержаться конструкций содержащих органичение на количество выбираемых строк.

а кто говорит про ограничения?


alex_***   (2005-10-21 16:44:00) [5]

скачать все в набор, и по одной записи перекачивать в набор, соединенный с DBGrid


lra   (2005-10-21 16:36:00) [6]

значит так, у записей в таблице нет ID, и в инструкции sql-запроса не должно содержаться конструкций содержащих органичение на количество выбираемых строк.


Lexer   (2005-10-21 16:30:00) [7]

alex_***   (21.10.05 16:27) [15]
А зачем обязательно по одной записи показывать?


Программистам никогда не надоест издеваться над пользователями =)


alex_***   (2005-10-21 16:27:00) [8]

А зачем обязательно по одной записи показывать?


Lexer   (2005-10-21 16:21:00) [9]

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


можно это сделать как в [12], или каждый раз выполнять запрос, отсеивая предыдущие, например:
select top 1 * from table where (id_record> :last_id_record)
или как вариант:
select top 1 * from table where (id_record not in (select top Xid_record from table))
где X - количество уже полученных записей.


Виталий Панасенко   (2005-10-21 16:09:00) [10]

Я уже не могу !!!! Поднимаю хенды хох !!!!
select top 1 * from table
Если это, конечно, тоже смогут понять...


Lexer   (2005-10-21 16:03:00) [11]

Ira, f может, проще и быстрее достать всенужные записи, и запихивать их по одной или две... по сколько надо... в грид?


lra   (2005-10-21 15:57:00) [12]

так вот надо что записи в гриде отображались по одной, т.е. набор данных
каждый раз выбирает по одной записи из таблицы и помещает в грид.
И еще select top n а дальше?


Виталий Панасенко   (2005-10-21 15:52:00) [13]

ИРА - это Ирландская Революционная Армия ? :-))) Тебе уже ответили в

> evvcom ©   (21.10.05 08:53) [3]
> Динамический "SELECT TOP n ...".
> Какая-то неверная постановка задачи. Имхо.


Desdechado   (2005-10-21 15:51:00) [14]

записи в гриде не оказываются, они там только отображаются
оказываются они в наборе данных, например, в Query
чтобы там оказалось столько данных, сколько тебе надо, сформулируй запрос к БД правильно


lra   (2005-10-21 15:30:00) [15]

если можно то как можно подробнее опишите реализацию, такого механизма


lra   (2005-10-21 15:29:00) [16]

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


Курдль   (2005-10-21 10:59:00) [17]

Не совсем понятно задание :(
У некоторых потомков TDataGrid есть событие OnFetchRecord, на которое можно подсесть и проверять, что нужно.

А возможно следует изменить подход. Записи обрабатывать на клиенте и набивать мим какой-нибудь "отвязанный от БД" компонент набора данных типа ТClientDataSet или ТdxMemData и т.п.


ShiFT   (2005-10-21 09:51:00) [18]

http://www.sql.ru/forum/actualthread.aspx?tid=30382&hl=%ef%f0%ee%ed%f3%ec%e5%f0%ee%e2%e0%f2%fc
http://www.sql.ru/faq/faq_topic.aspx?fid=126

и тому подобное.


alex_***   (2005-10-21 09:09:00) [19]

Нужно записи выбирать пакетами с сервера или выбрать все, но показывать по частям?


evvcom   (2005-10-21 08:53:00) [20]

Динамический "SELECT TOP n ...".
Какая-то неверная постановка задачи. Имхо.


Страницы:   1 2

Наверх

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