Расширение “выполнение SQL-запросов” (файл Query.exe) служит для реализации расширенных функций поиска и выдачи на экран объектов Ингео по условиям, заданным в виде параметризированного SQL-запроса. Эта программа расширяет возможности стандартного расширения Ингео «Поиск по шаблону».
Коротко процесс работы состоит из следующих шагов
1) Настройка параметров запроса
2) Настройка текста запроса.
3) Выполнение запроса и выдача его результатов на экран в виде таблицы.
5) Экспорт результатов вMIF-формат(при необходимости).
Ниже представлен подробный перечень выполняемых действий по каждому из пунктов на примере реализации следующей простейшей задачи.
Пусть к слою «земельные участки» прикреплена
семантическая таблица «land»(характеристики ЗУ), в которой существуют поля ID,CNPrefix (Кадастровый номер квартала), СN («Номер участка внутри квартала»).
семантическая таблица «rights»(права на ЗУ), в которой есть поля ID,SIMID,owner(«правообладатель»), r_docname (правоудостоверяющий документ), sdoc(площадь по документам).
Необходимо выдать на экран упорядоченный по кадастровым номерам список земельных участков с правообладателями, документом и площадями на определенный кадастровый квартал, номер которого задается пользователем, просмотреть этот список на экране, а затем экспортировать в MIF-формат. Внимание В настоящее время расширение работает только в том случае, если в Ингео доступ к семантическим данным осуществляется через псевдоним BDE. Иначе при подсоединении расширение выдает ошибку присоединения к базе данных. В файле Query.ini вы можете задать имя BDE-aliasа, имя пользователя и пароль при подсоединении к базе данных.
Если эти поля не заданы, то программа получает имя BDE-aliasа от ГИС и запрашивает имя пользователя и пароль при подсоединении.
Таким образом, вообще говоря? вы можете использовать расширение для поиска во внешних семантических базах данных и отображения результатов поиска в окне Ингео.
1) Настройка параметров запроса
В пункте меню Сервис\Запросы выберите команду Настройка. Появится диалоговое окно Настройка быстрого поиска.
В поле Название шаблона введите название шаблона (например «Поиск земельных участков внутри квартала»).
В поле Интерфейс пользователя для создаваемого шаблона можете выбрать название пункта меню, пиктограмму, клавишу быстрого запуска.
В подокне Список полей, с помощью кнопки Добавить, добавьте параметры для вашего запроса, окно ввода для которых будет появляться при каждом выполнениии пользователем запроса.
Щелчком левой клавиши мыши в окне Список полей над полем, выберите поле.
Задайте параметры поля:
В поле Название введите название поля, например «Номер квартала».
Если значения этого поля будут выбираться из справочника, включите опцию Справочник, в поле Таблица выберите таблицу справочника, в полях Поле кода и Поле названия выберите соответственно поле в таблице справочника с кодом и поле с названием.
Проделайте эту операцию для всех параметров запроса.
Выберите кнопку ОК.
2. Настройка текста запроса
Вернетесь в диалоговое окно Настройка быстрого поиска.
Выберите закладку Использование шаблонов. Выберите кнопку Добавить. Появится диалоговое окно Добавить использование шаблона.
В поле Шаблон выберите шаблон, который только что создали.
В поле SQL-запрос введите текст запроса SELECT, указывая вместо значений параметров текст «:<номер_параметра>». Для нашего примера он будет выглядеть как SELECT land.ID,land.CN,rigths.owner,rights.r_sdocname,rights.sdoc from land,rights where land.id=rights.id and land.cn_prefix=:1
:1 указывает, что на это место будет подставляться заданный пользователем кадастровый номер квартала.
Если установлен переключатель «Выделять первый объект», то после выполнения запроса выделится первый объект, удовлетворяющий запросу, и окно Ингео спозиционируется на него. Этот переключатель мы рекомендуем устанавливать, если запрос используется для поиска единичного объекта.
Если установлен переключатель «Выводить таблицу», то результат запроса представляется в виде таблицы, (см. п.4).
Нажмите «Проверить» для проверки синтаксиса и затем OK
В тексте запроса можно использовать 'obj$id' - идентификатор выделенного в Ингео объекта, например
select * from land where id_nas_punkt='obj$id' Синхронизация полученного списка с Ингео происходит следующим образом
если среди выходных полей присутствуют поля LocalID или ID, то программа считает их локальным идентификатором объекта и производит связь по нему (выделение, позиционирование) с окном карты Ингео.
если среди выходных полей присутствуют поле GlobalID, то программа считает его глобальным идентификатором объекта и связывается с Ингео, предварительно преобразовав его в локальный идентификатор.
3) Выполнение запроса и выдача на экран его результатов в виде таблицы
Чтобы выполнить предварительно подготовленный SQL-запрос, выберите меню Сервис..Запросы..выполнить или нажмите на пиктограмму . Появится список подготовленных шаблонов, из которого выберите интересующий Вас («Поиск земельных участков внутри квартала»). Затем появится окно ввода, в котором Вам необходимо задать значения параметров (кадастрового номера квартала в нашем случае).
В результате выполнения запроса, если был установлен переключатель «Выводить таблицу» появится таблица объектов и их результатов
По этому списку объектов можно перемещаться, можно выделять запись(строку) щелчком мыши, множество строк щелчком мыши с нажатой клавишей Ctrl. При нажатии на соответствующие пиктограммы можно выделить объекты Ингео, соответствующие выделенным записям, вписать выделенные объекты в видимую область. При нажатой кнопке происходит синхронизация выделения записи и выделения объекта Ингео. При нажатой кнопке дополнительно к выделению объекта он еще вписывается в видимую область. соответственно и включенных. На сегодняшний момент последние две функции работают, только если запись выделяется щелчком мыши на второй и последующие столбцы. Это связано с ошибкой соответствующего компонента Delphi, в ближайшее время этот недостаток будет исправлен.
Еще раз отметим, что функции связи выделенных строк с объектами Ингео доступны, только если в качестве первого поля результата запроса выступает столбец идентификаторов.
При нажатии на пиктограмму появляется диалог экспорта результатов в MIF-файл (см. п.4).
4. Экспорт результатов в MIF-формат.
Вы можете экспортировать результаты запроса в MIF/MID- обменный формат системы MapInfo, указав необходимые настройки в диалоге экспорта. Существуют следующие отличия от диалога экспорта в MapInfo стандартного расширения, поставляемого с ГИС Ингео.
Переключатель «Менять местами X и Y» позволяет менять местами координаты при экспорте.
Текстовое поле «Методы отображения для масштаба» позволяет экспортировать внешнее оформление объектов так, как они выглядят в заданном пользователем масштабе.
Переключатель «Избегать дублирования объектов» позволяет избегать двойного экспорта объектов, характерного для стандартного расширения ГИС Ингео.
Режим sql из меню Этот язык позволяет также управлять обработкой запросов. Sql-запрос представляет собой последовательность инструкций, в которую могут...
Вопросы к экзамену по курсу «базы данных» Компоненты субд. Применение sql для доступа к бд. Основные функции языка sql. Язык интерактивных запросов. Язык программирования...