Распечатать страницу

Составление оптимизируемых выражений VFP

« Назад

Выражения составляются посредством операций AND, OR и NOT и в зависимости от характеристики операндов будут либо полностью рашмор-оптимизируемы, либо частично, либо неоптимизируемы.

Возможные варианты приведены в табл. 8.3.

Таблица 8.3

Варианты рашмор-выражений

Выражение

Операция

Выражение

Результат

Полностью
оптимизируемое

AND

Полностью
оптимизируемое

Полностью
оптимизируемое

"

OR

"

"

"

AND

Частично
оптимизируемое

Частично
оптимизируемое

"

OR

"

"

"

AND

Неоптимизируемое

"

"

OR

"

Неоптимизируемое

NOT

Полностью
оптимизируемое

Полностью
оптимизируемое

Частично
оптимизируемое

AND

Частично
оптимизируемое

Частично
оптимизируемое

"

OR

"

"

"

AND

Неоптимизируемое

"

"

OR

"

Неоптимизируемое

NOT

Частично
оптимизируемое

"

Неоптимизируемое

AND

Неоптимизируемое

"

"

OR

"

"

NOT

"

"

Примеры простых выражений:

&& Полностью оптимизируемое выражение c AND

locate for FirstName = "FRED" and HireDate < {^1997–12–30}

&&

&& Неоптимизируемое выражение c OR

locate for FirstName = "FRED" or "S" $ LastName

&&

&& Полностью оптимизируемое выражение c NOT

browse for not FirstName = "FRED"

Примеры более сложных выражений:

&& Полностью оптимизируемое выражение как комбинация

&& двух полностью оптимизируемых выражений

browse for (FirstName = "FRED" and HireDate < {^1997–12–30}) ;

    or (LastName = "" and HireDate > {^1996–12–30})

&&

&& Частично оптимизируемое выражение как комбинация

&& полностью оптимизируемого и неоптимизируемого выражений

browse for (FirstName = "FRED" and HireDate < {^1997–12–30}) ;

    and "S" $ LastName

&&

&& Частично оптимизируемое выражение как комбинация

&& двух частично оптимизируемых выражений

browse for (FirstName = "FRED" and "S" $ LastName) ;

    or (FirstName = "DAVE" and "T" $ LastName)

&&

&& Неоптимизируемое выражение как комбинация

&& двух неоптимизируемых выражений

browse for (FirstName = "FRED" or "S" $ LastName) ;

                                               or (FirstName = "DAVE" or "T" $ LastName)