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

Фильтрация и редактирование через ADO

19.04.2016, 15:13. Показов 2195. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем дня!)
Столкнулся с проблемой, бд на mysql, таблицы связаны, таблиц штук 8.
Хочу провести поиск и редактирование в одном месте.
Вывожу все это дело в dbgrid, настроил живой фильтр через adotable. Появились проблемы в виде не фильтрации подвязанных таблиц, а главную фильтрует отлично. Почитал, разобрался, оказалось не хочет через ADOtable фильтровать как ни крути.
Пробовал все это дело через adoquery сделать, подключил все это дело, забиндил на кнопку sql-запрос на выборку из всех таблиц в один dbgrid, прописал связи, в итоге получил то что хотел.
Загвоздка #2: не могу редактировать, т.к. по сути это выборка идет.

Может кто подскажет, как сделать хорошо? Либо как это все организовать по проще

Добавлено через 8 минут
вроде где то читал про OnFilterRecord
но суть реализации мне не ясна

Добавлено через 24 минуты
Вопрос почти снят, в событии onFilterReccord ADOTable дописал:
C++
1
Accept = DataSet->FieldByName("таблица")->AsString == "искомое";
Подскажите, как организовать в таком случае живой поиск, без кнопок ?!?))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2016, 15:13
Ответы с готовыми решениями:

Работа с БД через ADO
Доброго времени суток! Имеется класс написанный на VC++, хочу перевести его на Builder. Помогите, пожалуйста, это сделать. В VC++...

Подключение через ADO
Когда то уже создавал такую тему, решения проблемы не нашел и по сей день. Как подключить БД в Builder`e. Через ADO пытался, результат...

Поиск в БД через ADO
Подскажите пожалуйста,как найти запись в БД,которая содержит какую-нибудь строку,например в поле Name есть запись С:Pap1\Pap2\Pap3.Как...

8
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
19.04.2016, 16:13
У dbgrid есть такое свойство в object inspector->options->dgEditing, что мешает его выставить и редактируй себе на здоровье, правда отредактированные записи для сохранения в базе надо будет потом сохранять
1
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
20.04.2016, 07:52  [ТС]
С этим я уже разобрался, загвоздка с OnFilterRecord, поиск точный сделал, не могу подбить это все в фильтрацию (не полное совпадение).
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
20.04.2016, 08:45
Надо смотреть условия фильтра, а насчет неполное совпадение надо смотреть в компоненте FilterOptions->foNoPartialCompare оно у вас в каком состоянии, вроде так

Добавлено через 13 минут
C++
1
ADOQuery1->FilterOptions << foNoPartialCompare;
1
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
20.04.2016, 09:15  [ТС]
можно подробнее о filterOption, где, че?!?
пользую AdoTable.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
20.04.2016, 09:32
Ну лучше конечно использовать ADOQuery,AdoTable дольше работает, но ладно пишешь перед тем как фильтр устанавливаешь в true
C++
1
ADOTable1->FilterOptions << foNoPartialCompare;
Покажи как ты фильтруешь
1
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
20.04.2016, 09:57  [ТС]
Фильтр по OnFilterRecord, подчиненные таблицы
C++
1
Accept = DataSet->FieldByName("таблица")->AsString == "искомое";
Фильтр живой, главная таблица
C++
1
Form2->ADOTable1->Filter = "таблица" + " like %" + "искомое" + "%" ;
Пробовал like подкинуть, не работает, ни %, ни *.


При включении foNoPartialCompare, я так понял, по логике вещей вместо символа можно ставить *, и оно будет считать его как некий символ. Но не получается.
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
20.04.2016, 10:09
Почитай там все описано, особенно посмотри одинарные кавычки
C++
1
like '%" + "искомое" + "%'"
Фильтр ADOTable->Filter
1
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 18
20.04.2016, 11:35  [ТС]
Немного не то, в подчиненных таблицах ADOTable отказывается фильтровать.
Делаю без AdoQuery.
Поэтому то я и использую OnFilterRecord. Но могу искать только записи только по фиксированному поиску.

В AdoTable такой вариант работает:
C++
1
like '%" + "искомое" + "%'"
Но вот в OnFilterRecord не воспринимает:
C++
1
Accept = DataSet->FieldByName(a)->AsString =="like '%" + b + "%'";
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2016, 11:35
Помогаю со студенческими работами здесь

Соединение с Excel через ADO
Добрый день! Выручайте... Нужно через ado открыть Excel. ADOConnection1-&gt;ConnectionString =...

Intraweb Подключение к базе через ADO
Всем здравствуйте. Добавляю элементы в DataModule: ADOConnection, ADOTable, DataSource и связываю их между собой, затем наношу IWDBGrid на...

Работа с базами Access через ADO
Всем привет!!! Хочу наваять програмку типа каталогизатора, соответственно чтоб она работала с базами данных. Кое-какой опыт в...

БД через ADO технологию совместимо с Access
Боюсь даже спрашивать, ибо слишком много сделал по данной технологии соединения. И все же! Надежная ли штука? Много ли будет проблем...

Как подключить .csv через ADO
Подскажите пожалуйста, как подключить .csv через ADO ? я подключил .xls через ADO, а теперь мне надо подключить .csv, чтобы начать обмен...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru