Для удаления данных из таблиц необходимо в главном окне нажать кнопку «Удалить», после чего в новом окне ввести нужную информацию и нажать кнопку «Удалить». Для закрытия данного окна нажать кнопку «Закрыть».
Чтобы изменить цену нужного товара, необходимо после нажатия кнопки «Изменить» в главном окне, ввести входящий номер товара и коэффициент изменения цены и нажать кнопку «Изменить». Для закрытия окна нажать кнопку «Закрыть».
Если необходимо просмотреть содержимое базы данных необходимо нажать на кнопку «База данных» на главной форме, выбрать нужную таблицу и нажать соответствующую ей кнопку «Показать».
Для выхода из программы служит кнопка «Выход».
Все приведенные действия дублируются в главном меню соответствующих окон.
Заключение
Данная система позволяет хранить сведения о магазинах и товарах, которые доставляются со склада, производить модификацию данных, добавлять новые и удалять ненужные сведения.
Приложение 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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.