Риддер
қ
.
Құмаш
Ңұрғалиев
атындағы
колледж
меке
месінің
филиалы
Филиал учреждения «Колледж имени Кумаша Нургалиева»
г. Риддер
Обязательная контрольная работа
По дисциплине «Основы объектно-ориентированного программирования»
обучающегося IV
курса группы 07-ПРО
VII
семестра
специальности 3706002 «
Программное обеспечение
вычислительной техники и автоматизированных систем»
Богдаева Евгения
Вариант IV
г. Риддер
,
2011 год
Задание
- Создать удаленную базу данных с двухзвенной архитектурой с помощью SQL-сервера Interbase, в которую входят таблица «Магазины» с полями: название, адрес и таблица «Игрушки» включающая поля: наименование, цена, его производитель. Таблицы связаны отношением один-ко-многим.
- Создать приложение в Delphi. Найти , в которой цена на введенное в режиме диалога лекарства наименьшая.
- Построить диаграмму, отображающую стоимость данного лекарства в каждой аптеке. Создать SQL-запрос и отчет.
Логическая модель
1)Создание Базы данных в
InterBase
Таблица магазины
/* Table: MAGAZINI, Owner: SYSDBA */
CREATE TABLE "MAGAZINI"
(
"NOMER" INTEGER NOT NULL,
"NAZVANIE" CHAR(20) CHARACTER SET WIN1251,
"ADRESS" CHAR(20) CHARACTER SET WIN1251,
PRIMARY KEY ("NOMER")
);
SET TERM ^ ;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER "TRI_DO" FOR "MAGAZINI"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.nomer = GEN_ID(geni, 1);
END
^
CREATE TRIGGER "TRI_IZM" FOR "MAGAZINI"
ACTIVE BEFORE UPDATE POSITION 0
AS
BEGIN
IF (OLD.nomer <> NEW.nomer)
THEN UPDATE igruchki
SET nomer_i = NEW.nomer
WHERE nomer_i = OLD.nomer;
END
^
CREATE TRIGGER "TRI_1" FOR "MAGAZINI"
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
DELETE FROM igruchki
WHERE igruchki.nomer_i = magazini.nomer;
END
^
COMMIT WORK ^
SET TERM ;^
Таблица игрушки
/* Table: IGRUSHKI, Owner: SYSDBA */
CREATE TABLE "IGRUSHKI"
(
"NOMER_IG" INTEGER NOT NULL,
"NOMER" INTEGER NOT NULL,
"NAZVANIE" CHAR(20) CHARACTER SET WIN1251,
"CENA" INTEGER,
"PROIZVODITEL" CHAR(20) CHARACTER SET WIN1251,
"VOZRAST" INTEGER,
PRIMARY KEY ("NOMER_IG")
);
ALTER TABLE "IGRUSHKI" ADD FOREIGN KEY ("NOMER") REFERENCES MAGAZINI ("NOMER");
Заполнение таблиц
Главная таблица «Магазины»
Дочерняя таблица «Игрушки»
2)Создание приложения
Главная форма программы
База данных программы
Форма на которой отображаются Магазины и Игрушки.
Так же на этой форме имеется «поиск по возрасту»
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text)>0 then
DM.igrushki.Filtered:=true
else
DM.igrushki.Filtered:=false;
DM.igrushki.Filter:='vozrast='''+Edit1.Text+'''';
end;
Диаграмма «производителей»
Отчет
SELECT Magazini.NAZVANIE, Igrushki.NAZVANIE, Igrushki.CENA, Igrushki.VOZRAST
FROM IGRUSHKI Igrushki
INNER JOIN MAGAZINI Magazini
ON (Magazini.NOMER = Igrushki.NOMER)
ORDER BY Igrushki.VOZRAST
|