Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fondovi-lekcii.doc
Скачиваний:
20
Добавлен:
10.11.2018
Размер:
4.09 Mб
Скачать

Тема 14. Сервер баз даних InterBase і компоненти InterBase Express.

  1. Сервер баз даних InterBase і компоненти InterBase Express

  2. Механизм доступу до даних InterBase Express

  3. Компонент 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, то в подальшому довільні компоненти, що посилаються на базу даних, будуть автоматично “підхоплювати” і вказану транзакцію.

Контрольні питання:

  1. Що виконує компонент TIBDatabase і TIBTransaction?

  2. Які властивості компонента TIBDatabase Ви знаєте?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]