Анотація: Ця лекція детально, крок за кроком, описує створення програми для адміністрування сервера InterBase. Розглянуто роботу компонентів IBBackupService, IBRestoreService і IBSecurityService вкладки InterBase Admin палітри компонентів.
Дана лекція дозволить вивчити способи адміністрування баз даних програмно, з проекту Delphi. Адже може трапитися, що ви будете писати програму і проектувати базу даних "на замовлення", для якої-небудь невеликої фірми. Така фірма. як правило, не може дозволити собі мати в штаті професійного програміста і (або) адміністратора. У подібних фірмах роль адміністратора бере на себе один із співробітників, який є більш-менш досвідченим користувачем. Навчити такого користувача премудростям і тонкощам роботи з утилітою IBConsole непросто, ще складніше навчити його користуватися утилітами командного рядка. І тут нам на допомогу приходить набір компонентів з вкладки "InterBase Admin" палітри компонентів. який входить в стандартний склад Delphi. За допомогою цих компонентів можна створити просте додаток. яке буде виконувати адміністративні функції з базами даних, і з яким зможе працювати будь-який користувач.
Розробка програми AdminIB
Отже, наше завдання: створити додаток. яке дозволить регулярно робити резервну копію бази first.gdb як в ручному, так і в автоматичному режимі. Також додаток. в разі необхідності, має вміти відновлювати базу даних з резервної копії, і зберігати лог-файли про копіювання і відновлення. У разі якихось проблем, адміністратор надішле вам ці логи, за якими ви зможете визначити проблему. Також програма повинна вміти додавати нових користувачів, видаляти або редагувати старих. Зрозуміло, користувача SYSDBA ми видаляти не дозволимо.
Переконаємося, що сервер InterBase у нас працює, і завантажуємо Delphi. Виділимо форму, в властивість Name якої впишемо fMain. а в властивість Caption - "Адміністрування бази даних First.gdb". Збережемо проект в окрему папку, модулю дамо ім'я Main. а проекту в цілому - AdminIB. Непогано було б відразу встановити властивість BorderStyle в bsDialog. щоб програма не могла змінювати розміри, а властивість Position - в poDesktopCenter.
Реалізація резервного копіювання
Переходимо на вкладку Win32 Палітри компонентів. знаходимо і встановлюємо на форму компонент PageControl (кожна задача буде на своїй вкладці). Перейменуємо отриманий PageControl1 в PC1 для стислості коду, а властивості Align дамо значення alClient.
Зразковий вид вкладки дивіться на малюнку:
У правій частині панелі помістіть компонент Label. Щоб компонент міг містити багаторядковий текст, властивість AutoSize переведіть в False. а властивість WordWrap - в True. У властивості Caption напишіть текст "Час запуску автоматичного резервного копіювання:", і слід регулювати розміри, як на малюнку.
Під панеллю встановіть компонент Memo. Властивість Align встановіть в alClient. властивість ScrollBars в ssVertical. і не забудьте очистити від тексту властивість Lines.
Компонент IBBackupService призначений для створення резервних копій бази даних InterBase. Цей компонент дозволяє робити різні настройки резервного копіювання, у залежності від того, які параметри в властивості Options включені.
Для цього в розділі Private модуля головної форми опишемо функцію GetName: