Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

9.2. Создание запросов в Data Manager Pro

Запросы к базе позволяют объединить несколько таблиц базы дан­ных, выбрать нужные поля и записи. Обычно формируют базовый запрос, который связывает и объединяет все таблицы. Такой запрос в дальнейшем используется для формирования различных форм (п. 9.3), запросов, от­четов (пп. 9.6, 9.11) и диаграмм (п. 10.5) в качестве исходной виртуальной таблицы. Для формирования запроса необходимо загрузить Visual Data Manager (п. 9.1), открыть нужную базу и выполнить командуUtility/Query Builder, которая выводит окно построителя запросов (рис. 9.2.1).

Рис. 9.2.1. Окно построителя запросов

Создадим базовый запрос Bazovii Zaprocдля базы строек (п.9.1):

1. Щелкнем мышкой в поле Tablesна именах всех таблиц, имена выделятся синим фоном. Этим мы указали, что будем объединять все три таблицы. Отметим щелчками мышки все поля этих таблиц в полеFields To Showдля включения их в запрос.

2. Нажав кнопку Set table Joins,вызовем окно установки связей ме­жду двумя таблицами (рис. 9.2.2). Установка связи между таблицами (на­при­мер, строек и заказ­чиков) по полю связи кода за­каз­чи­ка оз­на­чает, что, пере­ме­щаясь, на­при­мер, по таблице строек, ав­то­ма­­тически проис­ходит пе­ре­­ме­ще­ние в свя­занной таблице за­­каз­чиков по условию равен­ства клю­чей свя­зи кода заказчика, т.е. всегда у те­ку­щих записей свя­­з­анных таблиц значения клю­­­­чей связи совпадают, ес­ли они есть. Таб­лица с пер­вич­­ным ключем на­зы­вает­ся ро­дитель­ской (заказ­чи­ки), а другая с внешним клю­чем ‑ дочерней (строек).

Рис. 9.2.2. Окно установки связей

Щелкнем мышкой в поле Select Table Pairна именах таблиц строек и заказчиков, что означает связывание этих таблиц и выделим имя Кzв обоих таблицах в окнахSelect Fields To JoinOnдля связи по этим полям, нажмем кнопкуAdd Join To Queryдля включения связи в запрос.

3. Отметим таблицу строек и населенных пунктов, аналогично свя­жем эти таблицы по полю кода населенного пункта Knpи добавим связь в запрос. Если связи установлены неверно, то кнопкойClear All Joinsможно удалить связи и построить связи заново. КнопкойCloseзакроем это окно.

4. Используя список полей Order By, выберем поля Knp,Nsдля сортировки запроса по коду населенного пункта и наименованию стройки.

5. Кнопкой Saveсохраним запрос под именемBazovii Zaproc.

Рассмотрим остальные поля окна построителя запросов. Поле Group Byзадает группировку запроса, однако это требует дальнейшей кор­рек­ти­ров­ки текста полученного запроса согласно правилам языка запросов SQL. ПоляField Name(имя поля),Operator(оператор сравнения),Value(значение),And into Criteria(логическое “И”),Or into Criteria(логическое “ИЛИ”),List Possible Values(формирование списка значений срав­ни­ва­емо­го поля в таблице) используются для задания условия отбора записей в запрос. ПолеTop N Valueзадает число первых записей, выводимых в запрос; еслиTop Percent=True, то это число есть процент, а не число записей. В запросе можно использовать кнопки:Run(выполнить запрос, лучше выполнить его в режимеUse DBGrid control on New Form (п.9.1)),Show(вывести текст команды Select-SQL),Copy(скопировать текст команды Select-SQL в отдельное окно команды запроса SQL Statement),Save(сохранить запрос в базе с указанным далее именем),Clear(очистить бланк запроса),Close(закрыть окно запроса).

Для отладки запроса используется специальное окно SQL Statement, в котором находится текст отлаживаемой команды запроса (рис.9.1.1). Если запрос запомнили в базе, то для помещения его в это окно щелкните правой кнопкой мыши в окне базы на имени этого запроса и выполните командуDesignиз контекстного меню. В этом окне имеются кнопки:Execute(выполнить запрос),Clear (очистить окно запроса),Save(сохра­нить запрос в базе).