Проектирование информационной системы для хранения, накопления и выборки данных
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
µсующую информацию (номер путевого листа, и подробную информацию о транспортном средстве и водителе работающем по этому путевому листу);
выполняет выборку из таблиц "pytevka", "mashini", "voditeli"интересующих данных.
Сценарий, препятствующий вставке отрицательной суммы за работу:
Данный сценарий реализуем в виде тригера, который будет срабатывать в том случае, если мы попытаемся сохранить в качестве значения суммы за выполнение работы отрицательное число. То есть, когда мы записываем сумму за работу в столбец [symma_za_raboty] таблицы dan_o_zayavke, он подставляется в переменную ограничевающего триггера и проверяется на корректность. Если введенная сумма положительная, то она сохраняется, в противном случае срабатывает триггер и выводится окно ошибки, содержащие описание причины её возникновения.
Сценарий на каскадное удаление таблиц реализуется в виде триггера.
При удалении какой либо строки из таблицы dogovorтриггер проводит удаление строк из других таблиц. Данные из таблицы dan_o_zayavkeудаляются на основе соответствия колонки id_dogovora. Данные из таблицы pytevkaудаляются на основе соответствия значений колонок id_pytevki.
Сценарий, ограничивающий длину номера от 5 до 12 цифр:
Данный сценарий реализуем в виде тригера, который будет срабатывать в том случае, если мы попытаемся сохранить в качестве значения номера телефона некорректный номер. То есть, когда мы записываем номер телефона в столбецtelefon таблицы dan_o_zakazchiken (аналогично для столбца kont_telefon таблицы) он подставляется в переменную ограничевающего триггера и проверяется на корректность. Если в номере от 5 до 12 цифр номер сохраняется, в противном случае срабатывает тригер и выводится окно ошибки, содержащие описание причины её возникновения.
Сценарий, производящий заполнение таблицы pytevka:
Для функционирования данного сценария необходимо при вызове процедуры ввести три переменные: номер новой заявки, номер водителя и номер транспортного средства(будут выступать в качестве параметров процедуры). Все данные почещаются в определенные переменные. При помощисовместного использования функций insert и valuesданные в таблицу поступают из переменных которые заполнил пользоваетль.
Yнеобходимые исходные данные: номер путевого лист, номер машины, номер водителя;
Yвыполняет вставку значений в таблицу "pytevka".
2.10Разработка механизмов реализации сценариев серверной компоненты
Создадим хранимую процедуру, которая будет производить поиск информации о заявке:
USE [KURSOV]
/****** Object: StoredProcedure [dbo].[vibor_zakaza] Script Date: 01/14/2012 22:33:07 ******/_NULLSON_IDENTIFIERON[dbo].[vibor_zakaza] @id_dog intdan_o_zayavke.*, assortiment.naiminovanie from_o_zayavke join assortiment on dan_o_zayavke.tip_prodykta = assortiment.tip_prodykta
where @id_dog = dan_o_zayavke.id_dogovora
Пример выполнения процедуры:
Результат:
Создадим хранимую процедуру, которая будет выводить всю информацию о договоре.
USE [KURSOV]
/****** Object: StoredProcedure [dbo].[viborALL] Script Date: 01/14/2012 22:34:53 ******/_NULLSON_IDENTIFIERON[dbo].[viborALL]dogovor.id_dogovora, dan_o_zakazchike.*, dan_o_zayavke.*,.*, mashini.*, voditeli.*leftjoin dan_o_zakazchike on dogovor.id_zakazchika = dan_o_zakazchike.id_zakazchikadan_o_zayavke on dan_o_zayavke.id_dogovora = dogovor.id_dogovoraassortiment on assortiment.tip_prodykta = dan_o_zayavke.tip_prodyktapytevka on pytevka.id_pytevki = dogovor.id_pytevkimashini on mashini.id_trsr = pytevka.id_trsr
join voditeli on voditeli.id_voditela = pytevka.id_voditela
Результат:
Создадим курсор, который будет выводить контрагентов и все сделанные им заявки
declare @zay nvarchar(50), @zay1 nvarchar(50), @ima nvarchar(50), @ima1 nvarchar(50)cur cursorforselect dan_o_zakazchike.ima_org, dogovor.id_dogovoradan_o_zakazchike join dogovor on dogovor.id_zakazchika = dan_o_zakazchike.id_zakazchikaima_orgcurcur into @ima, @zay@ima1 = @ima@zay1 = @zay@@FETCH_STATUS= 0cur into @ima, @zay@ima1 = @ima@zay1 = @zay1 +,+ @zayорганизация +@ima1+ подала заявки + @zay1@ima1=@ima@zay1=@zayорганизация +@ima1+ подала заявки + @zay1curcur
Результат:
Создадим курсор, который будет выводить информацию о путёвке:
USE [KURSOV]
/****** Object: StoredProcedure [dbo].[vibor_voditela] Script Date: 01/14/2012 22:39:58 ******/_NULLSON_IDENTIFIERON[dbo].[vibor_voditela] @id_pyt intpytevka.id_pytevki, mashini.*, voditeli.*fulljoin mashini on pytevka.id_trsr = mashini.id_trsrvoditeli on pytevka.id_voditela = voditeli.id_voditela@id_pyt = pytevka.id_pytevki
Пример выполненияvibor_voditela14
Результат:
Создадим хранимую процедуру, которая будет вставлять данные в таблицу pytevka.
USE [KURSOV]
/****** Object: StoredProcedure [dbo].[dobav2] Script Date: 01/14/2012 22:43:10 ******/_NULLSON_IDENTIFIERON[dbo].[dobav2] @id_pytevki int,@id_voditela int, @id_trsr intpytevka(id_pytevki ,id_voditela , id_trsr)(@id_pytevki ,@id_voditela , @id_trsr)*from pytevka wherepytevka.id_pytevki=@id_pytevki
Пример выполнения:
exec dobav219,4,6
Результат:
Триггер, препятствующий вводу отрицательной суммы.
USE [KURSOV]
/****** Object: Trigger [dbo].[o_dengax] Script Date: 01/14/2012 22:44:58 ******/_NULLSON_IDENTIFIERON[dbo].[o_dengax][dbo].[dan_o_zayavke] FORINSERT@@ROWCOUNT=1@summ real@summ=symma_za_raboty from inserted@summ<0tranВведеное число должно быть положительнмым
Результат при некорректном вводе суммы:
Триггер, удаляющий проекты и данные о заявке при удалении связанной с ними заявки.
USE [KURSOV]
/****** Object: Trigger [dbo].[ydal] Script Date: 01/14/2012 22:46:34 ******/_NULLSON_IDENTIFIERON[dbo].[ydal][dbo].[dogovor];dogovorid_dogovora in(select id_dogovora from deleted)dan_o_zayavkeid_dogovora in(select id_dogovora from deleted)pytevkaid_pytevki in(select id_pytevki from deleted)
Триггер, ограничивающий ввод номеров телефонов.
USE [KURSOV]
/****** Object: Trigger [dbo].[nomera_org] Script Date: 01/14/2012 22:51:13 ******/_NULLSON_IDENTIFIERON[dbo].[nomera_org][dbo].[dan_o_zakazchike] forinsert@@ROWCOUNT=1@Telefon int@Telefon=telefon from inserted@Telefon600Диапазон номера телефона от 5 до 12
.Разработка клиентских компонент