Рассмотрим пример базы данных, связывающей объекты слоя Дома с семантической информацией – адресом здания. Допустим, что адрес дома задается названием улицы или проспекта, типом («улица», «проспект», «набережная» и т.д.) и номером дома. Базовой таблицей для задания адреса будет таблица address.db, связывающая идентификаторы элементов слоя (поле Sys) с кодом адреса и номером дома. Таблица addrcode.db будет связывать код адреса с парой идентификаторов названия улицы и типа, соответственно названия («Невский», «Гороховая», «Сенная» и т.д.) будут храниться в таблице street.db, а типы («проспект», «улица», «площадь» и т.д.) — в таблице strtype.db. Нам же нужно получить для запрашиваемого элемента слоя информацию в виде названия, типа и номера дома.
Шаг 1. Открытие описателя базы данных
Откройте структуру слоя Дома, для этого выберите пункт меню
или нажмите на панели инструментов кнопку (слой при этом НЕ должен быть редактируемым).В открывшемся диалоговом окне Структура слоя в дереве слева выделите пункт Базы данных.
Справа в открывшейся вкладке выделите созданную ранее базу База по домам, нажмите кнопку
.Шаг 2. Редактирование таблицы Address.db
В редакторе баз данных выделите таблицу address.
Сделайте щелчок правой кнопкой мыши и в открывшемся контекстом меню выберите пункт
.Нажмите кнопку Короткое целое.
и в свободной строке введите имя поле Addr_code, установите для него тип -Точно так же как в пункте 3 добавьте поле Bld_no, тип поля установите так же короткое целое.
Для сохранения таблицы нажмите кнопку
.Закройте окно изменения таблицы – кнопка
.Шаг 3. Создание таблиц addrcode.db и strtype.db
Нажмите кнопку
.Задайте имя таблицы addrcode, нажмите
.Поле Sys в данной таблице не нужно, удалите его.
Добавьте поля.
Addr_code – тип короткое целое;
Street_code – тип короткое целое;
Type_code – тип короткое целое.
Сохраните таблицу, закройте окно.
Точно таким же образом создайте и сохраните таблицу strtype с полями.
Street_type – тип короткое целое;
Name – тип строковое.
Шаг 4. Создание запроса
В редакторе баз данных нажмите кнопку .
Нажмите кнопку
.Добавьте в запрос таблицы address, addrcode, street и strtype.
Проведите связь между полями таблиц.
Address.AddrCode->AddrCode.Addr_Code;
AddrCode.Street_Code->Street.Code_Street;
AddrCode.Type_Code->StrType.Street_Type.
Из выбранных таблиц наберите список полей, участвующих в запросе (из таблицы Street - поле Name_street, из таблицы Strtype - поле Name, из таблицы Addres - поле Bld_No).
Задайте пользовательские названия полей запроса.
Выберите поле связи с картой, (для рассматриваемого примера - поле Sys из таблицы Address).
Для сохранения запроса нажмите кнопку
.Задайте имя запроса, например Адресные точки, закройте окно создания запроса.
Рисунок 660. Диалоговое окно Запрос
Шаг 5. Выбор основного запроса
В окне описателя для объектов типа Запрос в строке Основной запрос выберите из ниспадающего списка запрос Адресные точки.
Сохраните описатель – кнопка
и закройте окно редактора баз данных.