Шаг 210 - Объект Relation

Описание
Объект Relation представляет связь между полями таблиц или запросов (только в базах данных Microsoft Jet).

Замечания
Свойства объекта Relation позволяют выполнить следующие действия:

  1. Установить режим сохранения целостности данных для связи между полями в основных таблицах (однако, этого нельзя сделать для связи с участием запроса или присоединенной таблицы).
  2. Установить связи без поддержания целостности данных между полями любых таблиц или запросов — принадлежащих базе данных или присоединенных.
  3. Ссылаться при помощи свойства Name на связь между полями адресуемой главной таблицы и адресующей внешней таблицы.
  4. При помощи свойства Attributes определить тип связи между полями таблиц (отношение "один-к-одному" или отношение "один-ко-многим" ), а также режим поддержания целостности данных.
  5. Указать с помощью свойства Attributes, может ли ядро Microsoft Jet выполнять операции каскадного обновления и каскадного удаления над главными и внешними связанными таблицами.
  6. Указать с помощью свойства Attributes, принадлежит ли связь между таблицами к типу левого объединения или правого объединения.
  7. Использовать значения свойства Name всех объектов Field из семейства Fields объекта Relation для задания или возвращения имен полей ключа адресуемой таблицы, а также значения свойства ForeignName объектов Field для задания или возвращения имен полей внешнего ключа адресующей таблицы.

При попытке внесения изменений, противоречащих связям, установленным в базе данных, возвращает перехватываемая ошибка. При попытке выполнить операции каскадного обновления или каскадного удаления ядро базы данных Microsoft Jet изменяет в таблицах ключ и внешний ключ таким образом, чтобы обеспечить условия установленной связи.
Например, в демонстрационной базе данных "Борей" установлена связь между таблицами "Заказы" и "Клиенты". Поле "КодКлиента" таблицы "Клиенты" является ключевым, а поле "КодКлиента" в таблице "Заказы" является полем внешнего ключа. При занесении новой записи в таблицу "Заказы" ядро Microsoft Jet проводит поиск в таблице "Клиенты" записей с совпадающим значением поля "КодКлиента". Если такая запись не найдена, ядро Microsoft Jet не принимает новую запись, и возникает перехватываемая ошибка.
При задании режима сохранения целостности данных должен существовать уникальный индекс для ключевого поля адресуемой таблицы. Ядро базы данных Microsoft Jet автоматически создает индекс и устанавливает значение свойства Foreign в адресующей таблице, необходимое для выполнения роли внешнего ключа.
Для создания нового объекта Relation следует вызвать метод CreateRelation. При ссылках на объект Relation используют его порядковый номер в семействе или значение свойства Name (имя):

Relations(0)
Relations("имя")
Relations![имя]

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.04.2002