Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.15;
Скачать: CL | DM;

Вниз

Поиск в табличке по неполному слову по нескольким полям   Найти похожие ветки 

 
Alexsys ©   (2002-07-25 21:43) [0]

Народ, помогите. Что-то я не врубаюсь.
У меня в программке показываются записи в Gride. Хочу добавить окошко, где можно ввести какие-то поля, или части полей. Например кусок наименования предприятия и еще что-то. А потом указатель в Gride должен передвинуться на эту запись.
Вот это-то я и не могу соорудить...


 
Johnmen ©   (2002-07-26 09:52) [1]

У DataSet есть метод Locate (для точного соответствия шаблона поиска)...:)
Для частичного - сканирование НД или целенаправленный запрос.



 
SuperVK ©   (2002-07-26 11:46) [2]

Я бы поигрался со свойством Filter у таблицы или запроса, на который ссылается Grid. Он даёт возможность использовать даже какой-то язык запросов.
Можно ещё генерировать SQL-запрос.


 
kalliopiy ©   (2002-07-26 11:54) [3]


> Johnmen © (26.07.02 09:52)
> У DataSet есть метод Locate (для точного соответствия шаблона
> поиска)...:)
> Для частичного - сканирование НД или целенаправленный запрос.


Использовать надо тот же самый Locate, но только у него в третьем параметре (опции поиска) необходимо указать [loPartialKey], т.е. возможность частичного совпадения. По-моему, как раз то, что нужно Alexsys.


 
Johnmen ©   (2002-07-26 12:02) [4]

>kalliopiy © (26.07.02 11:54)
>[loPartialKey],

Нереализовано...


 
kalliopiy ©   (2002-07-26 12:08) [5]


> Johnmen ©

Что значит нереализовано? Все отлично работает. И уже давно.


 
Johnmen ©   (2002-07-26 12:17) [6]

>kalliopiy © (26.07.02 12:08)

Уточни, для каких компонент доступа и приведи кусок кода.
Очень интересно :)


 
kalliopiy ©   (2002-07-26 12:35) [7]


> Johnmen ©


Да хотя бы для TTable.

А на счет куска кода - это ж надо какую-то конкретику иметь. Какую-нибудь БД, таблицу и т.д. Я только не пойму, что тебя смущает...


 
Mike Kouzmine   (2002-07-26 12:40) [8]

Причем, если таблица большая и нет индекса, то имеет смысл поставить на евент нажатия клавиши Timer.Enable чтобы давалась пауза между нажатием клавиши и запуском фильтра или лукапа


 
Johnmen ©   (2002-07-26 12:44) [9]

>kalliopiy ©

Что-то я сегодня глючу не по-детски :( И путаю слова :(
(Конечно все работает...)




 
Alexsys ©   (2002-07-26 20:06) [10]

Спасибо, натолкнули на мысль. В своем случае управлюсь.
А вот дальше опять не врубаюсь. Например, надо найти
человека по неполному адресу и неполной фамилии одновременно.
Поля ессно разные. Адрес из нескольких полей. Неужели только фильтр?
А кода пока как такового еще нет. Куски в голове и на бумаге.
Использую Query.
Заранее спасибо, если кто подскажет...


 
NNH ©   (2002-07-27 12:00) [11]

Locate работает и по нескольким полям. Нужно их указать через запятую (и поля таблицы, и поля ввода данных), а потом воспользоваться VarArray. То есть использовать массивы с подключением модуля Дельфи


 
Anatoly Podgoretsky ©   (2002-07-27 12:38) [12]

Без дополнительного запроса не обойдешься, Locate работает только от начала поля.
Я бы те посоветовал делать выбор во втором запросе (используй также предикат disctinct), брать оттуда значение ключевого поля и по нему с помощью Locate позиционировать на запись в первом.
Фильтрация как я понял тебе не подходит, в шриде должны остаться все записи, нужно только перемещение.

Другой возможно не оптимальный в твоем случае вариант, это просканировать вручную весь полученный набор, на предмет нахождения нужной записи, но возможен большой тормоз.


 
Anatoly Podgoretsky ©   (2002-07-27 12:39) [13]

Оба варианта позволят организовать и инкрементальный поиск, что не обеспечивает Locate


 
Alexsys ©   (2002-07-28 12:48) [14]

Все понял. Спасибо. Буду делать второй запрос. Наверное, так выйдет попроще. Сканировать не прокатит - база здоровенная...



Страницы: 1 вся ветка

Текущий архив: 2002.08.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
1-48169
Belov
2002-08-02 13:22
2002.08.15
Как получить пусть к папке Start - Programs


1-48154
shubin
2002-08-01 14:18
2002.08.15
Нужен компонентик


3-48013
pum5a
2002-07-27 16:52
2002.08.15
SELECT TOP 25


1-48184
mmb
2002-08-02 16:49
2002.08.15
В какой форум лучше задать в о взаимодействие Thread ов


1-48197
Alex_31072002
2002-07-31 22:06
2002.08.15
Ресурсы и Runtime packages