Методическая разработка аудиторного занятия на тему Фильтрация записей в наборах данных

Тема урока: Фильтрация записей в наборах данных

Цели урока:
Образовательные цели:
формирование навыков работы со средствами и методами Delphi, которые используются для фильтрации и поиска информации в базе данных;
приведение примеров практического применения фильтрации данных;
повторение и контроль знаний о транзакциях в базах данных;
углубление знаний о создании клиентской части приложения c использованием сервера InterBase;
повторение организации приложения для просмотра записей.
Развивающие цели:
продолжение работы над развитием операционного стиля мышления через всестороннюю оценку ситуации, оптимальное планирование действий, поиск информации, необходимой для решения задачи – формирование компетентности в сфере познавательной деятельности;
работа над возможностью приобретения опыта создания и преобразования информационного объекта с помощью информационных технологий – формирование технологической компетентности,
развитие внимания, творческих способностей обучающихся.
Воспитательные цели:
воспитание информационной культуры обучающихся, внимательности, аккуратности, дисциплинированности, усидчивости.
Тип урока: применение знаний на практике, урок-практикум.
Продолжительность урока: 2 урока по 45 мин.
Оборудование: ПК, ОС Windows 7, Delphi7, мультимедиа-проектор, презентация «Фильтрация данных».
Ход урока
I. Организационный момент (3 мин).
– приветствие,
– контроль присутствия студентов на занятии,
– создание деловой атмосферы на занятии,
Объявление темы и главной образовательной цели занятия, объяснение хода занятия.
II. Актуализация знаний (10 мин).
Обучающиеся выполняют тестовые задания на повторение пройденного материала.
Тестовые задания по теме «Транзакция и целостность БД»
1. Что понимается под целостностью БД?
а) Правильность и непротиворечивость его содержимого
б) Противоречивость его содержимого
в) Неправильность его содержимого
г) Чтение, удаление, вставка и модификация содержимого БД
2. Как называется неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными?
а) Язык SQL
б) Целостность БД
в) Ключ
г) Транзакция
3. Какими способами может завершиться автоматическое выполнение транзакции?
а) Инструкция BEGIN TRANSACTION, которая сообщает о начале транзакции
б) Инструкцией COMMIT, которая выполняет завершение транзакции: изменения, внесенные в БД, становятся постоянными, а новая транзакция начинается сразу после инструкции COMMIT
в) Инструкция ROLLBACK, которая отменяет выполнение текущей транзакции и возвращает БД в состояние начала транзакции, новая транзакция начинается сразу после инструкции ROLLBACK
г) Инструкция SAVE TRANSACTION, которая позволяет создать внутри транзакции точку сохранения и присвоить сохраненному состоянию имя точки сохранения, указанному в инструкции
4. Какая инструкция отменяет выполнение текущей транзакции и возвращает БД в состояние начала транзакции?
а) ROLLBACK
б) BEGIN TRANSAKTION
в) SAVE TRANSACTION
г) COMMIT TRANSACKTION
5. Какие модели транзакций используются в большинстве коммерческих СУБД?
а) Модель автоматического выполнения транзакции
б) Модель управляемого выполнения транзакций
в) Модель языка SQL
г) Модель целостности БД
6. Укажите уровень изоляции от других транзакций (операнд ISOLATION LEVEL), принимающий значение чтения только подтвержденных изменений в записях:
а) READ COMMITED
б) SHAPSHOT TABLE STABILITY
в) COMMITED
г) SHAPSHOT
7. Укажите блокирование таблиц, указанных в списке операнда RESERVING, для других транзакций, для которых разрешены чтение и модификация записей:
а) PROTECT ED REАD
б) SHARED REАD
в) PROTECT ED WRITE
г) SHARED WRITE
III. Разбор теоретического материала с целью актуализации знаний (25мин.).
Фильтрация записей в наборах данных
Помимо описываемых ниже средств, для фильтрации данных могут использоваться:
методы SetRange или ApplyRange (и сопутствующие им методы) – в компоненте Table;
секция WHERE оператора SELECT языка SQL - в компоненте TQuery.
Свойство Filtered
property Filtered: Boolean;
Свойство Filter позволяет указать условия фильтрации. В этом случае НД будет отфильтрован, как только его свойство Filtered станет равным True. Синтаксис похож на синтаксис предложения WHERE SQL-оператора SELECT с тем исключением, что: имена переменных программы указывать нельзя, можно указывать имена полей и литералы (явно заданные значения).
Можно применять операторы отношения:
< Меньше чем
> Больше чем
>= Больше или равно
<= Меньше или равно
= Равно
<> Не равно
а также использовать логические операторы AND, NOT и OR:
([Doljnost] = 'доцент') AND ([TabNum] > 300000)
Пример процедуры:
procedure TForml.CheckBoxlClick (Sender: TObject) ;
begin
Tablel.Filter := Editl.Text;
Tablel.Filtered := CheckBoxl.Checked;
end;
Свойство Filtered, установленное в True, инициирует фильтрацию, содержится как строковое значение в свойстве Filter. Если установлены разные условия фильтрации и в событии OnFilterRecord, и в свойстве Filter, выполняются оба.
Tablel.Filter = [Doljnost] = 'профессор';
то установка Tablel.Filtered := True приведет фильтрации; в результирующем наборе данных будут показаны только записи, у которых поле Doljnost содержит значение 'профессор.' Установка Filtered := False приведет к отмене фильтрации.
Событие OnFilterRecord
property OnFilterRecord: TFilterRecordEvent;
Событие OnFilterRecord возникает, когда свойство Filtered устанавливается в True. Обработчик события OnFilterRecord имеет два параметра: имя фильтруемого набора данных и var Accept, указывающий условия фильтрации записей в НД. В отфильтрованный НД включаются только те записи, для которых параметр Accept имеет значение True.
В условие фильтрации могут входить любые поля НД, в том числе не входящие в текущий индекс, а также не входящие ни в один индекс. При указании условий фильтрации НД в обработчике OnFilterRecord, в нем последовательно перебираются все записи ТБД при анализе их на предмет соответствия условию фильтрации. Использование OnFilterRecord предпочтительным для небольших объемов записей и сильно ограничивает применение данного способа фильтрации при больших объемах данных.
Всякий раз, когда приложение обрабатывает событие OnFilterRecord, НД переводится из состояния dsBrowse в состояние dsFilter. Это предотвращает модификацию НД во время фильтрации. После завершения текущего вызова обработчика события OnFilterRecord, НД переводится в состояние dsBrowse.
Пример. Отфильтровать ТБД "Сотрудники" согласно условию "Показать всех доцентов":
procedure TForml.TablelFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept := DataSet['Doljnost'] = 'доцент';
end;
Пример. Отфильтровать ТБД "Сотрудники" по условию "Показать всех сотрудников с табельным номером, вводимым в Editl, и с вхождением в ФИО символов, вводимых пользователем в Edit2:
procedure TForml.TablelFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept := (DataSet['TabNum'] = Editl.Text)) AND (Pos(Edit2.Text,DataSet['FIO']) = 0);
end;

Задание. Провести фильтрацию записей с использованием свойства Filtered.
IV. Выполнение практической работы обучающимися (50 мин.).
Порядок выполнения работы:
Откройте проект, созданный на предыдущей практической работе.
Рисунок 1- Пример формы для работы с данными
Для организации фильтрации опишите глобальную переменную pole:
procedure TDataModule2.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept:=DataSet[pole]= Form1.Edit3.Text;
end;
Для организации фильтрации в свойство оnClick объекта RadioGroup1 пропишите процедуры:
procedure TForm1.RadioGroup1Click (Sender: TObject);
begin
DataModule2.Table1.Filtered:=false;
Case Form1.RadioGroup1.ItemIndex of
1: begin
pole:='Марка' ;
DataModule2.Table1.Filtered:=true;
end;
2: begin
pole:='Цена';
DataModule2.Table1.Filtered:=true;
end;end;
end;
4. (На повторение). На форме 3 организуйте приложение для просмотра записей клиентов и связанных с ними заказов:














Рисунок 2 - Пример формы для просмотра данных
Ответьте на контрольные вопросы:
Перечислите основные методы, используемые для организации фильтрации по набору данных.
Что представляет собой набор данных?
Как можно обратиться к имени поля?
Какие вы знаете способы обращения к значениям полей?
Чем отличается поиск от фильтрации записей в базе данных при реляционном способе доступа?
Содержание отчета: - тема и цель работы; - задание; - ход работы с поясняющими текст окнами; - листинг и результаты; - выводы.
V. Подведение итогов урока и задание на дом (2 мин.).
Вы научились проводить фильтрацию данных в таблицах. Дома обучающиеся подготавливают отчет по практической работе.








13PAGE \* MERGEFORMAT14615



13 EMBED PBrush 1415



Root Entry