- •1 Мета та задачі курсового проектування
- •2 Тематика курсових робіт
- •3 Порядок виконання курсової роботи
- •4 Порядок захисту курсової роботи
- •5 Критерії оцінювання курсової роботи
- •6 Структура курсової роботи
- •7 Зміст курсової роботи
- •8 Вимоги що до оформлення курсової роботи
- •Додаток а Орієнтовний перелік тем курсових робіт, в яких треба розробити фрагменти аіс
- •Зразок оформлення пояснювальної записки курсової роботи
- •Додаток в Форма № у 6.01
- •На курсовий проект (роботу) студента
- •(Прізвище, ім’я, по-батькові)
- •4. Зміст розрахунково-пояснювальної записки (перелік підлягаючих розробці питань)______________________________________________________________
- •5. Перелік графічного матеріалу (з точним в казанням обов’язкових креслень)____________________________________________________________
- •Календарний план
- •1 Характеристика предметної області
- •Вхідні дані інформаційної системи:
- •1.3 Вихідні дані інформаційної системи:
- •2 Проектування бази даних
- •2.1 Моделювання бази даних
- •2.2 Зв’язування таблиць
- •2.3 Встановлення умов цілостності даних.Створення тригерів.
- •3 Програмна частина
- •Створення збережених процедур
- •3.2 Розробка клієнтської частини додатку
- •Сервісні функції додатка
- •4 Організація запуску додатка
- •4.1 Інсталяція додатка
- •4.2 Запуск і закриття встановленого додатка
- •Висновки
- •Скрипт – файл створення бази даних та ії об’єктів
- •Програмний код форми модуля даних
- •Список літератури
3 Програмна частина
Створення збережених процедур
Збережені процедури являють собою фрагменти коду, що виконуються на сервері серверними процесами. Ці програми можуть запускатися з додатку, правилами перевірки цілісності даних або тригерами.
Перевага збережених процедур заключається в тому, що вони виконуються на сервері в середовищі SQL Server. На перший погляд ця перевага може показатися недостатньо очевидною, але насправді вона складає саму суть моделі клієнт/сервер. Оскільки базами даних управляє SQL-сервер, то доцільно виконувати збережені процедури саме на сервері.
Збережені процедури можуть повертати деяку величину, модифікувати і перевіряти введені користувачем значення на відповідність заздалегідь заданим умовам, встановленим для вашої інформаційної системи. У збережену процедуру можна передавати значення. У той же час вона може повертати значення, які не обов'язково беруться безпосередньо з таблиці, а навпаки, обчислюються в ході виконання самої процедури.
Процедура NAME_CONTAINING використовується для фільтрації строкових даних при вибірці з таблиць-довідників. Процедура має 2 параметри. Перший параметр – вихідне значення рядка. Другий – значення фільтра. Якщо другий параметр є субрядком першого, незалежно від регістра, то процедура поверне перший параметр. У противному випадку результатом буде рядок 'ERROR'. Нижче приводиться текст збереженої процедури:
CREATE PROCEDURE NAME_CONTAINING (
IN_LNAM VARCHAR(255),
MASK VARCHAR(255)
) RETURNS (
OUT_LNAM VARCHAR(255)
) AS
BEGIN
IF ((IN_LNAM COLLATE PXW_CYRL) CONTAINING MASK) THEN OUT_LNAM=IN_LNAM;
ELSE OUT_LNAM='ERROR';
SUSPEND;
END
Процедура ENTRANTREPORT2_SELECT використовується для одержаня звіту «Сводка про хід подачі заяв»:
CREATE PROCEDURE ENTRANTREPORT2_SELECT RETURNS (
ORT INTEGER,
OFPRKEY INTEGER,
OFNAM VARCHAR(50),
OSPRKEY INTEGER,
OSNAM VARCHAR(50),
OPLAN INTEGER,
OTEACHFORMD INTEGER,
OTEACHFORMW INTEGER,
OJOINED INTEGER,
OPAYED INTEGER,
OENTERED INTEGER
) AS
DECLARE VARIABLE LPLANGOV INTEGER;
DECLARE VARIABLE LPLANEC INTEGER;
DECLARE VARIABLE LPLAN INTEGER;
DECLARE VARIABLE LJOINED INTEGER;
DECLARE VARIABLE LPAYED INTEGER;
DECLARE VARIABLE LENTERED INTEGER;
DECLARE VARIABLE LTEACHFORMD INTEGER;
DECLARE VARIABLE LTEACHFORMW INTEGER;
BEGIN
FOR SELECT F.PRKEY,F.LNAM
FROM FACULT F
ORDER BY F.LNAM
INTO :OFPRKEY,:OFNAM
DO
BEGIN
ORT=1;
OPLAN=NULL;
OJOINED=NULL;
OPAYED=NULL;
OENTERED=NULL;
SUSPEND;
LPLAN=0;
LJOINED=0;
LPAYED=0;
LENTERED=0;
LTEACHFORMD=0;
LTEACHFORMW=0;
ORT=2;
FOR SELECT S.PRKEY,S.LNAM,S.PLANGOV,S.PLANEC
FROM SPECIALIT S
WHERE S.LFACULT=:OFPRKEY
ORDER BY S.LNAM
INTO :OSPRKEY,:OSNAM,:LPLANGOV,:LPLANEC
DO
BEGIN
OPLAN=0;
IF(LPLANGOV>0)THEN OPLAN=OPLAN+LPLANGOV;
IF(LPLANEC>0)THEN OPLAN=OPLAN+LPLANEC;
OJOINED=0;
SELECT COUNT(E.PRKEY)
FROM ENTRANT E
WHERE E.LSPECIALIT=:OSPRKEY AND .GOTMONEY=0
INTO :OJOINED;
IF(OJOINED IS NULL)THEN OJOINED=0;
OPAYED=0;
SELECT COUNT(E.PRKEY)
FROM ENTRANT E
WHERE E.LSPECIALIT=:OSPRKEY AND E.PAYED=1
INTO :OPAYED;
IF(OPAYED IS NULL)THEN OPAYED=0;
OENTERED=0;
SELECT COUNT(E.PRKEY)
FROM ENTRANT E
WHERE E.LSPECIALIT=:OSPRKEY AND E.ENTERED=1
INTO :OENTERED;
IF(OENTERED IS NULL)THEN OENTERED=0;
SELECT COUNT(E.PRKEY)
FROM ENTRANT E
WHERE E.LSPECIALIT=:OSPRKEY AND E.TEACHFORM=1
INTO :OTEACHFORMD;
IF(OTEACHFORMD IS NULL)THEN OTEACHFORMD=0;
SELECT COUNT(E.PRKEY)
FROM ENTRANT E
WHERE E.LSPECIALIT=:OSPRKEY AND E.TEACHFORM=2
INTO :OTEACHFORMW;
IF(OTEACHFORMW IS NULL)THEN OTEACHFORMW=0;
LPLAN=LPLAN+OPLAN;
LJOINED=LJOINED+OJOINED;
LPAYED=LPAYED+OPAYED;
LENTERED=LENTERED+OENTERED;
LTEACHFORMD=LTEACHFORMD+OTEACHFORMD;
LTEACHFORMW=LTEACHFORMW+OTEACHFORMW;
SUSPEND;
END
ORT=3;
OPLAN=LPLAN;
OJOINED=LJOINED;
OPAYED=LPAYED;
OENTERED=LENTERED;
OTEACHFORMD=LTEACHFORMD;
OTEACHFORMW=LTEACHFORMW;
SUSPEND;
END
END
Процедура FACULTREGID_GET_ID необхідна для генерації реєстраційного номера, унікального в межах факультету. Вона повертає реєстраційний номер і виділяє наступний реєстраційний номер.
CREATE PROCEDURE FACULTREGID_GET_ID (
ILFACULT INTEGER
) RETURNS (
OREGID INTEGER
) AS
DECLARE VARIABLE LCNT INTEGER;
DECLARE VARIABLE LREGID INTEGER;
BEGIN
SELECT MIN(F.REGID)
FROM FACULTREGID F
WHERE F.LFACULT=:ILFACULT
INTO :OREGID;
IF(OREGID IS NULL)THEN
BEGIN
OREGID=1;
INSERT INTO FACULTREGID(PRKEY,LFACULT,REGID)
VALUES(GEN_ID(FACULTREGID_PRKEY_GEN,1),:ILFACULT,2);
END
ELSE
BEGIN
DELETE FROM FACULTREGID F
WHERE F.LFACULT=:ILFACULT AND F.REGID=:OREGID;
SELECT COUNT(F.PRKEY)
FROM FACULTREGID F
WHERE F.LFACULT=:ILFACULT AND F.REGID<>:OREGID
INTO :LCNT;
IF((LCNT=0)OR(LCNT IS NULL))THEN
BEGIN
LREGID=OREGID+1;
INSERT INTO FACULTREGID(PRKEY,LFACULT,REGID)
VALUES(GEN_ID(FACULTREGID_PRKEY_GEN,1),:ILFACULT,:LREGID);
END
END
SUSPEND;
END
Аналогічно збережена процедура FACULTREGID_FREE_ID використовується при видаленні абітурієнта. Процедура відзначає реєстраційний номер абітурієнта, що видаляється, як невикористовуваний. Цей реєстраційний номер одержить перший абітурієнт, що подає документи у ВНЗ. Нижче приведений код збереженої процедури:
CREATE PROCEDURE FACULTREGID_FREE_ID (
ILFACULT INTEGER,
IREGID INTEGER
) AS
BEGIN
INSERT INTO FACULTREGID(PRKEY,LFACULT,REGID)
VALUES(GEN_ID(FACULTREGID_PRKEY_GEN,1),:ILFACULT,:IREGID);
END