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

Вниз

Как организовать поиск "Найти далее"?   Найти похожие ветки 

 
Сергей   (2008-10-09 18:52) [0]

Использую QueADOQuery2.Locate (ColFind,trim(Edit1.Text),[loCaseInsensitive, loPartialKey]). Ищет только первое вхождение строки.  Как искать следующие вхождения? Спасибо.


 
clickmaker ©   (2008-10-09 18:56) [1]

перебором


 
Ega23 ©   (2008-10-09 18:59) [2]


> Как искать следующие вхождения?


Только перебором, по-другому никак. Собственно, и Locate перебором работает.


 
Сергей   (2008-10-09 19:10) [3]

Как это сделать? Как заставить Locate искать от первого вхождения до второго.
Нашел первую запись например 111111 затем вторую 11111 и так далее


 
Правильный$Вася   (2008-10-09 19:10) [4]


> Собственно, и Locate перебором работает.

в данном конкретном - да
в вообще-то - нет, при наличии индексов он их использует


 
Правильный$Вася   (2008-10-09 19:11) [5]


>  Как заставить Locate искать от первого вхождения до второго.

это невозможно
тебе же сказали - перебором
это значит query.Next пока не совпало


 
Сергей   (2008-10-09 19:20) [6]

Почему же тогда курсор остается на той же записи?


 
Palladin ©   (2008-10-09 19:22) [7]

потому что на другую он не переходит


 
Anatoly Podgoretsky ©   (2008-10-09 19:26) [8]


> Почему же тогда курсор остается на той же записи?

Наверно у тебя ошибка в программе?


 
Сергей   (2008-10-09 19:36) [9]

Перевожу курсор на другую запись. После поиска Locate переходит на туже запись.

procedure TForm3.DBGrid1TitleClick(Column: TColumn);
begin
if  flagLok then ADOQuery2.Next;
ColFind:= trim(Column.FieldName);
if not ADOQuery2.Locate (ColFind,trim(Edit1.Text),[loCaseInsensitive, loPartialKey]) then
ShowMessage(Edit1.Text + " not found in " + ColFind)
else
begin
flagLok:=true
end;
end;


 
Ega23 ©   (2008-10-09 19:55) [10]


> После поиска Locate переходит на туже запись.


TDataSet.Locate + F1


 
Anatoly Podgoretsky ©   (2008-10-09 20:01) [11]


> Сергей   (09.10.08 19:36) [9]

Ну так и есть - и где же тут перебор?


 
MsGuns ©   (2008-10-09 20:41) [12]

http://delphimaster.net/view/2-1222845582/


 
Правильный$Вася   (2008-10-09 20:42) [13]


> Перевожу курсор на другую запись. После поиска Locate переходит
> на туже запись.

Locate всегда ищет сначала, где бы у тебя не стоял до этого указатель
еще раз - перебор, в цикле, пока не найдешь или пока не конец набора данных


 
Anatoly Podgoretsky ©   (2008-10-09 20:54) [14]

> Правильный$Вася  (09.10.2008 20:42:13)  [13]

Для сортированого по полю - пока равно


 
ПРавильный$Вася   (2008-10-09 20:59) [15]


> Anatoly Podgoretsky ©   (09.10.08 20:54) [14]

это на полное совпадение или на начало строки
а на вхождение, как хочет автор, - до упора


 
sniknik ©   (2008-10-09 21:40) [16]

> QueADOQuery2
ADO (датасет) поддерживает FindFirst/FindNext/...
которые кстати работают не перебором, а фильтром... поэтому возможны казусы, при активном локальном индексе, может найти сначала последнюю отображаемую запись а после первую (т.е. индекс при поиске не учитывается).



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

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

Наверх




Память: 0.5 MB
Время: 0.015 c
6-1195631001
novill
2007-11-21 10:43
2008.11.23
Как получить показания времени на удаленной машине по сети?


15-1221911341
Урсулапов
2008-09-20 15:49
2008.11.23
Какой программой можно редактировать субтитры?


15-1222164477
Alkid
2008-09-23 14:07
2008.11.23
Недетерминистические алгоритмы


2-1223996504
Gurd
2008-10-14 19:01
2008.11.23
Назначить edit2 событие onKeyPress edit1


15-1222326364
123-ий
2008-09-25 11:06
2008.11.23
Работа с NOD32