Хранимые процедуры.
Создание базы данных "Ярмарка вакансий"
Data source — имя сервера к которому подключаемся, Initial Catalog — название базы данных, к которой будет осуществляться подключение и последующее изменение или чтение ее данных, Security — способ аутентификации. Хранимая процедура DeleteResume удаляет резюме из таблицы ResumeRecords, когда подавший резюме устраивается на рабочее место. Хранимая процедура ArrangeWorker добавляет работника… Читать ещё >
Хранимые процедуры. Создание базы данных "Ярмарка вакансий" (реферат, курсовая, диплом, контрольная)
С целью повышения гибкости и мобильности приложения был разработан ряд хранимых процедур.
Хранимая процедура представляет собой подпрограмму, основной задачей которой является считывание параметров, передача их на сервер и обработка результатов выполнения. Использование хранимых процедур позволяет снизить стоимость сопровождения системы и дает возможность избавиться от необходимости изменять клиентские приложения. В нашем приложении разработаны хранимые процедуры, выполняющие следующие манипуляции с данными:
Рисунок 5 — Список хранимых процедур.
хранимые процедуры AddResume, AddVacancy добавляют новые записи в таблицах ResumeRecords и VacancyRecords соответственно:
—Процедура добавляет новую вакансию.
GO.
CREATE PROCEDURE AddVacancy.
@Id int,.
@Company nvarchar (50),.
@Speciality nvarchar (50),.
@Payment nvarchar (50),.
@Сonditions nvarchar (50),.
@NecessaryExp int.
AS.
BEGIN.
DECLARE @Vacant nvarchar (50).
SET @Vacant = 'yes'.
Insert into VacancyRecords (ID, Company, Speciality, Payment, Conditions, NecessaryExp, Vacant).
Values (@Id, @Company, @Speciality, @Payment, @Сonditions, @NecessaryExp, @Vacant).
END.
GO.
—Процедура добавляет резюме.
GO.
CREATE PROCEDURE AddResume.
@SecondName nvarchar (50),.
@Name nvarchar (50),.
@MiddleName nvarchar (50),.
@Age nvarchar (50),.
@Experience int,.
@Education nvarchar (50).
AS.
BEGIN.
DECLARE @Number int.
IF (SELECT COUNT (*) from ResumeRecords) = 0.
BEGIN.
SET @Number = 1.
END.
ELSE.
BEGIN.
SET @Number = (select MAX (Record_Number) from ResumeRecords)+1.
END.
Insert into ResumeRecords (Record_Number, SecondName, Name, MiddleName, Age, Experience, Education).
Values (@Number, @SecondName, @Name, @MiddleName, @Age, @Experience, @Education).
END.
GO.
хранимая процедура ArrangeWorker добавляет работника на рабочее место, изменяя статус вакантноcти в таблице VacancyRecords:
—Процедура добавляет работника на рабочее место, изменяя статус вакантности в таблице —VacancyRecords.
GO.
CREATE PROCEDURE ArrangeWorker.
@Selected_Resume int,.
@ID int,.
@DateOfRec nvarchar (50).
AS.
BEGIN.
DECLARE @Payment nvarchar (50).
SET @Payment = (SELECT Payment FROM VacancyRecords WHERE ID = @ID).
DECLARE @SecondName nvarchar (50).
SET @SecondName = (SELECT SecondName FROM ResumeRecords WHERE Record_Number = @Selected_Resume).
DECLARE @Name nvarchar (50).
SET @Name = (SELECT Name FROM ResumeRecords WHERE Record_Number = @Selected_Resume).
DECLARE @MiddleName nvarchar (50).
SET @MiddleName = (SELECT MiddleName FROM ResumeRecords WHERE Record_Number = @Selected_Resume).
DECLARE @Age int.
SET @Age = (SELECT Age FROM ResumeRecords WHERE Record_Number = @Selected_Resume).
DECLARE @Experience nvarchar (50).
SET @Experience = (SELECT Experience FROM ResumeRecords WHERE Record_Number = @Selected_Resume).
DECLARE @Education nvarchar (50).
SET @Education = (SELECT Education FROM ResumeRecords WHERE Record_Number = @Selected_Resume).
Insert into Workers (ID, SecondName, Name, MiddleName, Age, Experience, DateOfReception, Education, Payment).
Values (@ID, @SecondName, @Name, @MiddleName, @Age, @Experience, @DateOfRec, @Education, @Payment).
exec DeleteResume @Selected_Resume.
UPDATE VacancyRecords.
SET Vacant = 'no'.
WHERE ID = @ID.
END.
GO.
хранимая процедура DeleteResume удаляет резюме из таблицы ResumeRecords, когда подавший резюме устраивается на рабочее место.
—Процедура удаляет резюме.
GO.
CREATE PROCEDURE DeleteResume.
@Record_Number int.
AS.
BEGIN.
IF EXISTS (SELECT Record_Number FROM ResumeRecords WHERE Record_Number = @Record_Number).
BEGIN.
DECLARE @MAX_NUMB int.
SET @MAX_NUMB = (SELECT MAX (Record_Number) FROM ResumeRecords).
DECLARE @i int.
SET @i = @Record_Number +1.
DELETE FROM ResumeRecords WHERE Record_Number= @Record_Number.
WHILE @i <= @MAX_NUMB.
BEGIN.
UPDATE ResumeRecords.
SET Record_Number = @i — 1.
WHERE Record_Number = @i.
SET @i = @i + 1.
END.
END.
END.
GO.
хранимая процедура KickOutWorker удаляет работника с рабочего места, меняя статус вакантности.
GO.
CREATE PROCEDURE KickOutWorker.
@ID int.
AS.
BEGIN.
IF EXISTS (SELECT ID FROM Workers WHERE ID = @ID).
BEGIN.
DELETE FROM Workers WHERE ID = @ID.
UPDATE VacancyRecords.
SET Vacant = 'yes'.
WHERE ID = @ID.
END.
END.
GO.
хранимая процедура ShowWorkerOnId отображает всю информацию о работнике по ID.
GO.
CREATE PROCEDURE ShowWorkerOnId.
@ID int.
AS.
BEGIN.
IF EXISTS (SELECT ID FROM Workers WHERE ID = @ID).
BEGIN.
SELECT * FROM Workers WHERE ID = @ID.
END.
END.
GO.
Получение доступа к данным базы данных
Доступ к данным осуществляется путем удаленного соединения с SQL server’ом при помощи .NET вспомогательных классов.
Класс SqlConnection осуществляет соединение при помощи установки ConnectionString.
string connString = «Data Source=LENOVO-PC;Initial Catalog=Vacancy_Fair;Integrated Security=True» ;
sqlConn = new SqlConnection (connString);
sqlConn.Open ();
Data source — имя сервера к которому подключаемся, Initial Catalog — название базы данных, к которой будет осуществляться подключение и последующее изменение или чтение ее данных, Security — способ аутентификации.