powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SELECT FROM из результата запроса
10 сообщений из 10, страница 1 из 1
SELECT FROM из результата запроса
    #39952112
skolpin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Первый опыт работы с БД в Delphi, простите если вопрос глупый.

БД MS Access, Delphi 10.3 Rio. В Delphi работаю через через ADO.
В таблице хранятся числовые значения. Нужно сделать:
1) Фильтрацию по значениям (ОТ и ДО) определенного поля. Механика: в ComboBox выбирается поле, в Edit-ы вводятся пороговые значения, нажимается кнопка Применить.
2) Сортировку по возрастанию/убыванию определенного поля. Механика: в ComboBox-ах выбираются поле и возрастание/убывание, нажимается кнопка Сортировать.
Есть также кнопки Сбросить фильтр и Сбросить сортировку.

По отдельности каждая из функций работает, но независимо друг от друга. То есть нажатие кнопки затирает старый SELECT запрос к таблице в ADOQuery.Text и выполняет новый. Хочется, чтобы независимо от порядка выполнения функций, запрос применялся к прошлому результату. То есть сначала отфильтровать, потом отфильтрованное отсортировать или наоборот, исходное отображение отсортировать, потом отфильтровать.

Мне представляется, что запрос должен идти не с самой таблице в БД, а к результату прошлого запроса, но как к нему обратиться без вложенных запросов я не знаю. Подскажите, пожалуйста, каким путем это можно реализовать. Спасибо.
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952121
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skolpin
сначала отфильтровать, потом отфильтрованное отсортировать или наоборот, исходное отображение отсортировать, потом отфильтровать.

А одновременно фильтровать и сортировать не подходит?
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952122
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skolpin
запрос должен идти не с самой таблице в БД, а к результату прошлого запроса, но как к нему обратиться без вложенных запросов я не знаю.

Всякий раз создавай новый запрос. С новыми условиями фильтрации и сортировки. Например.
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952126
skolpin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
northener

А одновременно фильтровать и сортировать не подходит?

ъъъъъ

Всякий раз создавай новый запрос. С новыми условиями фильтрации и сортировки. Например.



Видимо, речь об одном и том же. Тогда отпадает смысл в двух отдельных кнопках, так даже проще. Спасибо, рассмотрю такой вариант.
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952127
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skolpin
запрос применялся к прошлому результату.
Это как? У вас телега впереди лошади. Сначала запрос, потом результат. А не наоборот. В принципе, теоретически можно и наоборот, но у вас для этого сейчас недостаточно квалификации, да и с помощью Access делать подобное - занятие печальное.

Я ставлю доллар, что ничего из того что вы озвучили вам на самом деле не надо, просто вы не слишком грамотно построили архитектуру приложения.
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952133
skolpin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluck99
Это как? У вас телега впереди лошади.

Учился с Visual FoxPro, там была такая сущность как курсор, то есть временная таблица в памяти. Думал сделать что-то подобное тут, чтобы результат фильтрации падал в курсор, а к курсору, как к результату прошлой операции применялась сортировка (или наоборот). Возможно, такой подход устарел вместе с FoxPro или я плохо искал, но подобного в ADO в Delphi не нашел.

Gluck99
просто вы не слишком грамотно построили архитектуру приложения.

Очень может быть. Я не волшебник, я только учусь :)
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952136
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skolpin
Gluck99
Это как? У вас телега впереди лошади.

Учился с Visual FoxPro, там была такая сущность как курсор, то есть временная таблица в памяти. Думал сделать что-то подобное тут, чтобы результат фильтрации падал в курсор, а к курсору, как к результату прошлой операции применялась сортировка (или наоборот). Возможно, такой подход устарел вместе с FoxPro или я плохо искал, но подобного в ADO в Delphi не нашел.

Gluck99
просто вы не слишком грамотно построили архитектуру приложения.

Очень может быть. Я не волшебник, я только учусь :)

если таблица относительно небольшая, то можешь зачитать ее на клиента и воспользоваться стандартными Filter и Sort.
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952141
skolpin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko

если таблица относительно небольшая, то можешь зачитать ее на клиента и воспользоваться стандартными Filter и Sort.


Задачка учебная, приложение и БД локальные. Спасибо за наводку с Filter и Sort - только начал разбираться в ADO и не знал про эти методы ADOQuery.
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952337
skolpin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, объединил все идеи. Сделал одну кнопку на фильтрацию и сортировку, по которой сначала создается запрос с условиями фильтрации, а потом в зависимости от выбранного поля сортировки меняется ADOQuery.Sort.
...
Рейтинг: 0 / 0
SELECT FROM из результата запроса
    #39952672
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skolpin
Всем спасибо, объединил все идеи. Сделал одну кнопку на фильтрацию и сортировку, по которой сначала создается запрос с условиями фильтрации, а потом в зависимости от выбранного поля сортировки меняется ADOQuery.Sort.


был когда-то такой компонент xQuery
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SELECT FROM из результата запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]