Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
MS Access

Поиск по базе Access через ADOQuery

28.10.2019, 19:27. Показов 3795. Ответов 11

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
В общем, у меня в проекте идёт подключение базы данных Access. На форме использую ADOConnection, DataSource и ADOQuery, вывожу через DBGrid.

Составляю запрос поиска в следующем виде:
C++
1
2
3
4
5
FormMain->ADOQuery1->SQL->Clear();
FormMain->ADOQuery1->SQL->Text=("SELECT * FROM Table1");
FormMain->ADOQuery1->SQL->Add("WHERE Name LIKE '"+EditName1->Text+"%'");
// и т.д.
FormMain->ADOQuery1->Open();
Запрос идёт через проверку заполненности Edit'ов в GroupBox'e, поэтому параметров поиска может быть от 1 до n.
Мне необходимо реализовать, чтобы параллельно можно было искать несколько объектов по N количеству параметров (с 1 объектом по N кол-ву параметров проблем нет). У меня это никак не получается, поэтому я решил запрос по 1-ому объекту выделять допустим зеленным цветом, а по 2-ому объекту красным цветом. Но тут приходится делать запрос через AND для 1-го объекта и OR для 2-го объекта, в связи с чем вылазят некорректные результаты поиска и всё выделяется красным.

ВНИМАНИЕ ВОПРОС: Как сделать, чтобы при поиске в DBGrid отображались не только результаты поиска, а вся таблица + результаты выделены через MultiSelect.
Первый объект найден -> выделен, после этого начинается поиск второго -> его выделение и так n объектов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2019, 19:27
Ответы с готовыми решениями:

Поиск в базе Access через textBox
Подскажите как осуществить поиск в базе через textBox. Т.е. допустим есть таблица "Товары", в поле "Описание", по...

Поиск в базе данных Access через Edit
Здравствуйте. Тут возникла проблемка у меня, подскажите пожалуйста: Вот код Delphi procedure TForm1.Button2Click(Sender: TObject); ...

Поиск в базе данных Access через Edit
Прочитал до этого созданные темы перепробовал по разному, но у меня всё равно почему то не получается запустить данный поиск вылетает...

11
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
29.10.2019, 11:43
iSokol, а что Вы имеете в виду говоря "по одному объекту", "по второму объекту"??? Что это за объекты? Более подробно ситуацию обрисуйте...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.10.2019, 12:20
Цитата Сообщение от iSokol Посмотреть сообщение
ВНИМАНИЕ ВОПРОС: Как сделать, чтобы при поиске в DBGrid отображались не только результаты поиска, а вся таблица + результаты выделены через MultiSelect.
Первый объект найден -> выделен, после этого начинается поиск второго -> его выделение и так n объектов.
Сделай запрос, который скачивает всю таблицу, выполни его, потом сделай CloneRecordset и ищи локально, в другом потоке, записи, которые тебе нужно выделить
0
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
29.10.2019, 12:47
Цитата Сообщение от iSokol Посмотреть сообщение
...отображались не только результаты поиска, а вся таблица + результаты выделены...
Вот есть у меня таблица, в которой 100500 записей. Из них отобрать мне надо десяток-другой... И что, я должен все эти бешеные тышшы записей прокручивать, чтобы увидеть, что там красным цветом выделено? Как-то некошерная идея...
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.10.2019, 12:53
Цитата Сообщение от D1973 Посмотреть сообщение
Вот есть у меня таблица, в которой 100500 записей. Из них отобрать мне надо десяток-другой... И что, я должен все эти бешеные тышшы записей прокручивать, чтобы увидеть, что там красным цветом выделено? Как-то некошерная идея...
Там, похоже, нужен обычный поиск по таблице, только чтоб асинхронный
0
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
29.10.2019, 12:58
oleg-m1973, возможно, но только зачем гадать... Пусть ТС объяснит, что у него там за "объекты" - тогда понятнее будет...
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
29.10.2019, 14:33  [ТС]
Наверно, можно сделать фильтрацию по цвету?
Изображения
 
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
29.10.2019, 14:37  [ТС]
D1973, Если настаиваете, то допустим таблица, содержащая название инструментов, производителя, тип, характеристики и их краткое описание. Нужно сделать так, чтобы поиск производился по N-ому количеству параметров, и параллельно можно было найти два и более инструмента по независимым критериям (пример: один произведен в США с такими-то хар-ми, а другой в России с другими хар-ми, заданными при поиске)
0
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
29.10.2019, 16:17
iSokol, для этого есть UNION
сделайте тестовую таблицу с данными, прикрепите ее сюда и напишите, что хотите из нее получить...
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
29.10.2019, 21:15  [ТС]
D1973, прикладываю образец таблицы, параметров будет больше (чувствительность, модуляция и т.д.).
Необходимо реализовать параллельный поиск. На первом скрине результат = 3 радиостанций, на втором = 2, на третьем =1, на четвёртом = 3.
То есть, поиск N-го количества радиостанций по независимым параметрам.
Миниатюры
Поиск по базе Access через ADOQuery   Поиск по базе Access через ADOQuery   Поиск по базе Access через ADOQuery  

Поиск по базе Access через ADOQuery  
Вложения
Тип файла: rar Database1.rar (15.2 Кб, 10 просмотров)
0
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,399
Записей в блоге: 3
30.10.2019, 07:20
Вот на скрине поле таблицы Вашей БД. Это в корне неверный принцип хранения информации: данные в поле должны быть атомарны! Как Вы планируете осуществлять поиск в таком пот поле без дополнительных танцев с бубном?
А помимо этого - тут, как я уже написал, сработает именно объединение результатов выполнения нескольких запросов в один набор данных с помощью операции UNION
0
0 / 0 / 0
Регистрация: 26.02.2019
Сообщений: 16
04.11.2019, 23:27  [ТС]
D1973, Спасибо! Не подскажите, как определить, что в запросе уже используется второй "WHERE" и дальше писать через "AND"? Первый определяю по количеству строк в запросе, но перед вторым может быть две строки, а может десять (зависит от количества введенных параметров в первом запросе до UNION)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2019, 23:27
Помогаю со студенческими работами здесь

Поиск в ADoquery, Delphi, поиск в базе данных
Доброго времени суток многоуважаемые пользователи данного сайта! Есть очень глупая проблема, с которой я, к сожалению, справиться не...

Поиск по базе при помощи компонента AdoQuery
Дрброго времени суток. Есть вопрос, как организовать поиск по базе Access при помощи компонента ADOQuery. То есть нужно кнопка поиск рядом...

Динамический поиск по базе данных, с использованием ADOQuery и DBGrid
Есть на форме DBGrid и Edit, так вот, когда мы вводим в Edit символы, тут же начинается поиск и в DBGrid-е отображаются результаты. Т. е....

Редактирование (обновление) записи в базе данных через ADOQuery
Всем доброго времени суток. Допустим, что есть форма, на которой выведены ФИО работников, при нажатии на конкретного работника появляется...

Редактирование (обновление) записи в базе данных через ADOQuery
Всем доброго времени суток. Есть форма, на которой выведены ФИО работников, при нажатии на конкретного работника появляется новая форма,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru