- •Інформаційне забезпечення сапр
- •7.080402 "Інформаційні технології проектування"
- •Загальні зауваження до проведення лабораторних робіт
- •1. Основні засоби для роботи з базами даних в системі “клієнт – сервер”
- •2. Доступ до даних з додатків delphi
- •3. Компоненти для роботи з базою даних
- •4. Запуск локального серверу interbase
- •5. Даталогічна модель бази даних
- •Порядок виконання роботи Реєстрація серверу
- •Створення нового користувача
- •Створення бази даних та підключення до неї
- •Створення таблиць бд
- •Визначення цілісності посилання між таблицями бд
- •Виконання Script-файлу
- •Лабораторна робота №3 Розробити клієнтський додаток для роботи з базою даних
- •Завдання:
- •Порядок роботи і рекомендації до її виконання
- •Властивості компонента tDatabase
- •Розробка форми
- •Оновлення переглядів
- •Використання check option
- •Порядок виконання:
- •Лабораторна робота № 5 Розробка процедур, що зберігаються
- •Завдання:
- •Порядок роботи і рекомендації до її виконання Створення процедур, що зберігаються
- •Виклик процедур вибору з додатку клієнта
- •Порядок виконання:
- •Звернення до процедур дії. Компонент tStoredProc
- •Визначення заголовку тригера
- •Забезпечення каскадних дій
- •Використання генераторів
- •Лабораторна робота № 7 Використання транзакцій, захист бази даних
- •Завдання:
- •Порядок роботи і рекомендації до її виконання
- •Перелік рекомендованої лiтератури
- •Навчально-методичне видання організація баз даних та знань
- •7.080402 "Інформаційні технології проектування"
Порядок роботи і рекомендації до її виконання
Транзакціями називається група дій, яка переводить БД з одного цілісного стану в інший і виконується за принципом “або всі, або жодного”. Результати виконання транзакції записуються в БД тільки в тому випадку, якщо вся транзакція закінчилася успішно.
Клієнтська програма керує транзакціями за допомогою трьох методів компонента TDatabase: StartTransaction (починає транзакцію), Commit (підтверджує транзакцію) і Rollback (відміняє всі зміни, зроблені з моменту початку транзакції):
Database1.StartTransaction; // Початок транзакції
. . . // Будь-які зміни в будь-яких таблицях
try
Database1.Commit // Підтвердження змін
except
Database1.Rollback // Відкат, якщо підтвердити зміни не вдалося
end;
Компонент TDataBase за допомогою своєї властивості TransIsolation забезпечує необхідний рівень ізоляції транзакцій. Ізолювати транзакції необхідно при одночасному доступі до одних і тих же даних декількох користувачів.
Property TransIsolation: TTransIsolation;
Рівень ізоляції транзакцій Dirty Read дозволяє читати всі поточні зміни, що проводяться іншими транзакціями до їх фіксації. Якщо поточна транзакція відмінить зроблені зміни, інші транзакції будуть бачити недостовірні дані.
Рівень ізоляції транзакцій Read Commited дозволяє читати тільки зафіксовані зміни, що проводяться іншими транзакціями. Це значення прийнято по умовчанню.
Рівень ізоляції транзакцій Repeatable Read після початку транзакції не дозволяє читати навіть підтверджені зміни, що проводяться іншими транзакціями в прочитаних даних. Отже при повторному читанні на протязі даної транзакції одного й того ж запису будуть одержані попередні результати, навіть якщо інші транзакції їх вже змінили.
Приклад: Робота з транзакціями.
Рис. 6.11. Форма для роботи з транзакціями.
Лабораторна робота №8
Створення серверу додатків
Мета: Вивчення методів та технології створення серверу додатків.
Завдання:
розробити сервер додатків;
виконати операції додавання, вилучення, модифікації над даними з клієнтських додатків.
Зміст звіту:
опис застосування з зазначенням встановлених значень властивостей компонентів;
лістинги розроблених процедур та їх аналіз;
висновки по роботі.
Порядок роботи і рекомендації до її виконання
Почати нове застосування, яке буде перетворино в сервер застосувань.
З а допомогою кнопки New панелі інструментів або команді File New Other відкрити вікно сховища об’єктів Delphi і на вкладці Multitier двічі клацнути на позначку Remote Data Module.
У відповідь на запит експерту введіть ім’я класу Server.
Розташуйте у вікні Server компонент TDatabase. У списку його властивості AliasName оберіть псевдонім вашої бази даних та установіть SRV в його властивість DatabaseName.
У вікні дерева об’єктів розташуйте на Database1 компонент Table1 і оберіть таблицю у списку властивості TableName. Присвойте компоненту ім’я таблиці і відкрийте набор даних (НД), встановивши в його властивість Activ значення True.
У вікні дерева об’єктів розмістіть на НД вашої бази даних компонент TDataSetProvider (вкладка Data Access палітри компонентів Delphi). Проміжний результат показаний на рис. 6.13.
Збережіть модуль Unit1 під ім’ям RS0, модуль Unit2 - під іменем RS1, а сам проект – під іменем RServer. Запустіть програму, щоб зареєструвати сервер в реєстрі Windows, і закрийте вікно Form1 одразу після того, як воно з’явиться на екрані. Сервер застосувань готовий до роботи.
Т епер необхідно створити клієнта. Оберіть команду File New Application.
Розташуйте на формі компоненти TSocketConnection, TClientDataSet (обидва компоненти знаходяться на вкладці Data Snap), TDataSource, TDBGrid, TPanel, TButton та TDBNavigator.
Змініть їх властивості наступним чином:
Panel1.Align = alBottom;
DBGrid1.Align = alClient.
У вікні інспектора розкрийте список властивості Host компоненту SocketConnection1 та оберіть ім’я сітьової машини, на якій розташован сервер застосувань. Якщо ваш сервер застосувань працює на локальному комп’ютері, розташуйте у цю властивість значення localhost.
Робота з сокетами підтримується спеціальною утілітою SCTSRVR.EXE, яка знаходиться в каталозі BIN каталогу розташування Delphi. Запустіть її на машині серверу – в правій частині панелі інструментів з’явиться її значок.
Розкрийте список властивості ServerName компоненту SocketConnection1 та оберіть пункт RServer.Server. Установіть значення True у властивість Connected цього компоненту (в цей момент повинен автоматично стартувати сервер застосувань).
Для компоненту ClientDataSet1 оберіть у списку властивості RemoteServer ім’я компоненту SocketConnection1, а в списку властивості ProviderName – ім’я DataSetProvider1 (цей компонент на сервері застосувань експортує НД вашої бази даних).
Зв’яжіть компонент DataSource1 з компонентами ClientDataSet1, DBGrid1; компонент DBNavigator1 – з компонентом DataSource1, а компонент DBImage1 – з компонентом DataSource1 та полем Graphic (властивість DataField). Відкрийте набір ClientDataSet1 – в сітці повинні з’явитися дані.