- •Кременчук 2010 Розповсюдження і тиражування без офіційного дозволу Кременчуцького університету економіки інформаційних технологій і управління та авторів заборонено.
- •1 Мета та завдання дисципліни
- •2 Методичні вказівки до виконання лабораторних робіт
- •3 Завдання до лабораторніх робіт
- •3.1 Лабораторна робота № 1
- •1 Теоретичні відомості
- •2 Хід роботи
- •2.1 Створення бази даних
- •2.2 Реєстрація бази даних
- •2.3 Підключення до бази даних
- •2.4 Видалення бази даних
- •2.5 Отримання метаданих
- •2.6 Резервне копіювання і відновлення
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.2 Лабораторна робота № 2
- •1 Теоретичні відомості
- •1.1 Типи даних InterBase
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.3 Лабораторна робота № 3
- •1 Теоретичні відомості
- •1.1 Таблиці (Tables)
- •1.2 Індекси
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.4 Лабораторна робота № 4
- •1 Теоретичні відомості
- •1.2 Обмеження первинного ключа (Primary key)
- •1.2 Обмеження унікальності (Unique)
- •1.3 Обмеження зовнішнього ключа (Foreign keys)
- •1.4 Контрольні обмеження (Checks)
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.5 Лабораторна робота №5.
- •1 Теоретичні відомості
- •1.1 Генератори (Generators)
- •1.2 Бізнес-правила
- •1.3 Тригери (Triggers)
- •2. Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.6 Лабораторна робота №6
- •1 Теоретичні відомості
- •1.1 Додавання нових даних
- •1.2 Видалення існуючих даних
- •1.3 Оновлення існуючих даних
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.7 Лабораторна робота №7
- •1 Теоретичні відомості
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.8 Лабораторна робота №8
- •1 Теоретичні відомості
- •1.1 Представлення (Views)
- •1.2 Представлення, що модифікуються
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.9 Лабораторна робота №9
- •1 Теоретичні відомості
- •1.1 Процедури, що зберігаються (Procedures)
- •1.2 Види процедур, що зберігаються, в InterBase
- •2 Хід роботи
- •3 Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.10 Лабораторна робота №10
- •1 Теоретичні відомості
- •2 Компоненти доступу до даних
- •3 Хід роботи
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.11 Лабораторна робота №11
- •1 Теоретичні відомості
- •1.2 Компонент tibsql
- •2. Порядок виконання
- •3. Звіт про виконання роботи
- •4. Контрольні питання
- •Перелік рекомендованої літератури
1.2 Види процедур, що зберігаються, в InterBase
У InterBase існує два типи процедур, що зберігаються:
1. Процедури вибору даних – можуть використовуватися замість таблиць в операторові SELECT.
2. Виконувані процедури – виробляють які-небудь дії з базою даних і не зобов'язані повертати дані. Викликаються за допомогою команди EXECUTE PROCEDURE.
Відмінність в роботі цих двох видів процедур, що зберігаються, полягає в тому, що процедури вибірки даних зазвичай повертають безліч наборів вихідних параметрів, згрупованих відрядковий, а виконувані процедури можуть або взагалі не мати параметрів, або повертати лише один набір вихідних параметрів, тобто один рядок параметрів.
Обидва типи процедур мають однаковий синтаксис створення і формально нічим не відрізняються. Будь-яка здійснима процедура, якщо вона має вихідні параметри, може бути викликана в запиті SELECT, будь-яка процедура вибору даних – за допомогою EXECUTE PROCEDURE. Різниця полягає в меті розробки процедур кожного виду. Процедура вибору даних спеціально створюється для виклику з оператора SELECT, а виконувана процедура – для виклику оператором EXECUTE PROCEDURE.
Приклад створення процедури вибору даних:
-- повертає перелік службовців, що працюють у відділі
-- який передається як вхідний параметр:
CREATE PROCEDURE Test_Procedure (DeptNo CHAR(3))
RETURNS
(
Number INT -- порядковий номер
EmpNo SMALLINT -- ідентифікатор службовця
FirstName VARCHAR(15) -- ім'я LastName
VARCHAR(20)-- прізвище
) AS
BEGIN
Number = 0;
FOR
SELECT EMP_NO, FIRST_NAME, LAST_NAME
FROM Employee
WHERE DEPT_NO = :DeptNo
INTO :EmpNo, :FirstName, :LastName
DO
BEGIN
Number = Number + 1;
SUSPEND;
END
END;
Кожна процедура вибору даних повинна обов'язково містити оператор SUSPEND, який передає набір вихідних параметрів в те місце, звідки викликали процедуру.
Приклад виклику процедури вибору даних:
SELECT * FROM Test_Procedure('000');
Приклад створення виконуваної процедури:
CREATE PROCEDURE MakeGenerator (GenName VARCHAR(31)
GenValue INTEGER )
AS
DECLARE VARIABLE Sql VARCHAR(256);
BEGIN
Sql = 'CREATE GENERATOR ' || GenName || ';';
EXECUTE STATEMENT Sql;
Sql = 'SET GENERATOR ' || GenName || ' TO ' ||
CAST(GenValue AS VARCHAR(10))|| ';';
EXECUTE STATEMENT Sql;
END;
Синтаксис оператора виклику процедури:
EXECUTE PROCEDURE ІмяПроцедури
[Параметр [, Параметр ...]]
[RETURNING_VALUES Параметр [, Параметр ...]];
Приклад виклику виконуваної процедури:
EXECUTE PROCEDURE MakeGenerator 'Test_Gen', 1;
2 Хід роботи
Операції по створенню процедур, що зберігаються, за допомогою виконання сценарію були вивчені в ході виконання попередніх лабораторних робіт. Для створення процедури, що зберігається, за допомогою програми "IB Expert" в діалоговому режимі необхідно виконати наступні дії:
1. Підключитися до бази даних і виконати команду головного меню "Database(New Procedure". В результаті відкриється вікно "Procedure" для створення процедури (Рисунок 9.1).
2. У цьому вікні в правому верхньому кутку слід ввести ім'я процедури (замінивши ім'я "NEW_PROCEDURE").
3. При натиснутій кнопці [Input Parameters] додати вхідні параметри. Для цього знаходячись в сітці, розташованій в середній частині вікна, натискувати клавішу [Insert] або [Стрілка вниз]. Після цього ввести в новому рядку ім'я вхідного параметра (на рисунку 9.1 ім'я вхідного параметра – "PARAM1") і за допомогою показаного на рисунку 9.1 випадного списку вибрати його тип.
4. При натиснутій кнопці [Output Parameters] так само додати вихідні параметри.
Рисунок 9.1 – Вікно створення процедури, що зберігається, в режимі діалогу
5. При необхідності так само можна додати локальні змінні (натискувати для цього кнопку [Variables]).
6. У полі введення, розташованому в нижній частині вікна, ввести тіло процедури.
7. Натискувати кнопку [Compile Procedure] (Ctrl+F9).
Після того, як процедура, що зберігається, буде створена, її можна легко змінити, використовуючи для цього, як і для тригерів, або звичайний режим, коли можна змінити всього оператора створення процедури, або "ледачий" – коли вручну міняється лише тіло процедури, а вхідні і вихідні параметри і локальні змінні створюються і змінюються в режимі діалогу.
Перемикання між двома режимами перегляду і редагування процедури, що зберігається, показаними на рисунку 9.2. і 9.3 виробляється кнопкою [Lazy mode on/off].
