![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запрос на большую базу [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, выбирая записи в соответствии с указанной в едите частью фамилии