Ищет в таблице первую запись с полем, соответствующим указанному выражению.
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') |