Ищет в таблице первую запись с полем, соответствующим указанному выражению.

LOOKUP(ReturnField, eSearchExpression, SearchedField [, cTagName])

Параметры

ReturnField

Определяет поле, содержание которого LOOKUP( ) возвращает в случае успешного поиска. Если поиск неудачен, LOOKUP( ) возвращает пустую символьную строку той же самой длины и типа данных как ReturnField.
eSearchExpression

Определяет выражение поиска. Выражение поиска - обычно является содержанием поля таблицы, или оно может соответствовать индексному выражению активного индекса или составного индексного тэга.
SearchedField

Определяет поле, в котором осуществлять поиск. Если таблица не имеет активного индекса, LOOKUP( ) исполняет последовательный поиск по полю, указанному в SearchedField. Если индексный файл или индексный тэг являются открытыми, и их индексное ключевое выражение соответствует полю поиска, которое Вы опредили, LOOKUP( ) использует индексный файл или индексный тэг, чтобы выполнить более быстрый поиск.
cTagName

Определяет имя составного индексного тэга для LOOKUP( ), чтобы использовать его в поиске. Поиск по Составному индексу - самый быстрый поиск, который может выполнить LOOKUP( ).

Возвращаемое значение

Символьное, Числовое, Денежное, С плавающей точкой, Целочисленное, Двойное, Даты, DateTime, или Логическое

Замечания

Если поиск успешен, LOOKUP( ) перемещает указатель на запись вхождения и возвращает содержание указанного поля в записи.

Если выражение поиска не найдено, LOOKUP( ) возвращает строку из пробелов той же длины и типа данных как ReturnField. Указатель записи устанавливается в конц файла.

Если LOOKUP( ) используется, чтобы искать в родительской таблице, указатели записи во всех связанных дочерних таблицах перемещаются к связанным записям.

Эта функция не может быть оптимизирована Оптимизацией Запросов Rushmore.

Пример

В следующем примере, LOOKUP( ) использует индексный тэг company для поиска первого вхождения строки "Эрнст Хандель". Если поиск успешен, LOOKUP( ) возвращает содержание поля contact и @ ... SAY отображает возвращаемое значение.

Скопировать код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER company  && Open Customer table
CLEAR
@ 2,2 SAY LOOKUP(contact, 'Ernst Handel', company, 'company')

См. Также