Сеть магазинов по торговле промышленными товарами, страница 3

Для удаления данных из таблиц необходимо в главном окне нажать кнопку «Удалить», после чего в новом окне ввести нужную информацию и нажать кнопку «Удалить». Для закрытия данного окна нажать кнопку «Закрыть».  

Чтобы изменить цену нужного товара, необходимо после нажатия кнопки «Изменить» в главном окне, ввести входящий номер товара и коэффициент изменения цены и нажать кнопку «Изменить». Для закрытия  окна нажать кнопку «Закрыть».

Если необходимо просмотреть содержимое базы данных необходимо нажать на кнопку «База данных» на главной форме, выбрать нужную таблицу и нажать соответствующую ей кнопку «Показать».

Для выхода из программы служит кнопка «Выход».

Все приведенные действия дублируются в главном меню соответствующих окон.


Заключение

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


Приложение I

Исходный текст хранимых процедур и тригеров

Хранимые процедуры:

Добавление магазина

CREATE PROCEDURE INSERTMAGAZIN  (@n1 smallint, @n2 varchar(10), @n3 varchar(10), @n4 bit, @n5 varchar(10)) AS

INSERT INTO Magazin

VALUES (@n1,@n2,@n3,@n4,@n5);

Добавление сотрудника

CREATE PROCEDURE INSERTSOTRUDNIK (@n1 varchar(40), @n2 varchar(30), @n3 varchar(15), @n4 smallint, @n5 varchar(10) ) AS

INSERT INTO Sotrudnik

VALUES (@n1, @n2,@n3,@n4,@n5);

Добавление товара в магазине

CREATE PROCEDURE INSERTTOVM (@n1 smallint, @n2 money, @n3 datetime, @n4 smallint, @n5 varchar(10) ) AS

INSERT INTO TovM

VALUES (@n1, @n2, @n3, @n4, @n5)

Довление товара на складе

CREATE PROCEDURE INSERTTOVS (@n1 int, @n2 varchar(10), @n3 money, @n4 bit ) AS

 INSERT INTO TovS

VALUES (@n1, @n2, @n3, @n4)

Добавление заказа

CREATE PROCEDURE INSERTZAKAZ (@n1 datetime, @n2 int, @n3 varchar(10), @n4 bit, @n5 varchar(10), @n6 int ) AS

INSERT INTO Zakaz

VALUES (@n1, @n2, @n3, @n4, @n5, @n6)

Изменение цены

CREATE PROCEDURE UPDATECENA ( @n2 smallint, @n3 smallint) AS

UPDATE TovM SET Cena = Cena*@n3

WHERE NumbeV=@n2

Удаление магазина

CREATE PROCEDURE DELETEMAGAZIN (@n1 int) AS

DELETE

FROM Magazin

WHERE (Magazin.Numbe=@n1)

Удаление сотрудника

CREATE PROCEDURE DELETESOTRUDNIK (@n1 varchar(20), @n2 int) AS

DELETE

FROM Sotrudnik

WHERE Sotrudnik.FIO=@n1 And Sotrudnik.numbe=@n2;

SELECT 'OK'

Удаление товара в магазине

CREATE PROCEDURE DELETETOVM (@n1 int) AS

DELETE

FROM TovM

WHERE  (TovM.NumbeV=@n1)

Удаление товара на складе

CREATE PROCEDURE DELETETOVS(@n1 int) AS

DELETE

FROM TovS

WHERE (TovS.NunbeV=@n1)

Удаление товара заказа

CREATE PROCEDURE DELETEZAKAZ (@n1 smallint) AS

DELETE

FROM Zakaz

WHERE (Zakaz.NambeV=@n1)

Тригеры

TovSSotr Проверяет целостность данных с таблицами TovS и Sotrudnik  при добавлении записи в таблицу Zakaz.

CREATE TRIGGER TovSSotr ON dbo.Zakaz

FOR INSERT

AS

 DECLARE @x INT

 DECLARE @y INT

  SELECT @y = I.FIO FROM Sotrudnik A, INSERTED I WHERE I.FIO = A.FIO

 SELECT @x = I.NambeV FROM TovS A, INSERTED I WHERE I.NambeV = A.NunbeV

 IF NOT(EXISTS (SELECT * FROM TovS WHERE TovS.NunbeV = @x ))

  BEGIN

    ROLLBACK TRAN

    PRINT 'Ошибка целостности при добавлении '

  END

IF NOT(EXISTS (SELECT * FROM Sotrudnik WHERE Sotrudnik.FIO = @y ))

  BEGIN

    ROLLBACK TRAN

    PRINT 'Ошибка целостности при добавлении '

  END

TovMTovS Проверяет целостность данных с таблицами TovS и Magazin при добавлении новой записи в таблицу TovM.

CREATE TRIGGER TovMTovS ON dbo.TovM

FOR INSERT

AS

 DECLARE @y INT

 DECLARE @x INT

SELECT @y = I.Name FROM Magazin B, INSERTED I WHERE I.Name = B.Numbe 

SELECT @x = I.NumbeV FROM TovS B, INSERTED I WHERE I.NumbeV = B.NunbeV

IF ((NOT(EXISTS (SELECT * FROM TovS WHERE TovS.NunbeV = @x )))  or (NOT(EXISTS (SELECT * FROM Magazin WHERE Magazin.Numbe = @y ))))

  BEGIN

    ROLLBACK TRAN

    PRINT 'Ошибка целостности при добавлении '

  END

Следующие два тригера производят каскадное удаление записей из всех таблиц, в которых имеется поле «Номер магазина», при удалении магазина в таблице Magazin

CREATE TRIGGERDELZ ON dbo.Magazin

FOR  DELETE

AS

 DECLARE @y INT

SELECT @y  = D.Numbe FROM Zakaz A, DELETED D WHERE D.Numbe = A.Numbe

 IF EXISTS (SELECT * FROM Zakaz WHERE Zakaz.Numbe = @y )

  BEGIN   

    DELETE FROM Zakaz WHERE Zakaz.Numbe = @y 

  PRINT 'Произведено каскадное удаление записей'

  END

CREATE TRIGGER DELMAGAZIN ON dbo.Magazin

FOR  DELETE

AS

 DECLARE @y INT

 DECLARE @x INT

SELECT @x  = D.Numbe FROM TovM A, DELETED D WHERE D.Numbe = A.Name

SELECT @y  = D.Numbe FROM Sotrudnik A, DELETED D WHERE D.Numbe = A.numbe

 IF ((EXISTS (SELECT * FROM Sotrudnik WHERE Sotrudnik.numbe = @y ))or (EXISTS (SELECT * FROM TovM WHERE TovM.Name = @x)))

  BEGIN   

    DELETE FROM Sotrudnik WHERE Sotrudnik.numbe = @y

    DELETE FROM TovM WHERE TovM.Name = @x 

  PRINT 'Произведено каскадное удаление записей'

  END

DELS Производит каскадное удаление записей из таблицы Zakaz, при удалении сотрудника из таблицы Sotrudnik.

СREATE TRIGGER DELS ON dbo.Sotrudnik

FOR  DELETE

AS

 DECLARE @y INT

 DECLARE @x INT

SELECT @x  = D.numbe FROM Zakaz A, DELETED D WHERE D.numbe = A.Numbe

SELECT @y  = D.FIO FROM Zakaz A, DELETED D WHERE D.FIO = A.FIO

 IF EXISTS (SELECT * FROM Zakaz WHERE ((Zakaz.FIO = @y) and (Zakaz.Numbe=@x)))

  BEGIN   

    DELETE FROM Zakaz WHERE ((Zakaz.FIO = @y) and (Zakaz.Numbe=@x)) 

  PRINT 'Произведено каскадное удаление записей'

  END

Mag Проверяет целостность данных с таблицей Magasin при добавлении новой записи в таблицу Sotrudnik.

CREATE TRIGGER Mag ON dbo.Sotrudnik

FOR INSERT

AS

 DECLARE @x INT

 SELECT @x = I.numbe FROM Magazin A, INSERTED I WHERE I.numbe = A.Numbe

 IF NOT(EXISTS (SELECT * FROM Magazin WHERE Magazin.Numbe = @x ))

  BEGIN

    ROLLBACK TRAN