Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

If not Tablel.FindKey( [GrTmp,NNTmp] )then

Begin

Var

Точный поиск

Установка значений для поиска

Обзор методов

ПОИСК ЗАПИСЕЙ В НД

Для поиска записей в НД в компоненте TTable применяются следующие методы:

FindKey - ищет запись, точно удовлетворяющую условиям в списке значений; су­ществует также дублирующий его метод GoToKey,

FindNearest - ищет запись, наиболее полно удовлетворяющую условиям в списке значений; существует также дублирующий его метод GoToNearest.

В отличие от методов Locate и Lookup, которые TTable унаследовал от TDBDataSet и которые описаны в п. 6.4, эти методы ищут запись по ключевым полям. Если в таблице не построен хотя бы один индекс, использовать методы FindKey и FindNearest нельзя.

Состав полей, используемых для идентификации нужной записи при поиске в НД, определяется текущим индексом. Поэтому в качестве текущего нужно установить индекс, построенный по полям, значения которых и будут отыскиваться. Напомним, что для установки текущего индекса используют свойства IndexFieldNames или IndexName.

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

Для точного поиска (поиска на точное соответствие) применяется метод FindKey. Он пыта­ется отыскать в НД запись, у которой индексные поля соответствуют значениям, указанным в параметре обращения. Если такая запись найдена, метод FindKey возвращает True и указатель текущей записи в НД (курсор НД) устанавливается на эту запись, т. е. она делается текущей. Если найдена группа записей, отвечающая условию, текущей становится логически первая из них. Если запись не найдена, курсор НД не перемещается и метод возвращает False.

Пример. Пусть имеется НД с полями GrNum (номер группы), NN (номенклатурный номер товара), Tovar (наименование товара):

 

GrNum   NN   Tovar  
    Махорка  
    Веник универсальный  
    Кашпо плетеное  
    Дискеты BASF  
    Книга «Пушкин в изгнании»  
    Комплект отверток  

Рис. 7.4. Записи набора данных.

Предположим, что поисковое значение GrNum вводится в Edit1, a NN- в Edit2. То­гда обработчик нажатия клавиши поиска FindButton может выглядеть так (для просто­ты в обработчике не контролируется правильность ввода в компонентах Edit1, Edit2):

procedure TForm1.FindButtonClick(Sender: TObject);

GrTmp, NNTmp: Integer

GrTmp:= StrToInt (Edit1.Text);

NNTmp:= StrToInt(Edit2.Text);

// Поиск записи:

ShowMessage('Нет товара с такой группой и номером!');

end;

 

Пусть в Edit1 введено 12 и в Edit2 - 4. Тогда указатель переместится на запись, у которой значение GrNum равно 12 и значение поля NN равно 4 (рис. 7.5):

GrNum   NN   Tovar Махорка Веник универсальный  
12     Кашпо плетеное  
    Дискеты BASF Книга «Пушкин в изгнании» Комплект отверток  

 

Для точного поиска в Delphi имеется группа методов SetKey, EditKey, GotoKey, ко­торые должны выполняться вместе и которые по функциональности аналогичны методу FindKey. Использование их менее удобно: сначала НД переводится в состояние dsSetKey (методом SetKey или, если он уже применялся для данного индекса, EditKey), затем присваиваются поисковые значения полям и выполняется метод GotoKey. После этого НД переходит в состояние dsBrowse. Результат выполнения аналогичен резуль­тату, возвращаемому методом FindKey. Например, код

<== предыдущая лекция | следующая лекция ==>
Тестовый контроль знаний | Михаил ЛЬвович Покрасс
Поделиться с друзьями:


Дата добавления: 2015-06-29; Просмотров: 315; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.