![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поиск по бд [D5, dBase, FoxPro]
reg © (2002-03-20 15:21:00)Как организовать быстрый поиск записи в DBGrid?
Фэ (2002-03-20 18:24:00) [1]Для ускорения поиска по любому желателен индекс.
В этом случае и Locate и FindNearest будут его использовать.
Если индекса нет то Locate построит фильтр, что дольше.
pusrg (2002-03-20 18:08:00) [2]А почему бы не создать по нужному полю вторичный индекс и не использовать FindNearest. Так пожалуй быстрее будет, хотя при малом кол-ве записей, это большой роли играть не будет.
Фэ (2002-03-20 17:50:00) [3]Для заданного вопроса корректный вариант через Locate.
2 Malder ©
Если не знаешь разницы - не мути.
Malder (2002-03-20 16:17:00) [4]Э-э-э. А locate это тоже, что и FILTER ?
Если нет - предлагаю так:
table1.filtered:=true;
table1.filter:="(Pole1=""что должно быть в первом поле"") and (Pole2=""что должно быть во втором поле"") ... ";
reg (2002-03-20 15:55:00) [5]уже нашёл
спасибо за помощь
sniknik (2002-03-20 15:50:00) [6]А в хелпе посмотреть?
Table1.Locate("Company;Contact;Phone", VarArrayOf(["Sight Diver", "P", "408-431-1000"]), [loPartialKey])
reg (2002-03-20 15:43:00) [7]Можно привести примерчик использования Locate?
Turalyon (2002-03-20 15:40:00) [8]В этом случае используй Locate
Nikolay M. (2002-03-20 15:39:00) [9]TTable.Locate
reg (2002-03-20 15:38:00) [10]надо чтобы в окошке можно было писать буквы и в DBGrid записи прокручивались одновременно со вводом так, чтобы появлялась записи, начинающиеся с этого набора символов. Связь с бд через Table
sniknik (2002-03-20 15:29:00) [11]По убыванию скорости
самый быстрый это по индексу,
если нужно выбрать записи по какомуто критерию то тогда SELECT,
и если надо установить на позицию с заданными критериями и индексов нет то Locate
а вообще поконкретней вопрос не обрисуеш?