по Основам объектно-ориентированного программирования

Риддер қ. Құмаш Ңұрғалиев атындағы колледж мекемесінің филиалы

Филиал учреждения «Колледж имени Кумаша Нургалиева»

г. Риддер









Обязательная контрольная работа

По дисциплине «Основы объектно-ориентированного программирования»

обучающегося 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