|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.09.2012, 13:42 | #1 |
Пользователь
Регистрация: 25.09.2012
Сообщений: 30
|
Как реализовать поиск через ADOTable
ребят пытаюсь сделать поиск через ADOTable.Filter, но никак не получается.
Есть 3 таблицы, Пациент, Врач, Осмотр. В таблице осмотр (ADOOsmotr), есть поле КодПациента он связывается с КодПациентам из таблицы Пациент. Почему реализую все через ADOTable, потому что вся база спрограммирована через ADOTable. Не знаю как реализовать поиск с другой таблицы через свойство Filter. Как это прописать не знаю, если было бы все поля были в одной таблице там все ясно как сделать, но как сделать поиск по 2 таблицам?? Как это сделать подскажите пожалуйста? Код:
Последний раз редактировалось Stilet; 26.09.2012 в 21:50. |
25.09.2012, 18:48 | #2 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
для этого используй не TTable, а TQuery c SQL запросом по нескольким таблицам связаным по ключам ... а поиск делай методом Query.Locate
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... |
25.09.2012, 20:52 | #3 | |
Пользователь
Регистрация: 25.09.2012
Сообщений: 30
|
Цитата:
Там получается есть таблица Осмотр в поля (КодПациента,КодВрача и т.д.), так же есть таблица Пациент ее поля (КодПациента, ФИО Пациента и т.д.), связь получается один ко многим. Поиск весь берется через ADOTable, я думал как прописать связь через ADOTAble1 c ADOTable2, чтобы в дальнейшем сделать поиск по полю ФИО Пациента с таблицы ADOTable2. Можно ли это вообще реализовать без ADOQuery??? Возможно ли это вообще как то реализовать через ADOTable? Заранее спасибо. В принципе я могу скинуть программу, сможете помочь реализовать запрос по поиску, чтобы при этом найдя запись можно было ее отредактировать. Последний раз редактировалось Stilet; 26.09.2012 в 21:51. |
|
26.09.2012, 09:47 | #4 | ||
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
Цитата:
И, вообще, прислушайтесь к мудрому совету Yurk@. Цитата:
Еще приемчик. Никто не помешает сформировать запрос, объединяющий данные из двух таблиц (как Yurk@ говорит), в результатах этого запроса, полученного в ADOQuery, сделать нужный поиск. Затем, если поиск будет успешным, установить ADOTable1 (или ADOTable2) на найденную запись по значению поля КодПациента. А программу скидывайте. |
||
26.09.2012, 10:04 | #5 |
Пользователь
Регистрация: 25.09.2012
Сообщений: 30
|
там поиск реализован частично (по дате и диагнозу работает). Файл приложил. Посмотрите базу пожалуйста.
|
26.09.2012, 11:08 | #6 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
То что сделано называется фильтром, но не поиском.
Хотя, конечно, фильтрация записей может служить целям поиска. Хотелось бы узнать что все же нужно. Поиск или фильтр? Если поиск нужен только для того чтобы редактировать найденную запись, то подойдет и фильтр, хотя это менее удобно для пользователя. |
26.09.2012, 11:15 | #7 |
Пользователь
Регистрация: 25.09.2012
Сообщений: 30
|
Получается хотел сделать фильтр для полей ФИО Пациента и ФИО Врача, но там идет связь между таблицами, у меня никак это не получалось.
Вообщем в итоге хотел сделать чтобы вводе значения в Edit1, находил ФИО Пациента и при этом его можно было отредактировать, удалить, вообщем все что угодно. По дате у меня ищет все нормально, а вот по фио пациента никак не получается. |
26.09.2012, 11:42 | #8 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
Сейчас будет сделано. Немного терпения.
Правда, через ADOQuery, но тоже неплохо. Показано как, ничего не переделывая, осуществлять поиск через запрос. Поиск реализован по фамилиям пациента и врача. Все остальное, т.е. установка фильтров по другим полям, осталось без изменения. Но и по ним можно устроить поиск похожим образом. Последний раз редактировалось Stilet; 26.09.2012 в 21:54. |
27.09.2012, 06:42 | #9 |
Пользователь
Регистрация: 25.09.2012
Сообщений: 30
|
Скандербег, извини что вчера не смог ответить, замотался вчера, даже некогда было за ноутбук сесть.
Посмотрел только что код,я даже и не знал что можно так подключить adoquery и сделать связь с таблицами. Правда фильтр не совсем так ищет, заметил, что когда одинаковые данные в таблице, например если искать по ФИО Пациента (к примеру ищем Петров П.В.), то он находит первую запись и встает на нее, я тут подумал, а возможно вообще реализовать так, чтобы например искал ФИО Пациента (Петров В.П.) и он выводил именно всех Петровых В.П. которые есть в базе, ну как бы делал обработку данных при этом исключая все лишнее из таблицы. Ну например как я сделал по дате, по диагнозу, так возможно реализовать? А то предпологается что в базе будет больше тысячи 500 данных, а то и больше. |
27.09.2012, 08:12 | #10 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
Если в БД предполагается хранить данные в означенном объеме, то вряд ли ваш Аксесс потянет такую прорву. Тем более показывать это все с помощью ADOTable, который, насколько помню, не буферизирует данные.
Вы же не хотите сказать, что в обозримом будущем перед пользователем в гриде будут показываться все 500 тыс. записей. Нелепость этого показа очевидна - юзеру в каждый конкретный момент времени они все не нужны и поэтому, в том или ином виде, придется применять ограничения к количеству показываемых записей. А для поиска при наличии дубликатной информации (фамилии одних и тех же людей, к примеру) нужно либо отсортировать данные в ADOTable по тому полю, по которому ведется поиск, либо, да, устанавливать фильтр по условиям. Но тогда много лучше будет, если вместо ADOTable применить ADOQuery. В общем, как ни крути, а если БД, действительно, предполагается с серьезным объемом данных, то без ADOQuery (и, подозреваю, без более серьезной СУБД) не обойтись. Последний раз редактировалось Скандербег; 27.09.2012 в 10:18. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как реализовать такой поиск? | pеps | PHP | 3 | 22.01.2012 18:57 |
Как реализовать соединение мобилы с компом через Bluetooth. | Мастак | Общие вопросы по Java, Java SE, Kotlin | 0 | 30.10.2011 23:05 |
Как реализовать поиск по строкам. | shinta111 | БД в Delphi | 1 | 20.02.2011 22:34 |
Как копировать данные из ADOTable в ADOTable? | mauar | БД в Delphi | 1 | 10.05.2008 16:05 |
как реализовать поиск синонимов? | borsh | Помощь студентам | 24 | 16.12.2006 10:48 |