Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Rukovodstvo_polzovatelya_MapInfo_Professional.pdf
Скачиваний:
718
Добавлен:
05.03.2016
Размер:
11.58 Mб
Скачать

MapInfo Professional 7.5 Руководство пользователя (Полное)

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

Соединение с базой данных.

Выбор таблицы из базы данных.

Выбор загружаемых колонок из таблицы.

Выбор загружаемых строк из таблицы.

Локальное сохранение таблицы в MapInfo Professional как связанной таблицы.

Ввод SQL-запросов вручную

При открытии таблицы СУБД можно использовать режим ввода SQL-запроса Вручную с помощью следующего диалога:

Этот диалог позволяет пользователю составлять намного более сложные, чем стандартные запросы.

Для того, чтобы набрать многострочный запрос, проделайте следующее:

Для перехода к новой строке нажмите ENTER.

Нажмите CTRL+TAB для того, чтобы вставить символ табуляции.

Используйте буфер обмена: CTRL+X для команды ВЫРЕЗАТЬ, CTRL+C для команды

КОПИРОВАТЬ и CTRL+V для команды ВСТАВИТЬ.

ЗАГРУЗИТЬ – нажатие этой кнопки позволяет загрузить запрос, который был сохранен в файле. Открывает отдельный диалог, обеспечивающий доступ к существующим файлам, содержащим предложения SQL (SQL-файлы).

Форматирование файлов сохраняется.

СОХРАНИТЬ – нажмите эту кнопку для того, чтобы сохранить предложение SQL в файле для последующего использования. Таким образом можно сохранять составленные запросы или изменения в существующих предложениях. После сохранения форматирование остается неизменным.

После сохранения SQL-предложение появляется в списке доступных для диалога "Загрузить файл SQL-запроса" SQL-файлов.

ПОСЛЕДНИЙ – позволяет загрузить последний выполненный в текущем сеансе

MapInfo запрос.

Создание прямого доступа к удаленной базе данных

Вы можете наладить прямой доступ к удаленной базе данных. Применяйте тот же метод для соединения с источником данных и затем откройте таблицу СУБД для загрузки в связанную таблицу MapInfo Professional, используя Мастер диалогов СУБД.

Чтобы создать прямой доступ к удаленной базе данных:

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

205

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

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

1.Установите переключатель Прямой доступ. Флажок Хранить в памяти активен.

2.Установите флажок Хранить в памяти, чтобы хранить в памяти компьютера считанные из базы атрибуты и объекты. Это позволит масштабировать карту и перемещаться по ней без обращений к удаленной базе данных (поскольку MapInfo просматривает записи в локальной памяти, программа не имеет доступа к последним редакциям данных).

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

При отключенном флажке Хранить в памяти все данные будут обрабатываться на сервере. При этом данные будут наиболее актуальны, но доступ к ним будет менее эффективным.

3.Нажмите кнопку ГОТОВО. После этого будет создан TAB-файл.

После завершения диалога будет записан и открыт TAB-файл. В следующий раз для доступа к данным Вам потребуется только открыть этот TAB-файл.

Прежде чем открывать напрямую таблицу из удаленной базы данных, настоятельно рекомендуется сначала открыть таблицу с картой (например, RUS_OBL.TAB), соответствующую данным в удаленной базе данных. Если этого не сделать, то вся таблица будет обработана и загружена, что может занять много времени.

Откройте таблицу карты и измените масштаб таким образом, что будет показан район, относящийся к набору строк таблицы удаленной базы, которые Вы хотели бы увидеть. Например, если Вы хотите загрузить строки, относящиеся к Краснодарскому краю, то измените масштаб карты таким образом, чтобы в окне Карты помещался весь Краснодарский край. В этом случае при открытии таблицы удаленной базы данных будут прочитаны строки, попадающие в МОП (минимальный описывающий прямоугольник) окна Карты вокруг Краснодарского края.

Ограничения в создании прямого доступа

Список известных проблем/замечаний, связанных с прямым доступом:

Каждая таблица должна иметь единственный уникальный ключ.

Режим быстрого редактирования не поддерживается.

В таблицах MS Access, если ключ символьный, то строки, значение ключа которых меньше размера поля, показаны не будут. Например, в случае если тип ключа char(5), то строка, в которой значение ключа ‘яяяя’ , будет выглядеть как удаленная.

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

Возникнут проблемы, если приложение-клиент в одном запросе (командой SQLзапрос или с помощью MapBasic) обратится к двум или более таблицам SpatialWare, хранящимся в разных системах координат (эффективнее осуществлять такие выборки с помощью SQL-запросов на сервере). Эта проблема относится к текущему выпуску версии.

Прямой доступ к SpatialWare 4.6 также имеет несколько ограничений:

Производительность низкая.

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

206

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

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

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

Ограничения прямого доступа к таблицам удаленных баз данных

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

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

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

Число записей в окне Списка может быть ошибочным.

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

Тематические карты, особенно построенные по индивидуальным значениям, могут отображаться некорректно.

Сохранение связанной таблицы

Вы сохраняете изменения в связанной таблице MapInfo так же, как Вы сохраняете обычные таблицы MapInfo, т.е. командой ФАЙЛ > СОХРАНИТЬ.

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

Разрешение конфликтов для связанной таблицы или таблицы в прямом доступе

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

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

Этот процесс автоматически срабатывает, если при попытке сохранения связанной таблицы обнаруживается конфликт при обновлении записи в базе данных. Диалог "Разрешение конфликтов" позволяет пользователю выбрать, какие поля конфликтующих записей будут использоваться для обновления базы данных. При этом рассматриваются три экземпляра обновляемой записи:

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

207

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

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

Начальное состояние записи на сервере (запись в момент извлечения из базы данных и загрузки в таблицу MapInfo).

Текущее локальное состояние записи (запись, предлагаемая для сохранения в сессии MapInfo, возможно, после редактирования пользователем).

Текущее состояние записи на сервере (запись в базе данных к моменту предлагаемого обновления).

Конфликт возникает, когда начальное состояние записи не соответствует текущему ее состоянию на сервере данных, что предполагает обновление базы данных другим пользователем в период с момента загрузки записи в связанную таблицу MapInfo.

Диалог "Разрешение конфликтов" появляется для каждой конфликтующей записи. В любой момент пользователь может выйти из интерактивного режима обработки, задав форсированное разрешение оставшихся конфликтов. При этом в диалоге "Форсировать разрешение конфликтов" пользователь может выбрать либо текущие значения MapInfo (локальных), либо текущие значения СУБД (на сервере).

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

Тип конфликта

Стандартное разрешение

 

 

Изменилось значение на сервере,

Используйте значение на сервере

локальное значение не изменилось

 

 

 

Изменилось значение на сервере,

Используйте локальное значение

локальное значение изменилось

 

 

 

Нажмите OK, чтобы сохранить обновленную запись.

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

208

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

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

Колонка

Показывает имя колонки записи, которая содержит данные, породившие требующий разрешения конфликт. Если имя колонки не помещается в окошке Списка, показывается усеченное представление. Полное имя колонки отображается ниже, в

строке Колонка.

Начальное в СУБД

Показывает начальное значение в базе данных на момент загрузки в связанную таблицу MapInfo. Если начальное значение не помещается в окошке Списка, показывается усеченное представление. Полное значение отображается ниже в окошке Начальное в СУБД.

Текущее в MapInfo Professional

Показывает текущее значение в связанной таблице MapInfo, которую Вы пытаетесь сохранить. Это окошко будет пустым, если запись была удалена из базы данных MapInfo. Если текущее значение из удаленной базы данных не помещается в окошко списка, показывается усеченное представление. Полное значение отображается ниже, в окошке Текущее в СУБД.

Текущее в СУБД

Показывает текущее значение в удаленной базе данных на момент обновления (эти данные могли быть изменены другим пользователем с тех пор, как они были загружены в связанную таблицу). Это поле будет пустым, если запись была удалена из удаленной базы данных после загрузки в связанную таблицу MapInfo. Если текущее значение из удаленной базы данных не помещается в окошко Списка, показывается усеченное представление. Полное значение отображается ниже, в

окошке Текущее в СУБД.

Текущее в MapInfo Professional

Установите этот флажок для обновления удаленной базы данных значением из связанной таблицы MapInfo. Если текущая запись в базе данных или запись в MapInfo были удалены, флажок становится недоступным. В этом случае нужно использовать кнопки MAPINFO или СУБД.

Текущее в СУБД

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

СУБД.

Кнопка MарInfo

Эта кнопка выбирает для обновления все значения MapInfo. Если обрабатываемая запись была удалена из таблицы MapInfo, нажатие на кнопку MAPINFO удалит запись в базе данных на сервере. Если обрабатываемая запись была удалена из базы данных, нажатие на кнопку MAPINFO вставит новую запись в удаленную базу данных.

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

209

MI_UG.PDF

MapInfo Professional 7.5 Руководство пользователя (Полное)

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

Кнопка СУБД

Эта кнопка выбирает для обновления все текущие значения в удаленной базе данных. Если обрабатываемая запись была удалена из таблицы MapInfo, нажатие на кнопку СУБД игнорирует удаление и сохраняет текущую запись в удаленной базе данных. Если обрабатываемая запись была удалена из базы данных, нажатие на кнопку MAPINFO вставит новую запись в удаленную базу данных.

Колонка

Показывает полное имя колонки, выбранной в списке Колонка.

Начальное в СУБД

Показывает полное значение начальных данных СУБД для колонки, выбранной в списке Колонка.

Текущее в MapInfo

Показывает полное значение текущих данных MapInfo для колонки, выбранной в списке Колонка.

Текущее в СУБД

Показывает полное значение текущих данных СУБД для колонки, выбранной в списке Колонка.

Прервать фиксацию

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

Форсировать

Завершает интерактивную обработку конфликтов, открывая диалог "Форсировать разрешение конфликтов", позволяющий Вам выбрать один из двух режимов автоматический обработки, который будет использоваться для разрешения конфликтов при обновлении оставшихся записей в удаленной базе данных. Вы можете использовать для обновления либо значения MapInfo, либо текущие значения удаленной базы данных.

Как закрыть подключение к удаленной базе данных

Закрыть подключение к удаленной базе данных теперь очень просто.

Сделайте одно из двух:

1.В панели СУБД нажмите кнопку ОТСОЕДИНИТЬ СУБД ТАБЛИЦУ .

2.Выполните команду меню ФАЙЛ > ЗАКРЫТЬ СУБД СОЕДИНЕНИЕ.

В этом диалоге нужно выбрать из списка подключение к СУБД и нажать кнопку

РАЗОРВАТЬ СВЯЗЬ.

Выберите подключение, которое надо закрыть, и нажмите OK. Подключение закроется.

MapInfo Professional 7.5

 

© May 2004 MapInfo Corporation. All rights reserved.

210

MI_UG.PDF

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