Для создания слоя запроса используйте диалоговое окно Новый слой запроса (New Query Layer) в ArcMap. Перед тем, как создать слой запроса, вы должны сначала создать подключение к базе данных. Ниспадающий список Соединение (Connection) отображает доступные соединения с базами данных.
После того как подключение установлено, в левой части диалогового окна появится список таблиц и представлений таблиц, найденных в этой базе данных. При выборе таблицы ее столбцы отобразятся в правой части окна.
Внесите уточнения в SQL запрос в текстовом окне Запрос (Query).
При построении запроса в текстовое поле Запрос (Query) можно добавить всю таблицу, дважды щелкнув ее или перетащив ее из окна Список таблиц (List of Tables) в текстовое поле Запрос (Query). Точно так же можно добавить определенные столбцы таблицы – или дважды щелкнуть на них, или перетащить из окна Столбцы (Columns) в текстовое окно Запрос (Query). Запрос можно также напечатать или скопировать и вставить из внешнего приложения в окно Запрос (Query).
При построении слоя запроса следует использовать SQL-синтаксис, специфичный для базы данных. Обычное выражение может быть таким: SELECT * FROM Test.dbo.US_States. Результатом будет слой запроса, содержащий все строки из таблицы US_States. В ArcMap это приведет к отображению всех Соединенных Штатов. Более подробно о построении SQL-запросов см. раздел Построение выражений запроса.
После того как выражение создано, его необходимо проверить. В процессе проверки ArcGIS проводит определение свойств слоя запроса, основываясь на возвращенные данные первой строки в таблице.
К свойствам слоя запроса относятся:
- Поле уникального идентификатора – Одно или несколько полей, используемых в ArcGIS для уникальной идентификации слоя.
- Размерность – Свойство определяет, будут ли содержать координаты значения M для хранения данных маршрутов и значения Z для хранения 3D данных.
- Тип геометрии – Свойство определяет тип слоя: точечный, мультиточечный, линейный или полигональный.
- Пространственная привязка – Система координат и другие относящиеся к слою пространственные свойства.
- SRID – идентификатор пространственной привязки, который используется для возвращения по запросу только объектов геометрии, имеющих ту же пространственную привязку.
Вы можете просмотреть и изменить эти свойства после того как слой запроса будет проверен, установкой отметки Показать дополнительные опции (Show advanced options) и нажатием Далее (Next).
Свойства слоя запроса используются для фильтрации строк базы данных при чтении их ArcGIS. Например если у вас имеются объекты геометрии в таблице, у которых множество идентификаторов SRID, свойство SRID, установленное в слое запроса, будет использоваться в качестве барьера, чтобы строки таблицы из базы данных c несовпадающим SRID, не отображались в ArcMap.
- В диалоговом окне Новый слой запроса (New Query Layer) укажите имя в текстовом поле Имя (Name) для создаваемого слоя запроса. Это имя, которое будет отображаться в таблице содержания в ArcMap.
- Введите SQL-запрос в текстовом поле Запрос (Query).
- После того как выражение создано, его необходимо проверить. Нажмите Проверить (Validate), чтобы убедиться, что синтаксис запроса корректен, и он вызывает данные, которые можно использовать в ArcGIS. Процесс проверки выполняет запрос в базе данных и проверяет, встречаются ли в результирующем запросе стандарты моделирования данных, приемлемые в ArcGIS. Слой запроса не добавляется в ArcMap, пока он не проверен.
Правила проверки следующие:
- Результирующий набор должен иметь не больше одного пространственного поля.
- Результирующий набор должен иметь не более одной пространственной привязки.
- Результирующий набор должен иметь только один тип формы.
- В результирующем наборе не должно быть каких-либо типов полей, не поддерживаемых в ArcGIS.
Если проверка не пройдена по любой причине, появится сообщение об ошибке, чтобы вы могли изменить запрос.
Проверка особенно важна при работе с пространственными базами данных, которые не поддерживают те же стандарты, что и ArcGIS.
- Если проверка пройдена успешно, нажмите Готово (Finish), чтобы добавить результирующий набор в ArcMap в качестве слоя запроса.