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

Открытие таблиц СУБД

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

212

MapInfo Professional 7.5

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

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

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

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

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

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

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

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

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

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

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

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

213

Открытие таблиц СУБД

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

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

 

 

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

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

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

 

 

 

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

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

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

 

 

 

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

Колонка

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

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

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

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

Текущее в MapInfo Professional

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

214

MapInfo Professional 7.5

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

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

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

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

Текущее в MapInfo Professional

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

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

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

СУБД.

Кнопка MарInfo

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

Кнопка СУБД

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

Колонка

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

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

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

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

215

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