Для поиска по произвольной выборке полей можно использовать методыLocate и Lookup.

function Locate(const KeyFields: string; const KeyValues: Variant; Options; TLocateOptions): Boolean;

function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant;

В метод Locate необходимо передать список полей, по которым будет идти поиск (параметрKeyFields, имена полей разделяются точкой с запятой), их требуемые значения (параметрKeyValues, значения разделяются запятой) и настройки поиска (параметрoptions). В настройках можно задать опциюloCaseinsensitive, которая отключает проверку на регистр символов, и опциюloPartiaiKey, которая включает поиск с минимальными отличиями. В случае успеха поиска курсор набора данных устанавливается на найденной записи, а метод возвращает значениеTrue.

Tablel.Locate('Last__Name;First_Name', VarArrayOf(['Editl.Text',

 'Edit2.Text']), []};

В метод Lookup передается список полей для поиска (параметрKeyFields, имена полей разделяются точкой с запятой) и их требуемые значения (параметрKeyValues, значения разделяются запятой). В случае успешного поиска функция возвращает массив значений типа вариант для полей, названия которых содержатся в параметреResultFields.

Tablel.Lookup('Last_Name;First_Name',

VarArrayOf(['Editl.Text', 1Edit2.Text']), 'Last_Name;First_Name');

Оба эти метода автоматически используют быстрый индексный поиск в случае, если в параметре KeyFields задать поля индекса.