Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MI6UGRU

.pdf
Скачиваний:
16
Добавлен:
13.02.2015
Размер:
14.71 Mб
Скачать

Глава 23: Доступ к удаленным базам данных

геометрические таблицы через ODBC соединения, использующие существующие в настоящее время драйверы ODBC компании Merant.

Дополнительная информация о том, как организовано взаимодействие на уровне взаимной поддержки типов геометрических (пространственных) данных между MapInfo и Oracle содержится в Приложении F – “Поддержка связи с базами данных”.

Требования Oracle8i

Для того, чтобы соединиться с Oracle8i из MapInfo, необходимо наличие установленного клиентского ПО Oracle8i v. 8.1.5 или v.8. 1.6. Подробнее смотрите в документации по Oracle.

Обзор Oracle 8.1.6

Версия 8.1.6 Oracle Spatial существенно изменена по сравнению с версией v. 8.1.5, но при этом не содержит никакой новой дополнительной функциональности. Ниже кратко перечислены отличия:

Новый формат для описания пространственных объектов.

Новые описатели процедур вызова узлов полигонов.

Новые таблицы метаданных.

Âверсии Oracle 8.1.6 полностью поддерживается формат данных пространственных объектов, соответствующий модели версии 8.1.5.

Поддержка в MapInfo

MapInfo полностью обеспечивает обмен данными для обеих версий Oracle Spatial v.8.1.5 и v.8.1.6 на уровне набора функций, поддерживаемых в версии v. 8.1.5. Будут читаться и заполняться пространственные таблицы и выполняться запросы к ним.

MapInfo GIS Extension Cartridge

MapInfo Professional поддерживает GIS Extension Cartridge для v. 8.1.5, передавая команды на выполнение дополнительных функций ГИС на сервер. Например, можно передать запрос, составленный для обработки в MapInfo GIS Extension как через процедуры, оформленные как команды Mapbasic, так и прямо вводя необходимые SQL предложения вручную, используя такую возможность в диалоге "Открыть таблицу DBMS". Подробнее о функциях GIS Extension можно познакомиться в документации по SpatialWare.

487

Глава 23: Доступ к удаленным базам данных

Сервер Oracle 8.1.5

MapInfo читает и записывает объекты версии 8.1.5 на сервере версии 8.1.5.

Сервер Oracle 8.1.6

MapInfo читает объекты как версии 8.1.5, так и версии 8.1.6 размещенные на сервере 8.1.6.

MapInfo записывает объекты 8.1.6 в таблице Oracle 8.1.6 на сервере 8.1.6 Oracle. Кроме того MapInfo записывает на сервер Oracle версии 8.1.6 объекты любого типа либо 8.1.5, либо 8.1.6 в зависимости от используемого в выбранной схеме.

MapInfo использует новые таблицы метаданных, введенные в версии 8.1.6. Системные словари пользовательских видов, применяемые в Oracle 8.1.6, имеют следующие определители:

USER_SDO_GEOM_METADATA

ALL_SDO_GEOM_METADATA

DBA_SDO_GEOM_METADATA

USER_SDO_INDEX_METADATA

ALL_SDO_INDEX_METADATA

DBA_SDO_INDEX_METADATA

Таблица SDO_GEOM_METADATA не используется MapInfo при обращении к серверу версии 8.1.6.

В диалоге вызова подключения MapInfo к Oracle можно не вводить имя сервера. Если такое имя не указано программы Oracle пытаются установить подключение к экземпляру Oracle, запущенному на компьютере, с которого производится вызов.

Как избежать ошибки тесселяции в 8.1.5

Это поправка применима только к версии 8.1.5. Требуется создать пользовательское представление (View) базы данных для пользователя MDSYS. Для того, чтобы получить доступ к данным в других схемах, необходимо выполнить следующий набор простых команд. Поскольку при выполнении этих команд заменяется общедоступное представление (Public view), принадлежащее пользователю MDSYS, то для их выполнения требуется доступ к базе данным под именем MDSYS.

DROP VIEW sdo_index_metadata;

CREATE VIEW sdo_index_metadata as

488

Глава 23: Доступ к удаленным базам данных

select SDO_INDEX_OWNER, SDO_INDEX_NAME, SDO_INDEX_TABLE, SDO_INDEX_PRIMARY,

SDO_TSNAME, SDO_COLUMN_NAME,

SDO_LEVEL, SDO_NUMTILES, SDO_MAXLEVEL,

SDO_COMMIT_INTERVAL,

SDO_FIXED_META, SDO_TABLESPACE, SDO_INITIAL_EXTENT,

SDO_NEXT_EXTENT, SDO_PCTINCREASE, SDO_MIN_EXTENTS,

SDO_MAX_EXTENTS

from SDO_INDEX_METADATA_TABLE

where (exists

(select table_name

from all_tables

where table_name=sdo_index_table and owner=sdo_index_owner)

or exists

(select view_name

from all_views

where view_name=sdo_index_table and owner=sdo_index_owner)

or exists

(select table_name

from all_object_tables

where table_name=sdo_index_table and owner=sdo_index_owner));

GRANT SELECT ON sdo_index_metadata TO public;

DROP PUBLIC SYNONYM sdo_index_metadata;

CREATE PUBLIC SYNONYM sdo_index_metadata FOR mdsys.sdo_index_metadata;

Установка поддержки СУБД (DBMS)

Для установки компоненты MapInfo, поддерживающей ODBC, необходимо выбрать пункт Поддержка СУБД (DBMS) при установке MapInfo. Если Вы уже установили MapInfo без поддержки СУБД (DBMS), можно повторно запустить установку MapInfo для установки такой поддержки. В этом разделе процедуры установки Вы можете выбирать из поддержки подключения к удаленной базе данных через ODBC или поддержки пространственных объектов для Oracle8i, или оба компонента.

489

Глава 23: Доступ к удаленным базам данных

Чтобы установить поддержку СУБД (DBMS):

1.Вставьте MapInfo Professional CD, после этого должен появиться Просмотрщик MapInfo.

2.Выберите Установить Продукты.

3.Выберите Поддержка СУБД (DBMS).

4.Подтвердите, что Вы согласны с условиями лицензионного соглашения, нажав кнопку ДÀ.

5.Нажмите кнопку ДÀËÅÅ.

6.Введите маршрут.

7.Выберите компоненты СУБД (DBMS), которые Вы собираетесь использовать. Можно установить компонент управляющий подключением MapInfo к базам данных через ODBC, или поддержку Oracle8i Spatial объектов, или обе части сразу.

8.Выберите папку для установки программы. Стандартно выбирается папка MapInfo. Нажмите кнопку ДÀËÅÅ, чтобы начать загрузку файлов установки СУБД (DBMS). После ее окончания появится список драйверов, которые Вы сможете использовать. Драйверы можно выбрать теперь или позже, запустив

Установщик MapInfo Professional СУБД (DBMS) из группы программ MapInfo.

9.Нажмите кнопку ГОТОВО, после чего установка поддержки СУБД (DBMS) закончена.

Установка драйверов ODBC

Вы можете установить драйверы ODBC в любое время, запустив Установщик MapInfo Professional СУБД (DBMS) из группы программ MapInfo. Для этого Вам не потребуется CD-ROM, содержащий установку MapInfo Professional. После установки поддержки СУБД (DBMS) драйверы перенесены на жесткий диск в формате со сжатием. Они будут развернуты и автоматически установлены программой Установщик MapInfo Professional СУБД (DBMS).

Вы можете также воспользоваться программой Установщик MapInfo Professional СУБД (DBMS) в любое время для установки дополнительных драйверов. Для этого Вам не понадобится CDROM, однако программа поддержки СУБД (DBMS) должна быть установлена.

490

Глава 23: Доступ к удаленным базам данных

Для установки драйверов ODBC при помощи программы Установщик MapInfo

Professional СУБД (DBMS) необходимо выполнить:

1.После установки поддержки (см. выше) запустите программу Установщик MapInfo Professional СУБД (DBMS) в группе программ MapInfo. Эта программа стандартно вызывается по адресу ПÓÑÊ РОГРАММЫ>MAPINFO> ÓСТАНОВЩИК MAPINFO PROFESSIONAL СУБД (DBMS). Этот адрес может отличаться от приведенного здесь если при установке MapInfo Professional Вы выбрали другое имя для группы программ MapInfo или установили программу MapInfo Professional в другое место на диске.

2.Нажмите кнопку ДÀËÅÅ для продолжения установки.

3.Появится следующий диалог:

4.Выберите драйверы, которые будут использоваться вместе с MapInfo, устанавливая флажки левее левой границы списка. Для того чтобы убрать, уже установленный драйвер, погасите флажок левее левой границы списка. Для завершения установки нажмите кнопку ДÀËÅÅ.

После установки драйверов можно начинать создание источников данных.

Создание новых источников данных

Настройка источников данных

Для доступа к различным базам данных Вы должны создать источник данных СУБД (DBMS) для каждой базы данных, к которой Вы хотите получить доступ. Исключением является база данных Oracle8i. При использовании OCI никакого источника данных не требуется. В остальных случаях источник данных СУБД (DBMS) содержит сведения, требующиеся при установлении подключения к базе данных.

491

Глава 23: Доступ к удаленным базам данных

Например, источник данных SQL-сервер включает в себя базу данных, управляемую СУБД SQL-сервер, на котором она размещена, и параметры сети, используемой для доступа к этому серверу. Вы создаете источник данных с помощью программы Администратор ODBC, для каждой SQL-базы данных, данные из которой Вы хотите загружать в связанную таблицу MapInfo.

Конфигурация источников данных заключается в установлении ассоциации драйвера ODBC с источником данных. Именно эта ассоциация позволяет MapInfo соединяться с конкретным источником данных и находить данные, определенные этим источником. Вы можете конфигурировать Ваши источники данных в диалоге “Добавить источник данных”.

Создать новый источник данных можно:

1.C помощью Администратора ODBC, который можно запустить из панели управления Windows или из группы программ MapInfo.

2.Нажав кнопку ADD (ДОБАВИТЬ), можно вызвать диалог “Создать новый источник данных”. При этом будут показаны все уже установленные драйверы ODBC, а именно их имена, номер версии и производитель.

3.Выделите необходимый Вам драйвер из списка

4.Нажмите кнопку ГОТОВО. После этого появится характерный для конкретного типа драйвера диалог настройки подключения к базе данных через ODBC.

492

Глава 23: Доступ к удаленным базам данных

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

В общем случае конфигурация обычно включает имя источника данных, описание и имя сервера. Некоторые конфигурации могут включать список серверов, регистрационный идентификатор и имя приложения. (Смотрите раздел “Конфигурация источников данныхСправочной системы Merant DataDirect ODBC). Справочный файл для драйвера, который требует настройки, поставляется в комплекте MapInfo и расположен в системном каталоге WINDOWS. Файлы справки этих драйверов имеют имена следующего вида - MIdrv13.HLP, где drv — это имя драйвера. Например, MIINF13.HLP — это файл справки для Informix.

5.Введите требуемую информацию об источнике данных.

6.Нажмите кнопку OK по завершении конфигурации Вашего источника данных. Драйвер записывает введенные значения в файл ODBC.INI, и эти значения будут теперь стандартными для процедуры подключения к источнику данных.

Создать новый источник данных можно из программы при установлении соединения с источником данных. Смотрите ниже раздел “Соединение с источником данных”.

Необходимые условия хранения и извлечения

пространственных данных в базах данных

Для того, чтобы в MapInfo использовать удаленные таблицы наиболее эффективным образом, Вам придется подготовить их (таблицы) для хранения координат или более сложных пространственных данных, и лишь после этого использовать для обмена и получения этих данных. Вы также сможете после этого геокодировать удаленные таблицы и присваивать координаты для каждой записи таблицы.

Существует четыре необходимых условия для сохранения и выборки географических точек в таблице удаленной СУБД:

Значения координат этих точек должны быть сохранены в колонках таблицы в виде чисел или в столбцах базы данных, приспособленных для хранения пространственной информации, в случае если база данных допускает такое хранение, например, SpatialWare, Oracle Spatial или SQS .

Столбец, содержащий пространственный индекс, может использоваться дополнительно для повышения производительности выполнения запросов к пространственным данным.

493

Глава 23: Доступ к удаленным базам данных

Необходимо создание специальной таблицы удаленной СУБД, называемой MapInfo Map Catalog (Каталог Карт MapInfo). В каждой базе данных может быть только один такой каталог.

Необходимо описать таблицы с геоинформацией в каталоге Карт MapInfo командой ПРИСОЕДИНИТЬ ГЕОИНФОРМАЦИЮ.

Шаг 1 - Сохранение значений координат в удаленной таблице

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

Данные могут уже существовать.

Можно использовать программу MIUPLOAD.MBX для загрузки таблицы MapInfo, которая уже содержит колонки с координатами, в базу данных. Это приложение работает с основными базами данных и описано ниже.

Для загрузки таблицы MapInfo в удаленную базу данных SpatialWare или Oracle Spatial можно использовать программу EasyLoader. Это приложение описано ниже.

Можно настроить программу MIUPLOAD.MBX под Вашу систему управления базой данных.

Присоедините к таблице геоинформацию для ее геокодирования, выполнив команду ТАБЛИЦА > ÈЗМЕНИТЬ> ÏРИСОЕДИНИТЬ ГЕОИНФОРМАЦИЮ. См. раздел “Присоединение к таблице геоинформации для геокодирования” далее в этой главе.

Добавить значения координат в таблицу MapInfo, экспортировать ее в текстовый файл и импортировать этот файл в Вашу базу данных.

Как загрузить таблицу MapInfo в удаленную базу данных

В составе MapInfo существует программа MapBasic – miupload.mbx, с помощью которой Вы сможете загрузить таблицы MapInfo в удаленную базу данных. Запустить эту программу, наряду со многими другими, можно из каталога программ. Другим способом ее можно запустить следующим образом:

1.Выполните команду ФÀÉË > ÇАПУСТИТЬ ПРОГРАММУ MAPBASIC > MIUPLOAD.MBX. Программа находится в каталоге MAPINFO/TOOLS.

2.Выполните команду ПРОГРАММЫ > ODBC-ÇАГРУЗКА > ODBC-ÇАГРУЗКА

ТАБЛИЦЫ.

494

Глава 23: Доступ к удаленным базам данных

Появится следующий диалог:

3.При помощи кнопки ТАБЛИЦЫ выберите таблицы для загрузки. Появится диалог, в котором перечислены открытые таблицы. Выделите таблицу и нажмите кнопку OK.

4. После выбора таблицы появится следующий диалог:

495

Глава 23: Доступ к удаленным базам данных

Если таблица может быть показана на карте (т.е. содержит пространственные объекты), то можно отметить флажок Загрузить карту. При этом доступен выбор следующих типов пространственных объектов:

X/Y: Отметьте этот флажок для того, чтобы добавить колонки XY в Вашу таблицу

MICODE: Отметьте этот флажок для того, чтобы добавить колонки XY è MICODE в Вашу таблицу.

HHCODE: Для таблиц Oracle можно добавить колонки HHCODE в таблицу.

После завершения загрузки файла должно появиться следующее сообщение:

496

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]