Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск


Miss ©   (2002-11-11 07:37:00) 

Киньте кто-нить фрагментик типа "Искать далее",плиз


sniknik   (2002-11-11 10:34:00) [1]

Леван (11.11.02 09:50)
в Дельфи есть все (как в Греции) надо только знать где взять. :-).

Пример для ADO (возможно и для BDE)

ADODataSet.Filter:= SearchField+" = "+SearchText;
или
ADODataSet.Filter:= SearchField+" LIKE %"+SearchText+"%";
или
ADODataSet.Filter:= "придумай сам что нужно";
(включать фильтр не надо, не для этого нужен )

поиск первого по фильтру
ADODataSet.FindFirst;

следуюший
ADODataSet.FindNext;
предыдущий
ADODataSet.FindPrior;
(вообщето это функции их и надо как функции обрабатывать нашло/не нашло)

Хотя я предпочитаю .... и т.д. прочти последнюю строку в ЮЮ © (11.11.02 09:02).
Более правильный метод по моему (и не только :-)


Леван   (2002-11-11 09:50:00) [2]

etot vopros interesoval i menia, no ne nashel otveta:
v foxpro est "Locate" i potom "Continue"
est li chto-nibud poxojee v Dephi?


ЮЮ   (2002-11-11 09:02:00) [3]

Искать далее, это простой перебор строк набора данных и сравнение с шаблоном поиска:

Var find_record: boolean;
begin
find_record := false;
DataSet.Next; // или Prior при поиске вверх
While
not DataSet.EOF and not DataSet.BOF and not find_record
do
if DataSet.Fiiels[0].Value = SearchValue
then find := true
else DataSet.Next;// или Prior при поиске вверх
if not find_record then ... запись не найдена

Я же предпочитаю в отдельном запросе выбрать все записи, удовлетворяющие условию поиска и показать из в отдельном окне, синхронизируя выбираемую запись из запроса и запись в исходном НД


Наверх

Титульная страница Поиск, карта сайта Написать письмо