Выбор поля уникального идентификатора для слоя запросов
Для всех слоев в ArcMap необходим уникальный идентификатор. Следовательно, слой на основе запроса тоже должен содержать уникальный идентификатор.
Если вы определили слой запроса в таблице или в классе пространственных объектов базы геоданных, таблица всегда будет содержать поле уникального идентификатора: поле ObjectID.
Как правило, вы создаете слои запросов для доступа к классам объектов и таблицам базы данных. Для таблиц баз данных является обычным явлением наличие поля уникального идентификатора. Поэтому таблицы базы данных, скорее всего, уже содержат поле, значения которого вы сможете использовать в качестве уникальных идентификаторов.
Для использования в качестве поля уникальных идентификаторов, поле не должно быть нулевым, должно содержать уникальные значения и иметь один из следующих типов:
- целое (только положительные значения)
- строчное (string)
- GUID
- дата
Значения, однозначно идентифицирующие объекты или строки в ArcGIS, должны быть или уникальными, или нулевыми. Вы обязаны гарантировать, чтобы при запросе в данных полях встречались такие значения.
Если ArcGIS обнаружит нулевое значение, то вы получите сообщение об ошибке и ArcGIS не будет обеспечивать уникальность значений поля идентификатора в слое запросов или в таблице базы данных. Если ArcGIS встречает такое значение, ошибка не возвращается; однако, можно просмотреть неподходящие результаты в выборке или других запросах в ArcGIS.
Если ArcGIS не найдет подходящего уникального идентификатора, вам будет предложено выбрать одно или несколько полей при перетаскивании таблицы базы данных в ArcMap или при проверке определения нового слоя запросов. В этом примере ArcGIS не находит поля с целочисленными ненулевыми значениями, которые можно было бы использовать в качестве уникальных идентификаторов. Вам необходимо выбрать одно или несколько полей с ненулевыми уникальными значениями, которые будут использоваться в качестве уникальных идентификаторов записей в таблице.
Если подходящее поле существует, ArcGIS по умолчанию считает первое поле с ненулевыми значениями полем с уникальными идентификаторами, когда вы перетаскиваете таблицу из дерева Каталога в ArcMap или проверяете определение слоя запросов. Часто это поле оказывается подходящим для его использования в качестве поля уникальных идентификаторов. Однако, вы можете все равно выбрать одно или несколько полей из списка Поля уникального идентификатора (Unique Identifier Field(s)) для использования вместо заданного по умолчанию поля. Следуйте данным шагам, чтобы изменить поля уникальных идентификаторов, используемые ArcGIS для вашей таблицы базы данных:
- В ArcMap в таблице содержания щелкните правой кнопкой слой и выберите Свойства (Properties).
- Перейдите на закладку Источник (Source) и выберите Изменить запрос (Change Query).
Откроется диалоговое окно Редактировать слой запроса (Edit Query Layer).
- Щелкните Показать дополнительные параметры (Show advanced options) и нажмите Далее (Next).
- Выберите другое поле или несколько полей, которые будут использоваться для хранения уникальных идентификаторов, и щелкните Готово (Finish).
- Нажмите на кнопку ОК, чтобы закрыть диалоговое окно Свойства слоя (Layer Properties).