Разработка и эксплуатация АИС: Методическое пособие для выполнения лабораторных работ № 9-15, страница 7

Вариант 8:  список офисов с указанием Ф.И.О. руководителя и список агентов с указанием города и региона работы и Ф.И.О. руководителя, список клиентов с указанием Ф.И.О. обслуживающего агента и города работы с возможностью фильтрации по городу, региону, офису, для агентов – по уровню планового и текущего объема продаж, для клиентов – по обслуживающим агентам и суммам выплат.

Вариант 9:  список товаров с указанием категории и информации о производителе с возможностью фильтрации по категориям, производителю и цене и сортировки по названию товара, категориям, производителям и по цене.

Вариант 10:  список работников с указанием должности, стажа и заработной платы (рассчитывается как оклад плюс надбавка за стаж) с возможностью фильтрации по должностям, стажу, отделу и уровню заработной платы и сортировки по фамилиям, должностям, отделам, стажу и заработной плате.

Вариант 11:  список выданных кредитов с указанием информации о клиенте, названия кредита, выданной суммы и суммы, подлежащей возврату с учетом процентов, с возможностью фильтрации по видам кредитов, величине выданной суммы и давности выдачи (год назад, 6, 3 или 1 месяц назад, неделю назад) и сортировки по фамилии клиента, виду кредита и давности выдачи.

Вариант 12:  список статей с указанием темы, заголовка темы и описания статьи без вывода самой статьи с возможностью фильтрации и сортировки по темам.

3)  Включите в отчет программный код и объявление класса формы, созданные в процессе выполнения лабораторной работы.

Контрольные вопросы к работе:

1)  Что Вам известно о возможностях фильтрации выводимых данных у компонента TTable? Опишите известные Вам свойства и методы этого компонента, предназначенные для фильтрации данных.

2)  Существует ли метод управления отображением данных, полученных из БД, альтернативный использованию объектов-полей (TField) класса TQuery? Опишите краткую реализацию известных Вам методов с разъяснениями назначения используемых объектов и классов, а также их свойств и методов.

3)  Как по-вашему, в каком режиме (чтение/запись, только чтение, только запись) открывается набор данных, возвращаемый компонентом TQuery при выполнении запроса SELECT? Какими способами можно модифицировать информацию, хранящуюся в БД, с помощью компонента TQuery?

Лабораторная работа №11.

Тема:

«Манипуляции с таблицами БД с помощью TQuery».

Цель работы:

Научиться производить манипуляции с данными, хранящимися в БД, с помощью выполнения запросов DML компонентом TQuery.

Пример выполнения задания и краткие теоретические сведения:

С помощью компонента TQuery можно не только извлекать информацию из БД (путем выполнения запроса SELECT), но и производить манипуляции с данными, хранящимися в БД (путем выполнения команд DML – UPDATE, INSERT и DELETE).

Запрос на выборку данных выполнялся в TQuery с помощью метода Open. Для выполнения запросов DML у этого компонента предусмотрен метод ExecSQL.

Создадим форму редактирования для разработанной ранее программы учета гостиничных номеров. Поместим на нее 2 компонента TEdit, две кнопки TButton, несколько надписей TLabel информационного характера и компонент TQuery. Внешний вид формы на этапе проектирования представлен на рисунке ниже:

В модуле этой формы (Unit3.pas) объявим глобальную переменную “clientID: Integer”, в которую будет передаваться идентификатор (значение поля “clients.id” из БД) клиента, информацию о котором нужно отредактировать. Для того, чтобы при открытии формы в поля редактирования заносились значения из БД создадим обработчик создания формы:

procedure TfrmClientEdit.FormCreate(Sender: TObject);

begin

 if clientID > 0 then begin

query1.SQL.Text := 'SELECT fio, doc FROM clients

WHERE (id = ' + IntToStr(clientID) + ');';

query1.Open;

 if query1.FieldCount > 0 then begin

edFIO.Text := query1.FieldByName('fio').AsString;

edDoc.Text := query1.FieldbyName('doc').AsString;

end;

query1.Close;

  end;

end;