Автор работы: Пользователь скрыл имя, 05 Января 2012 в 01:57, курсовая работа
Важной частью работы является разработка пользовательского интерфейса. Microsoft Visual Studio 2008 представляет множество средств его создания, а также для управления и манипулирования данными. Необходимо учесть все тонкости работы в данной предметной области, чтобы создать удобный интерфейс, который обладал эстетической привлекательностью и в то же время в полной мере – функциональностью.
T_zakazy_1 7 - Триггер, который записывает при удаление записей из таблицы «заказы» в отдельную таблицу информацию об удаленных записях.
T_postavchik_1 8 - Триггер, который записывает при удаление записей из таблицы «поставщики» в отдельную таблицу информацию об удаленных записях.
T_material_1 9 - Триггер, который записывает при удаление записей из таблицы «материалы» в отдельную таблицу информацию об удаленных записях.
T_sotrudnik_1
10- Триггер, который записывает при удаление
записей из таблицы «сотрудники» в отдельную
таблицу информацию об удаленных записях.
3.3.
T-SQL-определения хранимых
процедур
/*1. Вставка в таблицу Клиенты.*/
Create PROCEDURE VstavkaKlienti /*Обьявляем имя хранимой
процедуры*/
(
@nom int, /*Обьявляем полей таблицы*/
@datzakaz datetime, /*Обьявляем полей таблицы*/
@fio varchar(150) /*Обьявляем полей таблицы*/
)
AS INSERT INTO клиенты VALUES (@nom, @datzakaz , @fio);
/*Производим
вставку клиента в таблицу*/
Аналагичные хранимые процедуры:
VstavkaMaterial 3- Вставка в таблицу Материалы
VstavkaPostavchik 4- Вставка в таблицу Поставщики
VstavkaSotr 5- Вставка в таблицу Сотруники
VstavkaUslugi
2- Вставка в таблицу Услуги
/*6. Удаление Клиентов из таблицы Клиенты по номеру .*/
create PROCEDURE DeleteKlient/*Обьявляем имя хранимой процедуры*/
@number int/*Индификация поля по которому будет производится
удаления*/
AS
IF not EXISTS (SELECT * FROM услуги_клиенты WHERE
Номер_клиента=@number)
DELETE
FROM клиенты
WHERE
Номер_клиента=@number
/*Поля для в вода клиента*/
Аналагичные хранимые процедуры:
DeleteMaterial 8- Удаление Материалов из таблицы Материалы по номеру
DeletePost 9- Удаление Поставщика из таблицы Поставщики по его номеру
DeleteSotr 10- Удаление Сотрудника из таблицы сотрудники по его номеру
табельному номеру
DeleteUslugi
7- Удаление услуги по ее номеру
/*11. Обновление таблицы Сотрудники по ид_номеру меняем оклад.*/
create PROCEDURE UpdateSotr/*Обьявляем имя хранимой процедуры*/
@nom int, /*Индификация поля по которому будет производится
удаления*/
@st int/*Индификация поля по которому будет производится удаления*/
AS
IF EXISTS (SELECT * FROM Сотрудники WHERE
Табельный_номер=@nom)
UPDATE Сотрудники
SET Оклад=@st /*Имя поля которое будем менять*/
WHERE Табельный_номер=@nom/*Имя поля по которому будет
производится
выборка*/
Аналагичные хранимые процедуры:
UpdateBrig 12- Обновление таблицы Бригады по номеру бригады меняем
количество человек
UpdateKlient 13- Обновление таблицы Клиенты по номеру клиента меняем
отсветственное лицо
UpdateSakaz 14- Обновление таблицы Заказаы по номеру заказа меняем
дату заказа
UpdateUslug 15- Обновление таблицы Услуги по табельный номер
сотрудника
меняем оклад
/*16.Вывод информации о сотрудниках.*/
create PROCEDURE VivodSotr/*Обьявляем имя хранимой процедуры*/
@nom int/*Индификация поля по которому будет производится удаления*/
AS
SELECT
Сотрудники.Табельный_
Сотрудники.Номер_бригады,
которые будут показаны в отчете*/
FROM Бригады,Сотрудники
WHERE (Табельный_номер=@nom) AND (Сотрудники.Номер_бригады
=Бригады.Номер_бригады) /*Связывание двух таблиц по полям и выборка
по
номеру*/
Аналагичные хранимые процедуры:
VivodKlient 18 - Выводит по номеру клиента информацию о клиенте из
таблицы Клиенты
VivodPost 19- Выводит по номеру поставщика информацию о поставщике
из таблицы Поставщики
VivodMater 20- Выводит по номеру материала информацию о материале из
таблицы
Материалы
/*17.Вывод информации о заказах по дате заказа.*/
create PROCEDURE VivodSakaz/*Обьявляем имя хранимой процедуры*/
@dat datetime/*Индификация поля по которому будет производится
удаления*/
AS
SELECT
заказы.Номер_заказа,
ги.Услуга,услуги.
в отчете*/
FROM заказы,услуги_заказы,услуги
WHERE (Дата_здачи=@dat) AND (заказы.Номер_заказа
=услуги_заказы.Номер_
=услуги.Номер_услуги) /*Связывание двух таблиц по полям и выборка по
дате здачи объекта*/
1./*Курсор для просмотра списка клиентов и подсчёт их количества*/
DECLARE infklient CURSOR
GLOBAL /*Создается глобальный курсор, который будет существовать до
закрытия данного соединения*/
SCROLL
/*Создает прокручиваемый
KEYSET
/*Будет создан ключевой
TYPE_WARNING
FOR
SELECT/*Какие поля будут показаны в курсоре*/
клиенты.Номер_клиента,
Ответственное_лицо
FROM клиенты /*Из какой таблицы выбираются данные*/
FOR READ ONLY /*Только для чтения*/
open global infklient /*открываем глобальный курсор*/
FETCH NEXT FROM infklient
DECLARE /*объявляем переменную*/
@@Count int
SET @@Count =@@CURSOR_ROWS /*присваиваем ей число рядов
курсора*/
Select @@Count /*выводим результат на экран*/
CLOSE infklient /*закрываем курсор*/
DEALLOCATE
infklient/*освобождаем курсор*
2./*Курсор
для просмотра списка
DECLARE udalSotrudnik CURSOR
GLOBAL/*Создается глобальный курсор, который будет существовать до
закрытия данного соединения*/
SCROLL
/*Создает прокручиваемый
KEYSET
/*Будет создан ключевой
TYPE_WARNING /* сервер будет информировать пользователя о
неявном изменении типа курсора, если он несовместим с запросом
SELECT */
FOR
SELECT/*Какие поля будут показаны в курсоре*/
sotrudnik_ud.Табельный_
sotrudnik_ud.Номер_
sotrudnik_ud.ФИО,
sotrudnik_ud.Номер_
sotrudnik_ud.Должность,
sotrudnik_ud.Оклад,
sotrudnik_ud.Адрес,
sotrudnik_ud.Стаж,
sotrudnik_ud.Номер_соц_
FROM
sotrudnik_ud/*Из какой
ORDER BY sotrudnik_ud.Табельный_номер DESC
FOR READ ONLY /*Только для чтения*/
open
global udalSotrudnik/*открываем
FETCH udalSotrudnik
CLOSE udalSotrudnik /*закрываем курсор*/
DEALLOCATE
udalSotrudnik /*освобождаем курсор*/
3./*Курсор
для удаления записи из “
DECLARE udalmaterial CURSOR
LOCAL SCROLL KEYSET
FOR SELECT /* что будет показано в курсоре */
материалы.Код_материала,
материалы.Наименование_
FROM материалы
FOR UPDATE
open udalmaterial
DECLARE
@@Код_материала varchar(50), /*Объявляем необходимые переменные*/
@@Стоимость_материалов int,
@@Наименование_материала varchar(50),
@@Количество_материала int,
@@Count int
SET @@Count = 0
WHILE @@Count < @@CURSOR_ROWS
BEGIN
SET @@Код_материала = ' '
SET @@Стоимость_материалов = ' '
SET @@Наименование_материала = ' '
SET @@Количество_материала= ' '
SET @@Count = @@Count + 1
END
CLOSE udalmaterial /*закрываем курсор*/
DEALLOCATE
udalmaterial /* освобождаем
курсор */
4.DECLARE infMaterial CURSOR
GLOBAL SCROLL KEYSET TYPE_WARNING
FOR SELECT
материалы.Код_материала,
материалы.Наименование_
FROM материалы
FOR READ ONLY
open global infMaterial
FETCH NEXT FROM infMaterial /*просматриваем*/
DECLARE
@@Count int
SET @@Count =@@CURSOR_ROWS
Select @@Count
CLOSE infMaterial
DEALLOCATE
infMaterial
5.DECLARE @ИД_поставщика_1 VARCHAR(50),
@Название_организации_1
@message VARCHAR(80)
DECLARE postavchik_cursor CURSOR LOCAL FOR
SELECT ИД_поставщика, Название_организации
FROM поставщики
WHERE ИД_поставщика ='101'