Энциклопедия C++ Builder



         

ВИЗУАЛЬНАЯ РАЗРАБОТКА ПРИЛОЖЕНИЙ БАЗ ДАННЫХ - часть 11


и найденная запись становится текущей. Если искомая запись не найдена. Locate возвращает значение false, и позиция курсора не меняется.

( boot Success;

TLocateOptions Options;

Options “ loPartialKey;

Success = MyTable->Locate("Имя", "Иван", Options);

}

Листинг 5.2. Простейший пример использования метода Locate.

Возможности метода проявляются при поиске вариантных значений записи в нескольких столбцах таблицы. Обобщенный синтаксис описания метода имеет следующий вид:

bool _fastcall Locate(const AnsiString KeyFields, const Variant SKeyValues, TLocateOptions Options);

В главе 3 отмечалось, что различные типы искомых значений объявляются в шаблонном классе Variant (с помощью которого C++Builder реализует одноименный встроенный тип Delphi). Названия столбцов для поиска разделяются в текстовой строке параметра KeyFields символом точка с запятой.

Lookup выбирает значения столбца той записи, которая удовлетворяет заданным значениям поиска. Позиция курсора не меняется. В простейшем варианте вы передаете методу название столбца для поиска, искомое значение ключа записи и возвращаемые поля этой записи. Листинг 5.3 содержит фрагмент кода, обеспечивающего поиск в таблице MyTable

первой записи, у которой в столбце "Фирма" имеется значение "Borland". Если поиск завершился успешно. Lookup возвращает в массиве типа Variant название фирмы, фамилию ее представителя и номер телефона. Если искомая запись не найдена. Lookup возвращает значение Null.

{

Variant Results;

Results = MyTable->Lookup("Фирма", "Borland",

"Фирма;Представитель;Телефон") ;

}

Листинг 5.3. Простейший пример использования метода Lookup.

Возможности метода проявляются при поиске вариантных значений полей записи в нескольких столбцах таблицы. Обобщенный синтаксис описания метода имеет следующий вид:

Variant _fastcall Lookup(const AnsiString KeyFields, const Variant sKeyValues, const AnsiString ResultFields);

Названия столбцов для поиска разделяются в текстовой строке параметра KeyFields символом точка с запятой.




Содержание  Назад  Вперед