В Visual FoxPro можно связывать таблицы - устанавливать отношения (связи) между ними. При этом возможно установление постоянных и временных отношений между таблицами. Постоянные связи можно установить в Конструкторе БД, и они прежде всего необходимы для поддержания целостности БД при обновлении содержимого таблиц. Временные связи между таблицами могут устанавливаться при создании экранных форм (для ввода и редактирования данных) и отчетов. Обычно это делается в случаях, когда имеющиеся постоянные связи но каким-либо причинам не подходят для создаваемой формы или отчета.
Постоянные связи хранятся в словаре БД и автоматически устанавливаются при открытии таблиц. Приведем условия установления постоянных связей.
Создадим постоянные связи между таблицами. Для этого войдем в Конструктор БД и убедимся в наличии (пли создадим) перечисленные ниже индексы (табл. 21.5).
После создания всех необходимых индексов в окне Конструктора БД (рис. 21.4) будут представлены все таблицы в виде списка из полей и индексов, разделенных ключевым словом Indexes (индексы). Если в таблице список нолей и индексов виден не полностью, сто можно прокрутить вниз пли вверх. На рис. 21.4 показаны установленные межтабличные связи.
Для установления постоянной связи между родительской и дочерней таблицей необходимо:
264
Таблица 21.5
Типы индексов БД Bdu
Таблица | Имя тега | Тип индекса | Индексное выражение |
T_ZAGR | i_zagr | Primary | FIO+Predm+STR(Gruppa) |
T_PREP | i_fio | Primary | FIO |
T_PREP | i_dolgn | Candidate | Dolgn |
T_PREP | i_stag | Candidate | Stag |
T_STAG | i_stag | Primary | Stag |
T_DOLGN | i_dolgn | Primary | Dolgn |