employs.Add(new DbEmployee("Шафоростов", "Никита", "Васильевич", "...", "(81369)29542", new DateTime(1986, 2, 14), new DateTime(2000, 1, 30), null, 5, "nik", "sober", Sample.Никита));
employs.Add(new DbEmployee("Никульшин", "Михаил", "Сергеевич", "....", "4936785", new DateTime(1986, 2, 14), new DateTime(2000, 1, 30), null, 5, "mixer", "i love oraforms", Sample.MadMike));
employs.Add(new DbEmployee("Чечеткин", "Дмитрий", "Владимирович", ".....", "обрубили за неуплату", new DateTime(1986, 2, 14), new DateTime(2000, 1, 30), null, 1, "morf", "java is is my naT!v$ l@ng#@ge", Sample.Морфикус));
employs.Add(new DbEmployee("Смирнов", "Георгий", "Вадимович", "......", "430-72-69", new DateTime(1986, 1, 5), new DateTime(2000, 1, 30), null, 5, "cooler", "afftarjjot", Sample.Пратиффный));
employs.Add(new DbEmployee("Шиван", "Малак", null, ".......", "", new DateTime(1986, 1, 5), new DateTime(2000, 1, 30), null, 5, "wivan", "??????", Sample.Шиванчик));
employs.Add(new DbEmployee("Орландо", "Блум", "Блумыч", "abcd", "3708198(Анютка,звони:P )", new DateTime(1986, 1, 5), new DateTime(2000, 1, 30), null, 5, "bloom", "gloom", Sample.ОрландоБлум));
foreach (DbEmployee emp in employs)
DbHelper.AddNewEmployee(emp, true);
DbEmployee root = DbHelper.AdminGetEmploys()[1];
root.Photography = Properties.Sample.JackWithBat;
DbHelper.AdminUpdateEmployeeInfo(root);
DbHelper.RestoreEmployee(petrovi4);
}
#endregion
--для получения информации о себе
CREATE PROCEDURE GetPersonalInfo (pLOGIN VARCHAR2, pPASSWORD VARCHAR2, pИМЯ OUT VARCHAR2, pФАМИЛИЯ OUT VARCHAR2, pОТЧЕСТВО OUT VARCHAR2, pПАСПОРТ OUT VARCHAR2, pДОЛЖНОСТЬ OUT VARCHAR2, pКОГДА_УСТРОИЛСЯ OUT DATE, pКОГДА_УВОЛИЛСЯ OUT DATE, pДАТА_РОЖДЕНИЯ OUT DATE, pID OUT NUMBER, pФОТОГРАФИЯ OUT BLOB, pКОНТАКТНЫЙ_ТЕЛЕФОН OUT VARCHAR2, pAdministerOptions OUT NUMBER) AS
BEGIN
select ИМЯ, ФАМИЛИЯ, ОТЧЕСТВО, ПАСПОРТ, ДОЛЖНОСТЬ, КОГДА_УСТРОИЛСЯ, КОГДА_УВОЛИЛСЯ, ДАТА_РОЖДЕНИЯ, ID, ФОТОГРАФИЯ, КОНТАКТНЫЙ_ТЕЛЕФОН, AdministerOptions INTO pИМЯ, pФАМИЛИЯ, pОТЧЕСТВО, pПАСПОРТ, pДОЛЖНОСТЬ, pКОГДА_УСТРОИЛСЯ, pКОГДА_УВОЛИЛСЯ, pДАТА_РОЖДЕНИЯ, pID, pФОТОГРАФИЯ, pКОНТАКТНЫЙ_ТЕЛЕФОН, pAdministerOptions from ADMINGETALLEMPLOYS WHERE pLOGIN = LOGIN AND PASSWORD = pPASSWORD AND КОГДА_УВОЛИЛСЯ IS NULL;
END;
/
--смена аккаунта
CREATE PROCEDURE ChangeAccount (pID NUMBER, pLOGIN VARCHAR2, pPASSWORD VARCHAR2) AS
num number;
BEGIN
select count(*) into num from СОТРУДНИК where LOGIN = pLOGIN AND КОГДА_УВОЛИЛСЯ IS NULL AND ID <> pID;
if num > 0 then RAISE_APPLICATION_ERROR(-20060, 'Этот логин уже задействован!'); end if;
UPDATE СОТРУДНИК SET LOGIN = pLOGIN, PASSWORD = pPASSWORD WHERE ID = pID;
END;
/
--смена пароля
CREATE PROCEDURE ChangePassword (pLOGIN VARCHAR2, pOLDPASSWORD VARCHAR2, pNEWPASSWORD VARCHAR2) AS
BEGIN
UPDATE СОТРУДНИК SET PASSWORD=pNEWPASSWORD WHERE LOGIN = pLOGIN AND PASSWORD = pOLDPASSWORD;
END;
/
--назначение наказания
CREATE PROCEDURE TryToLogin (pLOGIN IN OUT VARCHAR2, pPASSWORD IN OUT VARCHAR2) AS
num INTEGER;
CURSOR empCursor IS SELECT * FROM СОТРУДНИК WHERE pLOGIN = LOGIN AND PASSWORD = pPASSWORD AND КОГДА_УВОЛИЛСЯ IS NULL;
ourEmpRecord empCursor%ROWTYPE;
BEGIN
SELECT COUNT(*) INTO num FROM СОТРУДНИК WHERE pLOGIN = LOGIN AND PASSWORD = pPASSWORD AND КОГДА_УВОЛИЛСЯ IS NULL;
IF num = 0 THEN
pLOGIN := 'MENTAL_HOSPITAL_USER';
pPASSWORD := 'здесь будем генерить рандомный пароль';
ELSE
OPEN empCursor;
FETCH empCursor INTO ourEmpRecord;
CLOSE empCursor;
IF ourEmpRecord.AdministerOptions = 0 THEN
pLOGIN := 'MENTAL_HOSPITAL_USER';
pPASSWORD := '#USER_PASSWORD#';
ELSE
pLOGIN := 'MENTAL_HOSPITAL_ADMIN';
pPASSWORD := '#ADMIN_PASSWORD#';
END IF;
END IF;
END;
/
--создание записи в ДОЛЖНОСТЬ
CREATE PROCEDURE CreatePunishment (pНАЗВАНИЕ VARCHAR2, pID OUT NUMBER) AS
num INTEGER;
BEGIN
SELECT COUNT(*) INTO num FROM НАКАЗАНИЯ WHERE НАЗВАНИЕ = pНАЗВАНИЕ AND WAS_REMOVED = 1;
IF num = 0 THEN
INSERT INTO НАКАЗАНИЯ (НАЗВАНИЕ) VALUES (pНАЗВАНИЕ) RETURNING ID INTO pID;
ELSE
UPDATE НАКАЗАНИЯ SET WAS_REMOVED = 0 WHERE НАЗВАНИЕ = pНАЗВАНИЕ AND WAS_REMOVED = 1 RETURNING ID INTO pID;
END IF;
END;
/
--удаление записи из списка видимых должностей
CREATE PROCEDURE RemovePunishment (pID NUMBER) AS
BEGIN
UPDATE НАКАЗАНИЯ SET WAS_REMOVED = 1 WHERE ID = pID;
END;
/
--создание записи в ДОЛЖНОСТЬ
CREATE PROCEDURE CreateNewPost (pНАЗВАНИЕ VARCHAR2, pЗАРПЛАТА NUMBER, pID OUT NUMBER) AS
num INTEGER;
BEGIN
SELECT COUNT(*) INTO num FROM ДОЛЖНОСТЬ WHERE НАЗВАНИЕ = pНАЗВАНИЕ AND WAS_REMOVED=1;
IF num = 0 THEN
INSERT INTO ДОЛЖНОСТЬ (НАЗВАНИЕ, ЗАРПЛАТА) VALUES (pНАЗВАНИЕ, pЗАРПЛАТА) RETURNING ID INTO pID;
ELSE
UPDATE ДОЛЖНОСТЬ SET ЗАРПЛАТА = pЗАРПЛАТА, WAS_REMOVED=0 WHERE НАЗВАНИЕ = pНАЗВАНИЕ AND WAS_REMOVED=1 RETURNING ID INTO pID;
END IF;
END;
/
--удаление записи из списка видимых должностей
CREATE PROCEDURE RemovePost (pID NUMBER) AS
BEGIN
UPDATE ДОЛЖНОСТЬ SET WAS_REMOVED = 1 WHERE ID = pID;
END;
/
--создание записи в ДИАГНОЗЫ
CREATE PROCEDURE CreateNewDisease (pНАЗВАНИЕ VARCHAR2, pОПИСАНИЕ VARCHAR2, pID OUT NUMBER) AS
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.