Программирование >>  Разработка пользовательского интерфейса 

1 ... 50 51 52 [ 53 ] 54 55 56 ... 147


Индексный CDX-файл, называемый структурным составным индексом, представляет собой наиболее общий и важный тип индексных файлов Visual FoxPro.

Обратите внимание на следующие свойства структурного CDX-файла:

Автоматически открывается при открытии таблицы.

В одном индексном файле может содержаться несколько вариантов упорядочения записей или индексных ключей.

Автоматически поддерживает операции добавления, изменения или удаления записей таблицы.

Visual FoxPro предлагает дополнительно еще два вида индексных файлов: неструктурные СDХ-файлы и файлы с одним ключом - IDX-файлы. Однако СDХ-файлы, или структурные составные компактные индексы, представляют наиболее важный вид индексов. Остальные два вида индексов употребляются реже.

Visual FoxPro поддерживает четыре типа индексов: первичные, кандидаты, уникальные и обычные. Тип индекса определяет, допустимы или нет повторяющиеся значения полей и записей.

Первичный индекс (Primary) - это единственный индекс в таблице, который определяет уникальное ключевое значение для ее записей.

Следовательно, он запрещает повторяющиеся значения в заданных полях или в выражении. Для таблицы может быть создан только один первичный индекс. При попытке задать первичный индекс для поля, в котором уже имеются повторяющиеся значения, Visual FoxPro выдает сообщение об ошибке.

Индекс-кандидат (Candidate) - это индекс, который удовлетворяет требованиям к первичному индексу, но может быть не единственным в таблице.

Он также запрещает повторяющиеся значения в заданных полях или выражении. Название кандидат относится к основному свойству индекса: поскольку он запрещает дублирующие значения, то этот индекс можно использовать в качестве первичного индекса для таблицы.

При попытке задать индекс-кандидат для поля, в котором уже имеются повторяющиеся значения, Visual FoxPro выдает сообщение об ошибке.

Первичные индексы и индексы-кандидаты создаются с помощью команд CREATE TABLE или ALTER TABLE. При определении постоянного отношения типа один ко многим или один к одному можно использовать со стороны один как первичный индекс, так и индекс-кандидат.

Для создания первичного индекса или индекса-кандидата на вкладке Index Конструктора таблиц выберите тип индекса Primary или Candidate и создайте индекс (рис. 6.7) или используйте команду ALTER TABLE.



\y Table Designer

Jable Name: I model

Database:

I c:\project book\aLito store dbc

Table Properties..

Table

Index

Name

TiJpe

Expression

KEY MODEL

Primary.

key model

KEYFUEL

Regular

kev fuel oil

KEYLTYRE

Regular

keiJ tiJre

KEYiBQDY

fieVlar.-

kev bodi)

KEY FIRM

ReguT

keiJ firm

Filter

Cancel

Insert

Delete

c:\project book\model.dbf

Records: 37 Fields: 20 Length:

Рис. 6.7.

Например, каждая из следующих команд делает key model первичным ключом для таблицы

Model:

ALTER TABLE Model ADD PRIMARY KEY key model TAG key mode ALTER TABLE Model ALTER COLUMN key model I PRIMARY KEY

Первичные индексы и индексы-кандидаты хранятся в структурном СDХ-файле данной таблицы, а также в базе данных, когда установлены свойства Primary или Candidate . Эти типы индексов невозможно хранить ни в неструктурных СDХ-файлах, ни в IDХ-файлах. Основной причиной этого является то, что файл, содержащий индексы таких типов, должен быть всегда открытым, если открыта соответствующая таблица.

Если в индексном выражении, связанном с базой данных, используется определенная пользователем функция, то выражение обрабатывается таким же образом, как и выражения правил проверки и триггеров, содержащие определенные пользователем функции.

В Visual FoxPro уникальный индекс (Unique) не запрещает повторяющиеся значения, однако уникальный индекс запоминает в индексном файле только первое появление каждого значения.

Слово уникальный относится к значениям индексного файла, содержащего только уникальные значения ключей; поскольку каждое значение не запоминается более одного раза, все последующие появления какого-либо значения игнорируются. Если таблица проиндексирована уникальным индексом, то она может иметь повторяющиеся значения. Уникальный тип индексов поддерживается для обеспечения совместимости с предыдущими версиями.

Обычный индекс (Regular) индексом -кандидатом.

это индекс, который не является уникальным, первичным или

Обычные индексы используются для упорядочения и поиска записей, но не для обеспечения уникальности данных в этих записях. Обычный индекс используется также при организации



Таблица 6.3. Виды индексов Visual FoxPro

Виды Описание Количество

индекса ключей

Структурный Имя файла, Выражения со

CDX совпадает с многими

именем ключами,

таблицы; называемыми автоматически тегами открывается при открытии таблицы

Неструктурный Должен Выражения со

CDX открываться многими

явно; имеет ключами,

имя файла, называемыми

отличное от тегами имени файла таблицы

Ограничения

Максимум 240 символов на вычисляемое выражение

Максимум 240 символов на вычисляемое выражение

Простые IDX

Должен открываться явно; имя файла с расширением

.IDX

определяется пользователем

Одноключевые Максимум 100 выражения символов на вычисляемое выражение

Неструктурные СDХ-индексы применяются в тех случаях, когда требуется создать несколько индексных тегов для какой-либо специальной цели, однако нежелательна постоянная поддержка этих индексов. Например, если приложение содержит некоторый набор отчетов на основе анализа данных в полях, которые в остальное время не индексируются, то прикладная программа может создать неструктурный СDХ-индекс с необходимыми индексными тегами, запустить на выполнение эти отчеты, а затем удалить неструктурные СDХ-индексы.

Для создания неструктурного индексного тега используйте команду INDEX с параметрами TAG

и OF.

Предложение OF в команде INDEX используется для указания того, что индекс-ный тег должен быть сохранен в файле, отличном от структурного СDХ-файла данной таблицы. Например, следующая команда создает тег с именем name firm для таблицы Firm и сохраняет его в неструктурном СDХ-файле с именем NSTRFIRM.CDX:

USE Firm

INDEX ON name firm TO TAG name firm OF NSTRFIRM

Простой, или отдельный индексный файл, образуется на основе выражений с одним ключом и хранится в файле с расширением IDХ. В отличие от СDХ-индексов, которые строятся на основе выражений со многими ключами, простые IDХ-индексы сохраняют информацию только об одном ключевом выражении.

Обычно простые индексы используются в качестве временных индексов, создаваемых или реорганизуемых непосредственно перед использованием. Для каждой таблицы может быть создано сколько угодно IDХ-файлов. Некоторые программисты предпочитают использовать этот тип индекса при создании многопользовательских приложений, так как он легче поддается восстановлению в случае аварийных сбоев.

постоянных отношений типа один ко многим со стороны многих.

После создания индексных ключей для таблицы Model по полям key model, key firm, key fuil oil, key tyre и key body можно выводить записи в различном порядке, просто выбирая нужный индексный ключ. Команда SET ORDER используется для указания того индексного ключа, по которому будет упорядочиваться таблица.

Например, следующие команды открывают окно Browse для просмотра данных и выводят записи таблицы Model, упорядоченные по полю key model:

SET ORDER ТО key model

BROWSE

В табл. 6.3 систематизируются свойства трех видов индексов.



1 ... 50 51 52 [ 53 ] 54 55 56 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика