Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Динамические запросы

Динамические запросы.

Работа с SQL- запросами включает в себя:

· Создание запроса;

· Редактирование запроса;

· Выполнение запроса.

Создайте (если еще не создана) новую таблицу otdel.db с информацией об отделах (N_otd (счетчик), Nazv (название, строка), Tel(телефон, строка)) Эта таблица будет родительской по отношению к дочерней таблице sort.db. Связь этих таблиц будет осуществляться по номеру отдела. Следите за тем, чтобы типы полей связи совпадали.Наполните таблицы корректными данными.

 

Динамические запросы

Выполнить: Создайте форму с полной информацией о сотруднике на основе запроса. Поместите кнопку сортировки набора данных по заданному полю реляционным способом, т.е. с помощью соответствующего SQL- запроса. Поле сортировки определить с помощью одной группы радио кнопок, а направление сортировки – с помощью другой группы радио кнопок (рис. 1).  
Динамический запрос формируется при выполнении приложения и его текст зависит от действий пользователя. Текст запроса формируется с помощью метода Query1.SQL.Add(< текст запроса >);

Рис. 1 Сортировка реляционным способом.

 

Нажатие на кнопку Сортировка формирует и запускает динамический запрос. Здесь используются псевдонимы для полей.

 

 

Создайте запрос, который выводит полную информацию о сотруднике с помощью компонента Query1. В полях Edit1 и Edit2 запрашивайте верхнюю и нижнюю границы оклада сотрудника. Нажатие на кнопку Показать создает с помощью метода Add и запускает запрос на выполнение.

Query1.SQL.Add(‘Select * from sotr ’);

Query1.SQL.Add(‘ Where salary > =’ + Edit1.Text +);

Query1.SQL.Add(‘ AND salary< =’ + Edit2.Text);

Для запроса можно задавать параметры, используя свойство Params компонента Query. Зададим для компонента Query1 два параметра pMin для нижней границы диапазона и pMax – для верхней.

 
 
В дереве объектов Object TreeView с помощью контекстного меню добавьте два параметра Add Item. В инспекторе объектов присвойте им соответствующие имена pMin, pMax и вещественный тип для значений (рис.2). При необходимости можно задать значение параметров (свойство Values). При выполнении приложения значения параметров можно установить программным путем, например, Query1.ParamByName('pMin').Value: =500; Query1.ParamByName('pMax').Value: =5000; Вместо констант могут использоваться значения полей Edit1 и Edit2.


Рис.2 Инспектор объектов

 

Текст запроса при этом будет содержать имя параметра с впередиидущим двоеточием, например:

 

Настройка параметров выполняется программным путем, например:

Query1.ParamByName('pMin').Value: =StrToFloat(Edit1.Text);

 

Затем запрос выполняется.

Задание 1. Создайте обработчик события нажатия на кнопку Показать

Задание 2. Создать запрос с параметром, позволяющий выбрать сотрудников заданной должности реляционным способом. Название должности выбирать из списка выбора.

 

Задание 3. Измените запрос по классу к БД «Школа» (лаб_раб №2), который выводит список учеников заданного класса, заданного с помощью параметра.

 

Дополнительные задания

Задание 4: сконструируйте запрос, который выводит в алфавитном порядке фамилии, должности и оклады сотрудников заданного отдела, получающих не менее N руб.

 

Задание 5:

А) создайте запрос, который отбирает данные об инженерах и экономистах.

Б) к предыдущему запросу добавьте условие: оклады сотрудников лежат в интервале от А до В рублей.

В) выбрать сотрудников, фамилии которых начинаются на заданную букву.

Г) выбрать сотрудников, фамилии которых начинаются на буквы «А, Б, В, Г». Задайте начальную и конечную границу для букв с помощью параметров.

 

Задание 5: Создайте запрос, который отбирает записи о сотрудниках, работающих в заданном отделе. Отдел выбрать из списка.

 

Задание 6: Создайте запрос с группировкой и определите количество сотрудников в каждом отделе и суммарный оклад. В результирующий запрос включите поля: номер, название отдела по алфавиту, количество сотрудников, суммарный оклад.

 

Задание 7: Создайте запрос, который выводит список должностей организации и определяет средний оклад по каждой должности в порядке убывания этой величины.

 

<== предыдущая лекция | следующая лекция ==>
 | Краткие теоретические сведения. Действие электрического тока на организм человека и основные факторы, влияющие на исход поражения




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.