![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Контекстный поиск в таблице [D5, dBase, FoxPro, Paradox]
maras © (2002-10-22 10:05:00)Ситуация такая.
Задается строка поиска _stroka.
Нужно отобрать из таблицы (Pdox или dBase) строки в заданных полях F1,F2...
Fn которой содержится строка _stroka (но не точное соответствие, а
вхождение). Поля F1,F2... Fn как текстовые так и числовые.
Выбор в каком поле из F1,F2... Fn искать, осуществляется с помощью СheckBox
(cbF1,cbF2..cbFn).
Сделала - путем перебора всех записей таблицы и проверкой
pos(_stroka,F1)>0 (при cbF1.Checked) и т.д.
Все работает. Но при количестве записей >500 уже просто действует на нервы.
Может кто-то подскажет как сделать быстро и элегантно( с ProgressBar -ом и
прочими прибамбасами)
Спасибо заранее, Марина
Можно ответить MSS68@mail.ru
Anatoly Podgoretsky (2002-10-22 10:43:00) [1]Но достаточно эффективный по сравнению с жругими методами
sniknik (2002-10-22 10:36:00) [2]В том то и дело (может я непонятно выразился) что в любом случае будет перебор таблици.
Anatoly Podgoretsky (2002-10-22 10:32:00) [3]Индексы для LIKE не помогут
sniknik (2002-10-22 10:23:00) [4]может будет побыстрее если использовать запрос вроде
SELECT * FROM [Table] WHERE (F1+F2+...Fn LIKE "%Строка%")
и после по ключу (ключевое поле) из запроса перемещатся по таблице?
но быстрым такой поиск вряд ли сделаеш, без использования индексов в любом случае перебор таблици ...
Anatoly Podgoretsky (2002-10-22 10:14:00) [5]Select * from tbl where (fld1 like "%val%") or (fld1 like "%val%")
Строку формировать динамически в зависимость от условий поиска