- •Курсовая работа
- •Постановка задачи:
- •Создание таблиц бд в формате Paradox.
- •Реализация интерфейса бд в Delphi
- •Поэтапное описание работы бд Главная форма приложения
- •Сортировка
- •Создание Secondary Indexes
- •Фильтры
- •Поиск записей:
- •Запросы:
- •Действия с таблицей (добавление, редактирование, удаление записей):
- •Удаление и редактирование
- •Справочная система
Сортировка
Устаносить на форму RadioGroup1, в котором укажем сортировки БД (Рис.6 Сортировка):
Caption=’Сортировка’
Items=
По ключу
По фамилии
По платью
По кафе
Создание Secondary Indexes
Запустить Database Desktop, зайти в меню File – Open – Table – Zakaz.
Зайти в Table – Restructure и в Table properties выбрать Secondary Indexes, нажать кнопку Define.
В открывшемся окне Define Secondary Indexes выбрать поля: Fio, Café, Dress.
Дать им названия FI, CI, DI.
Сохранить изменения нажатием кнопки Save.
Определим обработчик события OnClick этого компонента:
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
Case RadioGroup1.ItemIndex of
0: DataModule2.Table1.IndexName:='';
1: DataModule2.Table1.IndexName:='FI';
2: DataModule2.Table1.IndexName:='DI';
3: DataModule2.Table1.IndexName:='CI';
end;
end;
Рис.6 Сортировка
Фильтры
Установить на Form1 компонент GroupBox1 (Рис.7 Фильтры).
Caption = ’Фильтры’
Возможность фильтрации, т.е. вывода только части записей, соответствующих некоторому условию, например, только по номеру платья, превышающего номер платья указанного пользователем в Edit.
Установим на главной форме компонент Button и запишем обработчик его события OnClick:
procedure TForm1.Button3Click(Sender: TObject);
begin
DataModule2.Query1.Filtered:=False;
DataModule2.Table1.Filter:='Dress >'+chr(39)+Edit10.Text+chr(39);
DataModule2.Table1.Filtered:= True;
end;
Рис.7 Фильтры
Поиск записей:
Рассмотрим на функции Lookup (Рис.8 Поиск записей). Эта функция находит первую запись, удовлетворяющую критериям поиска, но не делает ее текущей, а возвращает значение указанных полей этой записи.
procedure TForm1.Button7Click(Sender: TObject);
var LookupRezults:Variant;
begin
LookupRezults:=DataModule2.Table1.Lookup('Dress',Edit5.Text,'Fio');
case VarType( LookupRezults) of
varEmpty:ShowMessage('Номер не указан');
varNull:Showmessage('Запись не найдена')
else Showmessage ('Фамилия клиента '+LookupRezults);
end;
end;
Рис.8 Поиск записей
Запросы:
Запросы по таблице Zakaz реализуется с помощью следующей формы (Рис.9 Запросы):
Рис.9 Запросы
Обычный SQL-запрос. Поиск клиента по фамилии или букве, на которую начинается фамилия (Рис.10 Простой SQL-запрос).
Текст запроса:
procedure TForm9.Button1Click(Sender: TObject);
begin
DataModule2.Query1.SQL.Text:='select * from Zakaz where Fio like'+chr(39)+ '%' +Edit1.Text+'%'+chr(39);
DataModule2.Query1.Active:=true;
Form10.show;
end;
Рис.10 Простой SQL-запрос
Параметрический запрос (Рис.11 Параметрический запрос). Выдает записи соответствующие введенному значению (название кафе).
procedure TForm11.FormActivate(Sender: TObject); begin with DataModule2.Query3 do begin Params[0].AsString:=Form9.Edit2.Text; Active:=true; end; Label1.Caption:='Колечство найденных записей = '; Label1.Caption:=Label1.Caption+''+inttostr(DataModule2.Query3.RecordCount); N_Row:=DataModule2.Query3.RecordCount; end; |
Select * from Zakaz Where Cafe=:KK |
Рис.11 Параметрический запрос
Агрегатные функции. Подсчитывает среднюю стоимость платья (Рис.11 Агрегатные функции).
-
procedure TForm8.FormShow(Sender: TObject);
begin
DataModule2.Query5.Active:=true;
end;
Select AVG(Cost) from Dress
Рис.12 Агрегатные функции