- •Лабораторна робота № 1 Тема роботи: Реєстрація та створення баз даних в InterBase.
- •1. Керуюча консоль InterBase.
- •2. Реєстрація бази даних в InterBase.
- •3. Створення бази даних в InterBase.
- •Контрольні запитання
- •Лабораторна робота № 2 Тема роботи: Створення таблиць в базах даних в InterBase.
- •1. Типи даних InterBase.
- •2. Створення таблиці.
- •Контрольні запитання
- •Лабораторна робота № 3 Тема роботи: Введення обмежень в базах даних в InterBase.
- •1. Види обмежень в базі даних.
- •2. Первинний і унікальний ключі.
- •3. Зовнішні ключі.
- •4. Обмеження check
- •5. Вилучення обмежень.
- •Контрольні запитання
- •Лабораторна робота № 4 Тема роботи: Використання генераторів ключів в базах даних в InterBase.
- •Створення генераторів.
- •2. Індекси.
- •Контрольні запитання
- •Лабораторна робота № 5 Тема роботи: Використання тригерів в базах даних в InterBase.
- •Означення тригера.
- •Приклад тригера.
- •3. Контекстні змінні.
- •Контрольні запитання
- •Лабораторна робота № 6 Тема роботи: Безпека в InterBase.
- •1. Користувачі.
- •3. Права.
- •4. Роздача прав.
- •5. Організація користувачі у групи за допомогою ролей.
- •6. Анулювання прав.
- •Контрольні запитання
- •Практична робота № 1 Тема роботи: Використання компоненту Database.
- •З’єднання з сервером
- •Контрольні запитання
- •Практична робота № 2 Тема роботи: Використання головної та підлеглої таблиць InterBase засобами Borland Delphi.
- •Контрольні запитання
- •Практична робота № 3 Тема роботи: Використання механізму транзакцій компонента Database.
- •Керування транзакціями.
- •Контрольні запитання
- •Практична робота № 4 Тема роботи: Використання компонент InterBase Express для підключення до сервера.
- •1. Сервер баз даних InterBase і компоненти InterBase Express
- •2. Механізм доступу до даних InterBase Express
- •3. Компонент tibDatabase.
- •Контрольні запитання
- •Практична робота № 5 Тема роботи: Виконання запитів за допомогою компонента tibDataSet.
- •Вибірка даних з таблиці.
- •2. Редагування даних за допомогою візуальних компонентів.
- •3. Програмне редагування даних.
- •Контрольні запитання
- •Практична робота № 6 Тема роботи: Виконання механізму Master-detail в компонентах tibDataSet.
- •Механізм master-detail.
- •Контрольні запитання
- •Література
2. Редагування даних за допомогою візуальних компонентів.
В запущеному на виконання прикладі редагувати елементи за допомогою компонента DBGrid1 безпосередньо не вдасться, оскільки ми задали лише властивість SelectSQL. Для можливості модифікації необхідно виконати SQL-запит UPDATE, задавши такі команди у властивості ModifySQL:
update EMPLOYEE set
EMP_NO = :EMP_NO,FIRST_NAME = :FIRST_NAME, LAST_NAME = :LAST_NAME, PHONE_EXT = :PHONE_EXT, HIRE_DATE = :HIRE_DATE, DEPT_NO = :DEPT_NO,
JOB_CODE = :JOB_CODE, JOB_GRADE = :JOB_GRADE, JOB_COUNTRY = :JOB_COUNTRY, SALARY = :SALARY
Where EMP_NO = :EMP_NO
Як бачимо, замість реальних значень у цьому запиті вказані параметри, назви яких співпадають з назвами реальних полів. Таким чином, коли користувач змінить значення полів конкретного запису, то IBDataSet1 сам задасть значення всіх параметрів, взявши їх із відповідних полів. Запит ModifySQL виконується і лише після цього зміни зроблені користувачем появляться у базі даних.
Аналогічна послідовність пов’язана з запитами у властивостей InsertSQL та DeleteSQL – вони виконуються при вставленні нового запису і вилучені запису.
InsertSQL:
insert into EMPLOYEE
(EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO,
JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY)
values
(:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE,
:DEPT_NO, :JOB_CODE, :JOB_GRADE, :JOB_COUNTRY, :SALARY)
DeleteSQL
delete from EMPLOYEE
where EMP_NO = :EMP_NO
Існує ще одна важлива особливість при створенні таких запитів. Після виконання довільної модифікуючої дії IBDataSet1 виконує запит вказаний у властивості RefreshSQL, який у нашому випадку має вид:
Select
EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE,
JOB_COUNTRY, SALARY, FULL_NAME
from EMPLOYEE
where EMP_NO = :EMP_NO
Зміст даного запиту стає очевидним, якщо допустити в базі даних існування тригерів для таблиці EMPLOYEE, які модифікують значення полів. Оскільки зміни відбуваються у самій базі даних відразу після модифікації, то без повторного перечитування запису (тобто без Select модифікованого запису або вставленого запису) ми не взнаємо про ті зміни, які були зроблені в тригерах.
IB надає можливість швидко згенерувати необхідні модифікаційні запити за допомогою редактора IBDataSet, який викликається за допомогою контекстного меню. Вибравши із списка Table Name нашу таблицю, сформуємо списки Key Fields і Update Fields. В списку Key Fields необхідно виділити ті поля, які будуть формувати умову WHERE в запитах. Очевидно, що це повинні бути поля, які визначають первинний ключ у таблиці. Якщо такий ключ існує для вибраної таблиці, його можна помітити просто натиснувши на кнопку Select Primary Keys. В списку Update Fields необхідно виділити ті поля, які користувач потім може редагувати. На рисунку видно, що поле FULL_NAME не включено до списку, оскільки це CALCULATED-поле і його значення не можна змінювати.
Залишається лише натиснути кнопку Generate SQL, щоб одержати всі запити: InsertSQL, ModifySQL, DeleteSQL, RefreshSQL.
