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

UptoLike

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

29
function Lookup(const KeyFields: String; const KeyValues: Variant; const ResultFields: String):
Variant;
В отличие от Locate, Lookup осуществляет поиск только на точное соответствие
критерия поиска и значения полей записи. В KeyFields указывается список полей, по
которым необходимо осуществить поиск. При наличии в этом списке более чем одного поля
соседние поля разделяются точкой с запятой. KeyValues указывает поисковые значения
полей, список которых содержится в KeyFields.
Если имеется несколько поисковых полей, каждому i-му полю в списке KeyFields
ставится в соответствие i-ое значение в списке KeyValues. При наличии одного поля его
поисковое значение можно указывать в качестве KeyValues непосредственно; в случае
нескольких полей - их необходимо приводить к типу вариантного массива при помощи
VarArrayOf.
В качестве поисковых полей можно указывать поля как входящие в какой-либо индекс,
так и не входящие в него; тип текущего индекса не имеет значения. Если поисковые поля
входят в какие-либо индексы, их использование производится автоматически; в противном
случае используются фильтры BDE.
Результат можно проверить с помощью функции VarType, которая возвращает одно из
следующихзначений:
Значение, возвращаемое VarType Содержимое
varEmpty пустое (неназначенное) значение
varNull значение Null
varSmallint тип Smallint
varInteger тип Integer
varSingle тип Single
varDouble тип double
varCurrency тип Currency
varDate тип TDateTime
varVariant variant
varShortInt тип ShortInt
varByte тип Byte
varWord тип Word
varInt64 тип Int64
varString Ссылка на динамически выделенную строку
Если в результате поиска запись не найдена, метод Lookup возвращает Null, что можно
проверить с помощью оператора
if VarType(LookupResults) = varNull then ...
В противном случае Lookup возвращает из этой записи значения полей, список
которых содержит ResultFields. При этом размерность результата зависит от того, сколько
результирующих полей указано в ResultFields:
одно поле - результатом будет значение соответствующего типа или Null, если поле в
найденной записи содержит пустое значение;
несколько полей - результатом будет вариантный массив, число элементов в котором
меньше или равно числу результирующих полей (некоторые поля найденной записи могут
содержать пустые значения).
var
LookupResults: Variant;
begin
with CustTable do
function Lookup(const KeyFields: String; const KeyValues: Variant; const ResultFields: String):
Variant;

     В отличие от Locate, Lookup осуществляет поиск только на точное соответствие
критерия поиска и значения полей записи. В KeyFields указывается список полей, по
которым необходимо осуществить поиск. При наличии в этом списке более чем одного поля
соседние поля разделяются точкой с запятой. KeyValues указывает поисковые значения
полей, список которых содержится в KeyFields.
     Если имеется несколько поисковых полей, каждому i-му полю в списке KeyFields
ставится в соответствие i-ое значение в списке KeyValues. При наличии одного поля его
поисковое значение можно указывать в качестве KeyValues непосредственно; в случае
нескольких полей - их необходимо приводить к типу вариантного массива при помощи
VarArrayOf.
     В качестве поисковых полей можно указывать поля как входящие в какой-либо индекс,
так и не входящие в него; тип текущего индекса не имеет значения. Если поисковые поля
входят в какие-либо индексы, их использование производится автоматически; в противном
случае используются фильтры BDE.
     Результат можно проверить с помощью функции VarType, которая возвращает одно из
следующихзначений:
Значение, возвращаемое VarType                Содержимое
varEmpty                                      пустое (неназначенное) значение
varNull                                       значение Null
varSmallint                                   тип Smallint
varInteger                                    тип Integer
varSingle                                     тип Single
varDouble                                     тип double
varCurrency                                   тип Currency
varDate                                       тип TDateTime
varVariant                                    variant
varShortInt                                   тип ShortInt
varByte                                       тип Byte
varWord                                       тип Word
varInt64                                      тип Int64
varString                                     Ссылка на динамически выделенную строку

     Если в результате поиска запись не найдена, метод Lookup возвращает Null, что можно
проверить с помощью оператора
if VarType(LookupResults) = varNull then ...

     В противном случае Lookup возвращает из этой записи значения полей, список
которых содержит ResultFields. При этом размерность результата зависит от того, сколько
результирующих полей указано в ResultFields:
     одно поле - результатом будет значение соответствующего типа или Null, если поле в
найденной записи содержит пустое значение;
     несколько полей - результатом будет вариантный массив, число элементов в котором
меньше или равно числу результирующих полей (некоторые поля найденной записи могут
содержать пустые значения).

var
 LookupResults: Variant;
begin
with CustTable do

                                              29