BROWSE
Для того чтобы временно отфильтровать данные без построения специального фильтрующего
индекса, используется команда SET FILTER. Особенно полезна эта команда в тех случаях, когда
требуется задать временное условие, которому должны удовлетворять записи таблицы, чтобы
быть доступными. Например, чтобы отфильтровать таблицу Account так, чтобы показать только
счета с суммой оплаты больше 30000, можно использовать следующие команды:
USE Account
SET FILTER ТО sum_ >> 30000
BROWSE
Команда SET FILTER воспринимает в качестве фильтра любое допустимое логическое
выражение Visual FoxPro. После того как выдана команда SET FILTER, в таблице будут доступны
только записи, удовлетворяющие условию фильтра. Все команды доступа к таблицам действуют с
учетом установленного командой SET FILTER критерия. Для каждой открытой таблицы может
быть установлен свой фильтр.
Вы можете повысить производительность при работе с индексированными таблицами,
поддерживая индексы в актуальном состоянии (соответствующим данным в таблицах) и
используя в них оптимизируемые выражения.
Индексный файл может оказаться устаревшим, если таблица открывается без
соответствующего индексного файла и в ее ключевые поля вносятся изменения. Индексные
файлы могут также оказаться недействительными в результате аппаратных сбоев, а также в
результате редактирования таблицы программами, отличными от Visual FoxPro. Если индексный
файл оказался устаревшим, то его можно обновить командой REINDEX.
Как перестроить индексный файл? В меню Table выберите Rebuild Indexes или используйте
команду REINDEX.
Например, следующий программный код обновляет индексный файл для таблицы Account:
USE Account REINDEX
Команда REINDEX обновляет все индексные файлы, открытые в текущей рабочей области.
Visual FoxPro распознает все виды индексных файлов (составные СDХ-файлы, структурные СDХ-
файлы и простые IDХ-файлы) и соответственно их перестраивает. Обновляются все теги в СDХ-
файлах и структурных СDХ-файлах, открывающихся автоматически вместе с таблицей.
Перестройка индексов требует временных затрат, особенно для больших таблиц. Перестройку
индексов следует производить только при необходимости.
Итак, пришло время вернуться к нашей задаче, описанной в первой главе (раздел 1.2) и
спроектированной во второй (раздел 2.2). Следующий программный код описывает создание
базы данных Auto_Store. Полностью программа записана на прилагаемой к книге дискете, здесь
мы приводим ключевые фрагменты, исключая однотипные операции:
WAIT WINDOW "Один момент..." NOWAIT
* После выполнения данного кода не забудьте БД
* "Auto_Store" включить в проект (с помощью клавиши Add,
* предварительно выделив пункт Databases во вкладке Data)
CREATE DATABASE auto_store && Создание БД Auto_Store
? DBSETPROP('auto_store', 'database', 'comment', ;
'Автоматизация управления работы дилера по продаже легковых автомобилей.') && Комментарий
к БД
* Создание таблицы Model
CREATE TABLE Model (key_model i, name_model c(20), key_firm i DEFAULT 1, ;
swept_volume n(5) NULL, quantity_drum n(2) NULL, ;
capacity n(5,1) NULL, torgue n(5,1) NULL, ;
key_fuel_oil i DEFAULT 1, top_speed n(5,1) NULL, ;
starting n(4,1) NULL, key_tyre i DEFAULT 1, ;
key_body i DEFAULT 1, quantity_door n(1) NULL, ;
quantity_sead n(2) NULL, length n(5)<|>NULL, width n(4) ;
NULL, ;
height n(4) NULL, expense_90 n(4,1) NULL, ;
expense_120 n(4,1) NULL, expense_town n(4,1) NULL)
* Установка заголовков (для таблицы model)
? DBSETPROP ('Model.key_model', 'field', 'caption', ; 'Уникальный ключ модели')
? DBSETPROP ('Model.name_model', 'field', 'caption', ; 'Наименование модели')
converted to PDF by HupBaH9I