ArcGIS Desktop

  • Документация
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Редактирование версионных данных в DB2 с помощью SQL

  • Редактирование версии Default
  • Редактирование именованной версии
  • Переключение с редактирования именованной версии на редактирование версии Default
  • Согласование и закрепление изменений в именованной версии
Уровень сложности:
Начальный
Требования к данным:
Используйте собственные данные

Редактировать версионные данные в базе геоданных в IBM DB2 в операционных системах Linux, UNIX и Windows можно двумя способами: изменяя именованную версию или редактируя версию Default в версионном представлении. См. описание каждой модели редактирования в разделе Обзор редактирования версионных данных с использованием SQL.

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

Примечание:

Версионные представления не поддерживаются в базах данных DB2 в операционных системах Z.

Редактирование версии Default

Можно использовать SQL для подключения к версии Default и редактировать версионное представление. Вам не нужно открывать сеанс редактирования. При начале редактирования вы автоматически подключаетесь к текущему состоянию версии Default.

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

Ниже приводится порядок изменения версионного представления (blic_еvw). Правки в этом виде записываются в таблицу изменений версионной таблицы blic. Так как изменений всего несколько, они будут внесены в версию Default.

  1. Подключитесь к базе данных из клиента SQL. Убедитесь, что вы подключились как пользователь с правами доступа для редактирования набора данных и версионного представления.
  2. Выполните редактирование версионного представления с помощью SQL.

    В этом примере обновляется существующая строка для изменения имени владельца свойства.

    UPDATE blic_evw 
    SET propowner = 'C. O. Industry' 
    WHERE lic = 44977;
    
  3. Внесите изменения (операция COMMIT).
    COMMIT;
    
  4. Внесите следующую правку.

    Новая запись будет добавлена в таблицу в версионном представлении.

    INSERT INTO blic_evw (propowner, date_entered, location) VALUES (  'Moe Esposito',   CURRENT TIMESTAMP, 
      db2gse.ST_PointFromText ('point (0.0125662 0.0046711)', 12));
    

    Подсказка:

    В выражении INSERT значение ObjectID не указывается. Версионное представление автоматически получает следующий доступный ObjectID и вставляет его для строки.

  5. Внесите изменения (операция COMMIT).
    COMMIT;
    

Редактирование именованной версии

Вы получили ряд обновлений для класса объектов blic, поэтому вы решили выполнить правку в именованной версии.

Далее представлены хранимые процедуры, используемые для редактирования именованной версии базы геоданных, и их синтаксис:

Хранимая процедураНазначениеСинтаксис и описание

sde.create_version

Создать именованную версию базы геоданных.

Если вы редактируете именованные версии (отличные от Default), всегда изменяйте собственную версию. Несколько пользователей не могут редактировать одну именованную версию с помощью версионных представлений.

CALL sde.create_version ('<parent_version>', '<child_version>', <name_rule>, <access>, '<description>', <message_code_output>, <message_output>)

sde.setcurrentversion

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

Вы получаете доступ к состоянию, на которое указывала версия при вызове setcurrentversion.

CALL sde.setcurrentversion('<child_version>', <message_code_output>, <message_output>)

sde.edit_version

Откройте и завершите сеанс редактирования именованной версии.

Изменения в транзакции принимаются при каждом вызове этой процедуры.

CALL sde.edit_version('<child_version>', <1 или 2>, <message_code_output>, <message_output>)

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

Параметры в выражениях вызовы представляют следующее:

  • <parent_version> – эта та версия базы геоданных, на основе которой создана ваша версия.
  • <child_version> – это именованная версия, которую вы редактируете.
  • <name_rule> указывает, следует ли использовать заданное имя версии без изменений (2), или следует создать уникальное имя при указании дублирующегося имени (1).
  • <access> – это уровень разрешений версии: 0 для частного доступа, 1 для общего и 2 для защищенного.
  • <description> – текстовое описание дочерней версии.
  • <message_code_output> указывает, что нужно вернуть код SQL.
  • <message_output> указывает, что нужно вернуть сообщения SQL.

Далее на основе версии Default будет создана версия под именем myedits12111, и в нее будут внесены изменения через версионное представление blic_evw.

  1. В командной строке можно создать новую версию, которую вы будете редактировать.
    CALL sde.create_version ('SDE.DEFAULT', 'myedits12111', 1, 1, 'versioned view edit version', ?, ?);
    
  2. Текст, заключенный в одиночные кавычки, читается буквально. Поэтому текст в кавычках должен совпадать с текстом (как в нижнем или верхнем регистре, так и при смешанном регистре), как он хранится в базе данных.

  3. Укажите созданную дочернюю версию для сеанса редактирования.
    CALL sde.setcurrentversion('myedits12111', ?, ?);
    

    Состояние редактирования будет задано как текущее состояние myedits12111.

  4. Начните сеанс редактирования, вызвав процедуру edit_version и указав значение 1. 1 указывает на то, что нужно открыть сеанс редактирования.
    CALL sde.edit_version('myedits12111', 1, ?, ?);
    
  5. В клиенте SQL запустите новую транзакцию для изменения blic_evw.
  6. Внесите правки в версионное представление с помощью SQL.
    INSERT INTO blic_evw (propowner, date_entered, location)
    VALUES (
      'V. Nay', 
      CURRENT TIMESTAMP, 
      db2gse.ST_PointFromText ('point (0.0125699 0.0046700)', 12));
    UPDATE blic_evw 
    SET (phone1,phone2) = ('555.111.2345','555.111.6789') 
    WHERE propowner = 'Tella Chomsky';
    UPDATE blic_evw
    SET exp_date = '2020-06-30 17:00:00'
    WHERE lid = 22903;
    UPDATE blic_evw
    SET location = db2gse.ST_PointFromText ('point (0.0125705 0.0046688)', 12))
    WHERE lid = 8992;
    INSERT INTO blic_evw 
    (codenum, propowner) 
    VALUES (456, 'Anjo Badsu');
    DELETE FROM blic_evw
    WHERE lid = 133;
    
  7. Примените изменения.
    COMMIT;
    
  8. Дополнительные изменения вносятся в SQL. После завершения следующей серии правок закройте сеанс редактирования.
  9. Остановите сеанс редактирования, вызвав процедуру edit_version, но на этот раз укажите значение 2. 2 указывает на то, что нужно завершить сеанс редактирования.
    CALL sde.edit_version('myedits12111', 2, ?, ?);
    

    Подсказка:

    Вы можете изменить только одну версию в сеансе редактирования. Например, если требуется изменить вторую версию (например, mynewedits), необходимо закрыть сеанс редактирования в myedits12111, как показано на данном этапе. Затем можно вызвать процедуру setcurrentversion, чтобы указать версию mynewedits, и начать сеанс редактирования, вызвав edit_version.

Переключение с редактирования именованной версии на редактирование версии Default

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

Ниже представлены хранимые процедуры, используемые для редактирования версии Default базы геоданных, и их синтаксис:

Хранимая процедураНазначениеСинтаксис и описание

sde.set_default

Возврат к редактированию текущего состояния версии Default.

Вызовите эту процедуру, если вы редактировали именованную версию или определенное состояние версии Default, но хотите вернуться к редактированию текущей версии Default.

CALL sde.set_default (<message_code_output>, <message_output>)

<message_code_output> указывает, что нужно вернуть код SQL. <message_output> указывает, что нужно вернуть сообщения SQL.

  1. В командной строке SQL вызовите процедуру set_default.
    CALL sde.set_default
    

    Сеанс теперь настроен для редактирования текущего состояния, на которое ссылается версия Default.

  2. Измените версионное представление blic_evw.
    INSERT INTO blic_evw (propowner, b_name, date_entered, location) VALUES (  'Ruben Gol',   CURRENT TIMESTAMP, 
      'Chez Coiffure',  db2gse.ST_PointFromText ('point (0.0125650 0.0046721)', 12));
    
  3. Внесите изменения (операция COMMIT).
    COMMIT;
    

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

Согласование и закрепление изменений в именованной версии

После внесения правок в именованную версию необходимо использовать ArcGIS для согласования, анализа и разрешения конфликтов, а затем закрепить изменения. Это можно сделать в ArcGIS for Desktop с помощью инструмента геообработки Согласовать версии или скрипта Python. Более подробную информацию см. в разделах:

  • Введение в согласование версий
  • Согласование версии
  • Краткий обзор по разрешению конфликтов
  • Закрепление изменений
  • Согласование версий
Подсказка:

Если редактируемые данные были зарегистрированы как версионные с опцией перемещения изменений в базу, то после согласования и закрепления внесенных изменений в версии Default эти изменения будут перемещены в базовую таблицу.

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

Хранимая процедураНазначениеСинтаксис и описание

sde.delete_version

Удалить версию базы геоданных.

CALL sde.delete_version('<child_version>', <message_code_output>, <message_output>)

В следующем примере удаляется версия myedits12111 после согласования и закрепления всех изменений в версии Default:

CALL sde.delete_version ('myedits12111', ?,?);

Связанные разделы

  • Обзор редактирования версионных данных с использованием SQL
  • Что такое версионное представление?
  • Включение SQL-доступа к данным базы геоданных в ArcGIS for Desktop
  • Version_View_Name
  • Is_Versioned

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2017 Esri. | Конфиденциальность | Правовая информация