Использование Delphi для создания приложений баз данных. Устюгова В.Н. - 28 стр.

UptoLike

Составители: 

28
Поиск записей в наборах данных по любым полям
Метод Locate
Метод Locate ищет первую запись, удовлетворяющую критерию поиска, и если такая
запись найдена, делает ее текущей. В этом случае в качестве результата возвращается True.
Если запись не найдена, возвращается False.
function Locate(const KeyFields: String; const KeyValues: Variant; Options:
TLocateOptions): Boolean;
Список KeyFields указывает поле или несколько полей, по которым ведется поиск. В
случае нескольких поисковых полей их названия разделяются точкой с запятой. Критерии
поиска задаются в вариантном массиве KeyValues так, что i-e значение в KeyValues ставится
в соответствие i-му полю в KeyFields. Options позволяет указать необязательные значения
режимов поиска:
loCaseInsensitive - поиск ведется без учета высоты букв, т.е. если в KeyValues указано
«принтер», а в некоторой записи в данном поле встретилось «Принтер» или «ПРИНТЕР»,
запись считается удовлетворяющей условию поиска;
loPartialKey - запись считается удовлетворяющей условию поиска, если она содержит часть
поискового контекста; например, удовлетворяющими контексту «Ма» будут признаны
записи со значениями в искомом поле «Машин», «Макаров» и т.д.
Например,
with CustTable do
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']),
[loPartialKey]);
или
var
LocateSuccess: Boolean;
SearchOptions: TLocateOptions;
begin
SearchOptions := [loPartialKey];
LocateSuccess := CustTable.Locate('Company', 'Professional Divers, Ltd.', SearchOptions);
end;
Locate производит поиск по любому полю; поле или поля, по которым производится
поиск, могут не только не входить в текущий индекс, но и не быть индексными вообще.
В случае если поля поиска входят в какой-либо индекс, Locate использует этот индекс
при поиске. Если искомые поля входят в несколько индексов, трудно сказать, какой из них
будет использован. При поиске по полям, не входящим ни в один индекс, применяются
фильтры BDE.
4. . Используя таблицы из базы данных DBDEMOS создать приложение, в котором
организовать поиск записей в наборах данных с использованием метода Locate.
Метод Lookup
Метод Lookup находит запись, удовлетворяющую условию, но не делает ее текущей, а
возвращает значения некоторых полей этой записи. Тип результата -Variant или вариантный
массив. Независимо от успеха поиска записи, указатель текущей записи в НД не изменяется.
                    Поиск записей в наборах данных по любым полям

                                         Метод Locate

      Метод Locate ищет первую запись, удовлетворяющую критерию поиска, и если такая
запись найдена, делает ее текущей. В этом случае в качестве результата возвращается True.
Если запись не найдена, возвращается False.
function    Locate(const KeyFields:     String;    const KeyValues:      Variant; Options:
TLocateOptions): Boolean;

     Список KeyFields указывает поле или несколько полей, по которым ведется поиск. В
случае нескольких поисковых полей их названия разделяются точкой с запятой. Критерии
поиска задаются в вариантном массиве KeyValues так, что i-e значение в KeyValues ставится
в соответствие i-му полю в KeyFields. Options позволяет указать необязательные значения
режимов поиска:
loCaseInsensitive - поиск ведется без учета высоты букв, т.е. если в KeyValues указано
«принтер», а в некоторой записи в данном поле встретилось «Принтер» или «ПРИНТЕР»,
запись считается удовлетворяющей условию поиска;
loPartialKey - запись считается удовлетворяющей условию поиска, если она содержит часть
поискового контекста; например, удовлетворяющими контексту «Ма» будут признаны
записи со значениями в искомом поле «Машин», «Макаров» и т.д.
Например,
with CustTable do
  Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']),
[loPartialKey]);

или

var
 LocateSuccess: Boolean;
 SearchOptions: TLocateOptions;
begin
 SearchOptions := [loPartialKey];
 LocateSuccess := CustTable.Locate('Company', 'Professional Divers, Ltd.', SearchOptions);
end;

     Locate производит поиск по любому полю; поле или поля, по которым производится
поиск, могут не только не входить в текущий индекс, но и не быть индексными вообще.
     В случае если поля поиска входят в какой-либо индекс, Locate использует этот индекс
при поиске. Если искомые поля входят в несколько индексов, трудно сказать, какой из них
будет использован. При поиске по полям, не входящим ни в один индекс, применяются
фильтры BDE.


     4. . Используя таблицы из базы данных DBDEMOS создать приложение, в котором
организовать поиск записей в наборах данных с использованием метода Locate.

                                        Метод Lookup

     Метод Lookup находит запись, удовлетворяющую условию, но не делает ее текущей, а
возвращает значения некоторых полей этой записи. Тип результата -Variant или вариантный
массив. Независимо от успеха поиска записи, указатель текущей записи в НД не изменяется.


                                               28