Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Поиск по БД


Автор: Гость_shaft666 11.1.2006, 19:09
Подскажите как можно организовать поиск по таблице (Table), ищем с позиции курсора (ставишь галочку "Вверх", ищет вверх, ставишь "Вниз", ищет вниз).

P.S. Как в "Блокноте".

Автор: offline 11.1.2006, 19:13
для поиска используй Locate
если хочешь искать вверх, то придется наверное перебором

Автор: neat 12.1.2006, 09:39
Не надо никаких галочек. Locate ищет по всей базе независимо от того, где стоит курсор и останавливается на найденной.

Автор: Гость_shaft666 12.1.2006, 13:38
neat это понятно, но если 2 и более одинаковые записи, поиск останавливается на первой найденой.....

Автор: bas 12.1.2006, 15:06
FindKey,FindNearest

Автор: kobra 13.1.2006, 08:48
если ползуеш компонеты BDE то FindFirst, FindNext, FindPrior, FindLast.
а если ADO, напиши и дам исходник.

Автор: Гость_shaft666 13.1.2006, 21:06
kobra А может для BDE есть??? Буду очень признателен ]smile

Автор: Albinos_x 13.1.2006, 22:18
Цитата(Гость_shaft666 @ 13.1.2006, 21:06 Найти цитируемый пост)

А может для BDE есть??? Буду очень признателен

поиск по полям Name и Fam
Код

Table1.Filtered:=false;
Table1.Filter:='Name = ''Вася'' and Fam = ''Пупкин''';
Table1.Filtered:=true;

количество найденых записей будет равно:
Код

col:=Table1.RecordCount;

также можно использовать следующий вариант:
если Table1.Filtered:=true, то обрабатывается событие для кадой записи OnFilterRecord, в обработчике передаётся параметр-переменная Accept, если ей передать значение false, то запись отображаться не будет... приблизительно это будет выглядить так:
Код

procedure Tform1.Table1FilterRecord(DataSet:TDataset; var Accept:boolean);
begin
Case filterwert of
   1 : accept:=(DateSet.FieldByName('Name').AsString = 'Вася');
   2 : accept:=(DateSet.FieldByName('Fam').AsString = 'Пупкин');
   end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)