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

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

запрос на большую базу [D6, dBase, FoxPro]


KonstVD ©   (2002-10-28 15:43:00) 

Есть таблица ~100000 записей. Допустим, есть поля - фамилия, имя, отчество и место работы длиной, скажем, по 25 символов. Плюс тут же еще куча информации (адрес, возраст и т.д.).
Результат запроса (только ФИО) выводится на dbgrid. Тут же Edit, по изменению содержимого которого нужно сразу искать человека в dbgrid и соответственно указатель на него. По желанию выводить все данные по найденному. Как можно сделать, чтобы эта система работала с более или менее приличной скоростью?


MVF   (2002-10-30 09:29:00) [1]

Какие могут быть ограничения на количество строк?!
Ведь при этом меняется суть поиска.
Если уж на то пошло, так это добавить дополнительные условия выборки. Например условия для других полей (работа и т.д.)


KonstVD   (2002-10-29 07:46:00) [2]

Использовал я like... В данной задаче выходит по 500-1000 штук в запросе. Если фамилия, например начинается Ива... и т.д. то соответственно таких вылезает куча. А нельзя ли ограничить количество выбираемых запросом строк именно по заданному количеству?


Darts   (2002-10-28 17:42:00) [3]

Проще в запрос включить и ID из таблицы. ID можно скрыть. Далее, при двойном щелчке по строке запроса можно узнать ID и передать в качестве параметра в поиск в первой таблице. Естественно, первая таблица должна проинндексирована по ID. Причем будем редактировать именно первую таблицу, а не запрос, что очень удобно.


NickBat   (2002-10-28 17:18:00) [4]

Кажеться LIKE работает не по индексам, там ведь можно выбрать по вхождению. Но направление верное.


MVF   (2002-10-28 16:40:00) [5]

Такую базу надо бы проиндексировать причем тэги должны полностью совпадать с условиями в запросах. Например: индекс по полю FIO, в запросе в условиях писать FIO like ...


stone   (2002-10-28 16:23:00) [6]

Выводить все записи, а потом в них копаться - это абсурд.
Пользователь все равно не пролистает их все. Делай запрос, используя LIKE, выбирая записи в соответствии с указанной в едите частью фамилии


Наверх

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