Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
Сергей   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.009 c
2-1223818412
Yura
2008-10-12 17:33
2008.11.23
Где найти описание - DBGridEh? (или статью с примерами)


2-1223738842
Andrew
2008-10-11 19:27
2008.11.23
Как правильно скопировать строки


15-1222077048
Пробежал...
2008-09-22 13:50
2008.11.23
Книжные магазины


2-1223617781
F@T@L_Err0r
2008-10-10 09:49
2008.11.23
Запуск приложения


3-1209663336
trubin
2008-05-01 21:35
2008.11.23
Дерево в БД - проблема при удалении узла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский