Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Svadba.docx
Скачиваний:
1
Добавлен:
23.09.2019
Размер:
6.41 Mб
Скачать
  1. Сортировка

Устаносить на форму RadioGroup1, в котором укажем сортировки БД (Рис.6 Сортировка):

  • Caption=’Сортировка’

  • Items=

  • По ключу

  • По фамилии

  • По платью

  • По кафе

Создание Secondary Indexes

  1. Запустить Database Desktop, зайти в меню File – Open – Table – Zakaz.

  2. Зайти в Table – Restructure и в Table properties выбрать Secondary Indexes, нажать кнопку Define.

  3. В открывшемся окне Define Secondary Indexes выбрать поля: Fio, Café, Dress.

  4. Дать им названия FI, CI, DI.

  5. Сохранить изменения нажатием кнопки 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 Сортировка

  1. Фильтры

Установить на Form1 компонент GroupBox1 (Рис.7 Фильтры).

  1. 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 Фильтры

  1. Поиск записей:

Рассмотрим на функции 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 Поиск записей

  1. Запросы:

Запросы по таблице Zakaz реализуется с помощью следующей формы (Рис.9 Запросы):

Рис.9 Запросы

  1. Обычный 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-запрос

  1. Параметрический запрос (Рис.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 Параметрический запрос

  1. Агрегатные функции. Подсчитывает среднюю стоимость платья (Рис.11 Агрегатные функции).

procedure TForm8.FormShow(Sender: TObject);

begin

DataModule2.Query5.Active:=true;

end;

Select AVG(Cost) from Dress

Рис.12 Агрегатные функции

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]