На этом шаге мы рассмотрим использование метода Lookup.
Метод Lookup находит запись, удовлетворяющую условию, но не делает ее текущей, а возвращает значения некоторых полей этой записи. В отличие от Locate, Lookup осуществляет поиск только на точное соответствие критерия поиска и значения полей записи.
Опишем параметры этого метода.
function Lookup (const KeyFields: String; const KeyValues: Variant; const ResultFields: String): Variant;
В KeyFields указывается список полей, по которым необходимо осуществить поиск. При наличии в этом списке более чем одного поля, соседние поля разделяются точкой с запятой.
Если в результате поиска запись не найдена, метод Lookup возвращает значение "пусто", в противном случае Lookup возвращает из этой записи значения полей, список которых содержит ResultFields.
Рассмотрим пример:
ShowMessage(DataModule2.TablePupils.Lookup ('FIO','Петров П.П.','God'));
В данном примере ведется поиск по полю FIO НД TablePupils. Если в НД есть запись, у которой значение поля FIO - "Петров П.П.", то появится сообщение со значением поля God этой записи. Данный код не вполне корректен, т.к. такой записи может и не быть, тогда метод Lookup вернет "пусто". Для избежания ошибок рекомендуется делать такую поверку:
if VarType(DataModule2.TablePupils.Lookup('FIO','Петров П.П.','God'))<>varNull then ShowMessage(DataModule2.TablePupils.Lookup('FIO','Петров П.П.','God'));
На следующем шаге мы начнем рассматривать работу с индексами.