- •Модуль 1 Тема 1. Вступ до sql. Синтаксис sql. Типи даних.
- •1. Вступ до sql.
- •Функції sql:
- •Роль sql
- •Переваги sql:
- •Синтаксис sql.
- •Типи даних.
- •1.3.1. Команди
- •1.3.2. Імена
- •1.3.3. Типи даних
- •1.3.4. Константи
- •1.3.4.1. Числові константи
- •1 .3.4.2. Літерні рядки
- •1.3.4.3. Константи дати і часу
- •1.3.4.4. Іменовані константи
- •1.3.5. Вирази
- •1.3.6. Вбудовані функції
- •Тема 2. Створення баз даних
- •Мова визначення даних
- •2. Створення бази даних
- •Тема 3. Створення таблиць
- •1. Команда створення таблиці.
- •2. Заборона значення null за допомогою обмеження not null
- •Тема 4. Вставка стрічок з допомогою оператора insert. Вилучення стрічок з допомогою оператора delete, редагування стрічки з допомогою команди update.
- •Вставка рядків за допомогою команди insert.
- •Додавання рядка за допомогою положення стовпця
- •Додавання рядка за допомогою назв стовпців
- •Додавання рядків з однієї таблиці в іншу
- •Зміна рядків за допомогою команди update.
- •Зміна рядків
- •Видалення рядків за допомогою команди delete
- •Видалення рядків
- •Тема 5. Оператор select
- •Оператор select.
- •Обчислювальні стовпчики. Альтернативне ім’я стовпчику.
- •Порівняння значення стовпчика із константою
- •Правила виконання однотабличних запитів на вибірку
- •Тема 6. Комбінування умов з допомогою операторів and, or, not. Порівняння по шаблону. Порівняння з діапазоном. Сортування стрічок з допомогою речення order by.
- •Порівняння значень виразів має наступну синтаксичну діаграму:
- •Тема 7. Створення псевдонімів. З’єднання таблиці із собою. Вибір даних з кількох таблиць
- •1. Створення псевдонімів.
- •2. З’єднання таблиці із собою.
- •3. Просте з’єднання таблиць (з’єднання за рівністю)
- •Запити з використанням відношення „головна – підлегла” таблиці (предок – нащадок)
- •3. Запити на вибірку до трьох і більше таблиць
- •4. Запити на об’єднання
- •Тема 8. Введення обмежень в базах даних
- •1. Види обмежень в базі даних.
- •Основні принципи роботи з обмеженнями
- •Присвоєння назви обмеженню
- •2. Первинний і унікальний ключі.
- •3. Зовнішні ключі.
- •4. Обмеження check
- •5. Вилучення обмежень.
- •Тема 9. Використання збережуваних процедур в базах даних. Використання генераторів ключів у базах даних в InterBase. Використання тригерів у базах даних.
- •1. Визначення збережуваної процедури.
- •1.2. Цикли й оператори розгалуження.
- •2. Створення генераторів.
- •2.1. Індекси.
- •2.2. Обробка виключень і помилок.
- •3. 1.Означення тригера.
- •3.2. Приклад тригера.
- •3.3. Контекстні змінні.
- •Тема 10. Безпека в базах даних
- •1. Користувач InterBase.
- •3. Організація користувачі у групи за допомогою ролей.
- •4. Права. Роздача прав.
- •5. Анулювання прав.
- •Модуль 2 Тема 11. Оператор exists. Сумування і групування даних.
- •1.1. Оператор exists.
- •1.2. Використання exists з співвіднесеними підзапитами.
- •1.3. Комбінація оператора exists і з’єднання.
- •1.4. Використання not exists.
- •1.5. Використання складних підзаписів з оператором exists.
- •2.1. Агрегатні (статистичні) функції
- •2.2. Правила опрацювання значення null агрегатними функціями:
- •2.3.Опрацювання унікальних записів агрегатними функціями
- •2.4. Агрегатні функції і значення null
- •3.1. Групування записів
- •3.2. Секція having – умова відбору груп
- •3.3. Обмеження на умову відбору груп
- •3.4. Значення null і умова відбору груп
- •3.5. Секція having без секції group by
- •Тема 12. З’єднання з базою даних. Використання збережуваних процедур в Delphi
- •1. З’єднання з сервером
- •2. Використання збережуваних процедур в Delphi.
- •Компонент tStoredProc.
- •Тема 13. Використання механізму транзакцій компонента Database. Керування транзакціями
- •Тема 14. Сервер баз даних InterBase і компоненти InterBase Express.
- •1. Сервер баз даних InterBase і компоненти InterBase Express
- •2. Механізм доступу до даних InterBase Express
- •3. Компонент tibDatabase.
- •Тема 15. Виконання запитів за допомогою компонента tibDataSet
- •1. Вибірка даних з таблиці.
- •2. Редагування даних за допомогою візуальних компонентів.
- •3. Програмне редагування даних.
- •Тема 16. Підпорядковані запити в таблицях Механізм master-detail
- •Література
Тема 14. Сервер баз даних InterBase і компоненти InterBase Express.
-
Сервер баз даних InterBase і компоненти InterBase Express
-
Механизм доступу до даних InterBase Express
-
Компонент TIBDatabase.
1. Сервер баз даних InterBase і компоненти InterBase Express
В Delphi 5 з’явилася нова сторінка Палітри компонентів, що містить компоненти доступу до даних, адаптовані для роботи з сервером InterBase. Компоненти з набору InterBase Express призначені для роботи з сервером InterBase версії не нижче 5.5.
Їх перевага полягає в реалізації всіх функцій за рахунок прямого звертання до API InterBase. Завдяки цьому суттєво підвищилась швидкість роботи компонентів. Окрім цього, компоненти InterBase Express не потребують посередництва BDE, який сповільняє роботу самих компонентів і програм в цілому. Нові компоненти надають розробнику нові можливості.
-
Покращене керування транзакціями (для цього тепер призначено окремий компонент TIBTransaction).
-
Нові компоненти доступу до даних, які дозволяють краще розв’язувати дуже поширені задачі програмування (компоненти TIBDataSet, TIBSQL).
-
Можливість одержання відомостей про стан бази даних без прямого звертання до її системних таблиць (компонент TIBDatabaseInfo).
-
Відслідковування стану процесів виконання запитів (компонент TIBSQLMonitor).
З точки зору розробника, за виключенням декількох нових властивостей, методика використання цих компонентів в програмах БД не відрізняється від стандартної методики. Довільний новий компонент, що інкапсулює набір даних, через компонент TDataSource можна підключити до довільного стандартного компоненту відображення даних.
2. Механізм доступу до даних InterBase Express
В клієнтских прикладних програмах Delphi з’єднання з сервером БД здійснює компонент TDatabase. Його аналогом з набору InterBase Express є компонент TIBDatabase.
Так як новий механізм доступу до сервера суттєво відрізняється від стандартного, компонент TDatabase виявився розділеним на два: TIBDatabase і TIBTransaction.
Для створення клієнт/серверної програми необхідно не лише мати працюючий сервер, але і інсталювати на клієнтських робочих місцях спеціальне програмне забезпечення, яке виконує з’єднання клієнтської програми з сервером.
Механізм доступу до даних InterBase Express використовує для звертань до сервера можливості клієнтського ПО InterBase. Якщо з даного комп’ютера доступні бази даних будь-якого сервера на платформі InterBase, то розглянуті тут компоненти можуть звертатися до цього сервера. При цьому не потрібно використовувати BDE.
В результаті все компоненти InterBase Express, що інкапсулюють набір даних, повинні звертатися до бази даних лише через компонент з’єднання TIBDatabase. Компоненти InterBase Express з метою пришвидшення виконання всіх функцій (в тому числі і для з’єднання) використовують API InterBase.
3. Компонент tibDatabase.
Оскільки для доступу до бази даних компонентам InterBase Express не потрібна BDE, то для створення з’єднання використовується всього одна властивість DatabaseName. В ній необхідно вказати повний шлях (включаючи ім’я сервера) до вибраного файла БД з розширенням gdb. При клацанні на кнопці властивості в Інспекторі об’єктів для цього можна скористатися стандартним діалогом вибору файла.
Компонент має власний редактор (викликається контекстним меню), який дозволяє задати значення основних властивостей, що забезпечують з’єднання з базою даних (User Name, Password, SQLRole, Character Set). Зокрема, необхідно вказати шлях до бази даних. Він включає в себе ім’я сервера і локальний шлях до бази даних на сервері. У випадку, коли сервер локальний, досить вказати лише шлях до бази даних.
Розглянемо випадок віддаленого сервера. Нехай InterBase встановлено в мережі на комп’ютері з мережевим іменем SERV_IB і доступний по протоколу TCP/IP. Нехай база знаходиться на сервері на диску E: у файлі ME_GDB.GDB. У даному випадку слід вказати тип підключення Remote, ім’я сервера SERV_IB, вибрати протокол TCP/IP, а шлях до бази даних встановити локальним відносно сервера, тобто Е:\ ME_GDB.GDB (тобто ми не задаємо мережевий шлях файла, а локальний).
Настройка з’єднання проводиться звичайним способом (як у компонента TDatabase). Для завдання вводимих при подключенні параметрів (ім’я користувача, пароль, схема, роль, мова) використовуються властивості Params і LoginPrompt. При завданні мови слід вказати параметр WIN-1251.
З’єднання підключається і відключаєть властивостю Сonnected. Властивість IdleTimer задає часовий інтервал до відключення невикористовуваного з’єднання.
В компоненті TIBDatabase відсутні засоби керування транзакціями, які винесені до окремого компоненту TIBTransaction. Властивість DefaultTransaction дозволяє задати транзакцію за замовчуванням. Змінюючи значення цієї властивості, можна в одному з’єднанні працювати з декількома транзакціями.
Довільна дія з базою даних відбувається у рамках тієї чи іншої транзакції. Робота з InterBase базується на явному керуванні транзакціями.
Компонент TIBTransaction інкапсулює засоби керування транзакцією для з’єднання з сервером InterBase.
Один компонент транзакції може працювати з декількома базами даних одночасно. Для цього використовується властивість DefaultTransaction відповідних компонентів з’єднання TIBDatabase.
Основною є властивість Params, в якій можна вказати рівень ізоляції транзакції. Один з чорирьох рівнів ізоляції можна вибрати за допомогою редактора компонента, який викликається з контекстного меню. Для більшості випадків рекомендується використовувати режим Read Commited, який дозволяє запитам в одній транзакції “бачити” зміни зроблені в контексті інших трансакцій.
TIBTransaction посилається на компонент бази даних за допомогою властивості DefaultDataBase. Якщо також вказати властивість DefaultTransaction у TIBDatabase, то в подальшому довільні компоненти, що посилаються на базу даних, будуть автоматично “підхоплювати” і вказану транзакцію.
Контрольні питання:
-
Що виконує компонент TIBDatabase і TIBTransaction?
-
Які властивості компонента TIBDatabase Ви знаєте?