Визуальные средства
Для примера составим запрос, в который включим все поля таблицы строек и наименования заказчиков и подрядчиков из таблиц заказчиков и подрядчиков. Разместим компоненты Query(со свойством Active=True), DataSource (со свойствами: Name=SourceBazoviiZapros, DataSet=Query1) с панели Data Access на странице Components модуля данных форме и выберем команду SQL Builder (построитель запросов), и появится окно построителя (рис. 3.7.1.1). В списке Database выберем базу Stroiki. Используя список Table, выберем таблицы Stroiki, Podrjdhiki, Zakazhiki. Мышкой установим связь между этими таблицами по полям Kp и Kz соответственно. Галочкой пометим поля, выводимые в запрос. На странице Criteria зададим условия отбора записей (например, код заказчика равен 1).
Рис. 3.7.1.1. Создание запросов
На странице Sorting задается список полей сортировки в порядке убывания приоритетов. Порядок сортировки задается кнопками A..Z (по возрастанию), Z..A (по убыванию).
Для проверки запроса нажмем кнопку Execute Query. Кнопкой Savethe current query сохраним его в базе под именем BazoviiZapros; его можно посмотреть и откорректировать редактором запроса, вызываемого кнопкой Show and Edit SQL (рис. 3.7.1.2).
Рассмотрим формирование итоговых запросов на примере: в запрос включить код, наименование подрядчика и итоговые суммы выполненных работ и сметных сумм по всем стройкам каждого подрядчика (рис.3.7.1.2). Разместим в окне запросов и свяжем по коду подрядчика таблицы строек и подрядчиков. Отметим выводимые в запросе поля Kp, Np, Ss, Fs. Перейдем на страницу Selection и щелкнем по полю Ss, выберем команду Summary, по которой добавится одноименный столбец. Изменим имя Ss на SumSs и в ячейке колонки Summary выберем операцию Sum(итоговая сумма). Всего может быть несколько групповых операций: Count(число всех значений поля, например, число строек у подрядчика), Avg, Min, Max(среднее, минимальное, максимальное числа в группе). Слово Dictinctпосле наименования операции задает режим игнорирования дублирующих значений. Аналогично просуммируем поле Fs. На странице Groupingв колонке Grouped Onукажем поля группировки Kp, Np и выполним запрос. Рис. 3.7.1.2. Итоговый запрос
На странице Group Criteria можно задать условие отбора итоговых записей по группе, например: вывести только крупных подрядчиков с суммарным объемом выполненных работ более 1000000р.
Обычно создается базовый запрос, который включает поля всех таблиц и псевдополя. Он используется для формирования других запросов, форм и отчетов.
Для отображения запроса на форме, в редакторе полей для объекта Query1 добавим все или отдельные поля запроса. Разместим компонент DBGrid на форме со значением его свойства DataSource, равным DataModule2.SourceBazoviiZapros, сформируем столбцы этой таблицы.
Запрос может быть выполнен непосредственно из программы методами ExecSQL, Execute (п. 3.13, 3.14) или из проводника SQL Explorer, вызываемого командой DataBase/Explore. В проводнике можно набрать текст запроса на странице Enter SQL, выполнить его кнопкой Excute Query и сохранить его в текстовом файле командой Object/Save As.
Запрос можно создать и средствами Database Deskop (командой Tools/Database Desktop/File/New/QBE Query).
Дата добавления: 2016-03-22; просмотров: 490;