Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36Lookup.shtml

Глава 36. TDataSet.Lookup

Метод Lookup

Затрагиваемые объекты TDataSet
Назначение Метод Lookup ищет указанные поля, соответствующие заданным значениям.
Объявление function Lookup(const KeyFields: string; const KeyValues: Variant;
const ResultFields: string): Variant;
Параметры  
    KeyFields Список полей, разделенных точками с запятой.
    KeyValues Искомые значения.
    ResultFields Список полей для извлечения, разделенный точками с запятой.
Пример синтаксиса
procedure TTDataSetTestForm.LookupSpeedButtonClick(Sender: TObject);
var
   KeyFields: String;
   KeyValues: Variant;
   ResultFields: String;
   ResultVariant: Variant;
   VarArrayIndex, LowBound, HighBound: Integer;
   TheMessage: String;

Begin
   KeyFields := 'State;Company';
   KeyValues := VarArrayOf('CA','Underwater Sports Co.']);
   ResultFields := 'Company;Addrl;Addr2;City;State;Zip;Country';
// Найти "Underwater Sports Co." в "СА"
   ResultVariant : = CustomerTable.Lookup(KeyFields, KeyValues, ResultFields );
   if not VarlsNull(ResultVariant) then begin
      TheMessage := 'A lookup match was found for:';
      LowBound := VarArrayLowBound(ResultVariant,1);
      HighBound := VarArrayHighBound(ResultVariant,1);
      for VarArrayIndex := LowBound to HighBound do
         TheMessage := TheMessage + 

                     + ResultVariant[VarArrayIndex];
      end else begin
         TheMessage := 'No lookup match found.';
   end;
   MessageBeep($FFFF);
   ShowMessage(TheMessage);

end;
Описание        Метод Lookup работает практически так же, как и метод Locate. В то время, как метод Locate действительно позиционирует TDataSet на удовлетворяющую указанным критериям поиска запись, метод Lookup возвращает variant с указанными полями, считанными из подходящей записи. Метод Lookup никогда не перемещает курсор с текущей записи на другую. Первый параметр, Key Fields, представляет собой список искомых полей, разделенных точками с запятой. Второй параметр, KeyValues, имеет тип variant и задает единственное поле для совпадения, если в Key Fields было задано только одно поле. Если в KeyFields было задано несколько полей, KeyValues является хранителем массива variant, который просматривается поле за полем в поиске значений. Последний параметр, Result Fields, является списком имен полей для получения из подходящей записи. Поиск чувствителен к регистру и частичное совпадение не допускается ни с каким полем. Если поиск успешен, метод возвращает variant, содержащий значение указанного поля (или массив variant, содержащий значения нескольких указанных полей) из подходящей записи. Если поиск неудачен, то возвращается variant, равный NULL. (He путайте NULL variant с указателем Nil. NULL variant можно проверить с помощью вспомогательной подпрограммы VarlsNull для variant.)

[Свойство Active] [Метод ActiveBuffer] [Событие AfterCancel] [Событие AfterClose] [Событие AfterDelete] [Событие AfterEdit] [Событие AfterInsert] [Событие AfterOpen] [Событие AfterPost] [Метод Append] [Метод AppendRecord] [Метод ApplyUpdates] [Свойство AutoCalcFields] [Свойство BOF] [Событие BeforeCancel] [Событие BeforeClose] [Событие BeforeDelete] [Событие BeforeEdit] [Событие BeforeInsert] [Событие BeforeOpen] [Событие BeforePost] [Свойство Bookmark] [Свойство CachedUpdates] [Свойство CanModify] [Метод Cancel] [Метод CancelUpdates] [Метод CheckBrowseMode] [Метод ClearFields] [Метод Close] [Метод CommitUpdates] [Метод ControlsDisabled] [Метод CursorPosChanged] [Свойство DataSource] [Свойство DefaultFields] [Метод Delete] [Метод DisableControls] [Метод Edit] [Метод EnableControls] [Свойство EOF] [Свойство ExpIndex] [Метод FetchAll] [Метод FieldByName] [Свойство FieldCount] [Свойство FieldDefs] [Свойство FieldValues] [Свойство Fields] [Свойство Filter] [Свойство FilterOptions] [Свойство Filtered] [Метод FindField] [Методы FindFirst] [Методы FindLast] [Методы FindNext] [Методы FindPrior] [Метод First] [Свойство Found] [Метод FreeBookmark] [Метод GetBookmark] [Метод GetCurrentRecord] [Метод GetFieldList] [Метод GetFieldNames] [Метод GotoBookmark] [Свойство Handle] [Метод Insert] [Метод InsertRecord] [Метод IsLinkedTo] [Свойство KeySize] [Метод Last] [Свойство Locale] [Метод Locate] [Метод Lookup] [Свойство Modified] [Метод MoveBy] [Метод Next] [Событие OnCalcFields] [Событие OnDeleteError] [Событие OnEditError] [Событие OnFilterRecord] [Событие OnNewRecord] [Событие OnPostError] [Событие OnServerYield] [Событие OnUpdateError] [Событие OnUpdateRecord] [Метод Open] [Метод Post] [Метод Prior] [Свойство RecNo] [Свойство RecordCount] [Свойство RecordSize] [Метод Refresh] [Метод Resync] [Метод RevertRecord] [Метод SetDetailFields] [Метод SetFields] [Свойство State] [Метод UpdateCursorPos] [Свойство UpdateObject] [Метод UpdateRecord] [Свойство UpdateRecordTypes] [Метод UpdateStatus] [Свойство UpdatesPending]


<<< Пред. Оглавление
Начало раздела
След. >>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36Lookup.shtml