Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
19.04.2015
Размер:
94.72 Кб
Скачать

4.2 Підсистема «Деканат».

4.2.1. Таблиці

contingent.dbf’– контингент.

NUM_ZACH – char(8) – номер залік. книжки,

FAM – char (15) – прізвище,

IMJA – char (15) – ім'я,

OT – char (18) – по батькові,

DATA_ROJD – date – дата народження,

NAL_KOD – char (12) – ідентифікаційний код,

POL – char (1) – стать,

K_FAK – numeric – ідентиф. факультету, зв'язок з ‘facultet.dbf’ (KOD),

K_KURS – numeric – курс,

K_GRUP – numeric – ідентифікатор групи, зв'язок з ‘group.dbf’ (KOD),

KOD_SPEC – numeric – идентиф. спец-ті, зв'язок з ‘spec.dbf’ (KOD_SPEC),

INDEX_DO – numeric – адреса, індекс,

STRANA – char (15) – адреса, країна,

NAME_OBL – numeric(20) – адреса, область,

NAME_RAJ – char (20) – адреса, район,

NAME_GOR – char (20) – адреса, назва міста,

SELO – char (15) – адреса, назва села,

NAME_UL – char (25) – адреса, назва вулиці,

NOM_DOM – char (5) – адреса, номер будинку,

NOM_KORP – char (3) – адреса, номер корпусу,

NOM_KW – char (3) – адреса, номер квартири,

DOM_TEL – char (8) – домашній телефон.

facultet.dbf’– факультети.

KOD – numeric – ідентифікатор факультету,

NAIM – char (36) – назва факультету,

ABR_FAK – char (5) – абревіатура факультету.

group.dbf’– групи.

KOD – numeric – ідентифікатор групи,

NAIM – char (10) – назва групи.

spec.dbf’– спеціальності.

KOD_SPEC – numeric – ідентифікатор спеціальності,

NAIM_SPEC – char (36) – назва спеціальності,

ABR_SP – charr (7) – абревіатура спеціальності.

5. Порядок виконання роботи

Уся необхідна інформація міститься в електронному вигляді в папці ISU, яку ви повинні взяти у викладача. Дана папка містить папки Finance і Deanery. Папка Finance містить наступні файли:finance.gdb– база даних фінансової системи, rfunc.dll – бібліотека зовнішніх функцій. Папка Deanery містить дані підсистеми «Деканат».

Для виконання контрольної роботи рекомендується використовувати інструментарій розробки Delphi. Для доступу до бази finance.gdb необхідно, щоб на робочому місці був встановлений сервер баз даних InterBase (Firebird). Для виконання роботи потрібно використовувати зовнішні функції бібліотеки rfunc, для цього необхідно rfunc.dll покласти в папку udf встановленого сервера.

  1. Створити проект у Delphi.

  2. Підключитися до бази даних підсистеми «Деканат», використовуючи компонент Query – заповнити SQL, розкриваючи коди всіх необхідних довідників.

Наприклад:

select A.*, G.NAIM from ‘contingent.dbf’ A, ‘group.dbf’ G where A.K_GRUP = G.KOD

Використовуючи зв'язування компонентів Query  DataSource  DBGrid вивести дані для перегляду.

  1. Реалізувати вибір особових справ студентів по параметру свого варіанту. Для цього в SQL запит необхідно ввести умову відбору (параметр у запиті використовується з двокрапкою).

Наприклад:

select A.*, G.NAIM from ‘contingent.dbf’ A, ‘group.dbf’ G where A.K_GRUP = G.KOD and A.K_KURS = :COURSE,

де :COURSE введений нами параметр. На кнопку «Вибрати» підключаємо код обробки даного параметра.

  1. Підключитися до бази даних підсистеми «Фінанси». У компоненті IBDatabase прописати шлях до бази даних, встановити SQLDialect у 3, компонент IBTransaction зв'язати з IBDatabase, компонент IBDataSet зв'язати з IBDatabase, IBTransaction і заповнити SelectSQL.

Наприклад:

select * from contingents,

але розкривши коди всіх необхідних довідників. Використовуючи зв'язування компонентів IBDataSet  DataSource  DBGrid вивести дані для перегляду.

  1. Для підсистеми «Фінанси» розробити збережену процедуру для обробки особової справи студента та створити допоміжну таблицю для перекодування кодів спеціальностей.

Наприклад:

create table IN21_Table_Ivanov

(

NEW_ID int not null,

OLD_ID int not null,

primary key (NEW_ID, OLD_ID)

)

set term ^ ;

create procedure IN21_Procedure_Ivanov

(

NUM_ZACH integer,

F_FIO char(30),

I_FIO char(30),

O_FIO char(30),

D_O_B date,

ID_CODE char(15),

ID_DIV integer,

ID_PROFS integer,

NAME_GROUP char(20),

COURSE integer

)

returns (RESUT integer)

as

begin

.

.

.

end^

set term ; ^

Функціональність збереженої процедури:

  • обробити параметри, що передають прізвище, ім'я, по батькові відповідно до постановки задачі (краще оформити у виді окремої процедури),

  • отримати новий код спеціальності із допоміжної таблиці,

  • перевірити коректність даних. Дані будемо вважати некоректними, якщо не визначений (is null) хоча б один з параметрів, що визначають: прізвище, ім'я, по батькові, дату народження, факультет, спеціальність. Якщо дані некоректні, то вихідному параметру надати значення номера залікової книжки та вийти з процедури,

  • перевірити наявність даних у таблиці Contingents по вторинному ключу,

  • якщо даних немає, то додати, якщо є то обновити. При додаванні даних для отримання значення внутрішнього ключа використовувати значення генератора. Поля LAST_DATE, LAST_USER у таблиці Contingents заповнювати значеннями з сервера current_timestamp, current_user,

  • формувати вихідний параметр із процедури для подальшого обробки статистики (додано, модифіковано, некоректні дані).

  1. З клієнтського програмного модулю доступ до збереженої процедури організувати за допомогою компонента IBSQL, зв'язати його з IBDatabase, IBTransaction і заповнити SQL.

Наприклад:

execute procedure IN21_Procedure_Ivanov (:NUM_ZACH, :F_FIO, :I_FIO, :O_FIO, :D_O_B, :ID_CODE, :ID_DIV, :ID_PROFS, :NAME_GROUP, :COURSE),

  1. Подальша реалізація залежить від методу передачі даних.

Синхронна передача даних: на кнопку «Виконати» підключаємо код обробки. Починаючі з першої строки відібраних (у залежності від варіанта) даних підсистеми «Деканат» організуємо цикл обходу усіх відібраних строк. На кожнім кроці параметрам збереженої процедури встановлюємо значення поточної особової справи, виконуємо процедуру. Зчитуємо й обробляємо вихідний параметр.

Асинхронна передача даних: на кнопку «Вивантажити» підключаємо код обробки. Починаючі з першої строки відібраних (у залежності від варіанта) даних підсистеми «Деканат» організуємо цикл обходу усіх відібраних строк. На кожнім кроці створюємо файл, записуємо в нього значення поточної особової справи. Рекомендується використовувати IniFile.

На кнопку «Завантажити» підключаємо код обробки. Через компонент OpenDialog вибираємо файли, організуємо цикл обходу всіх обраних файлів. На кожнім кроці параметрам збереженої процедури встановлюємо значення поточного файлу, виконуємо процедуру. Зчитуємо й обробляємо вихідний параметр.

  1. Вивести статистику виконання у виді:

ДоданоХ рядків

МодифікованоУ рядків

Некоректні дані– список номерів залікових книжок особових справ студентів.

Соседние файлы в папке інтегровані_системи_управління(5курс)Хоменко