
- •Лабораторна робота № 1 Тема: "Створення шаблонів форм і їх використання в нових проектах"
- •Лабораторна робота № 2 Тема: "Прийоми обробки однотипних компонентів "
- •Лабораторна робота № 3 Тема: Створення незалежних модулів для зберігання незалежних процедур
- •Лабораторна робота № 4 Тема: "Створення шаблонів компонентів"
- •Лабораторна робота № 5 Тема: "Створення динамічної бібліотеки процедур"
- •Лабораторна робота № 6 Тема: "Створення програм із зовнішніми компонентами"
- •Лабораторна робота № 7 Тема: "Створення інформаційної системи за технологією файлового сервера"
- •Лабораторна робота № 8 Тема: "Створення інформаційної системи за технологією клієнт/сервер"
- •Лабораторна робота № 9 Тема: "Робота з базами даних серверної субд"
- •Лабораторна робота № 10 Тема: "Обробка таблиці клієнт/серверної субд за допомогою запитів"
- •Лабораторна робота № 11 Тема: «Робота з com сервером Microsoft Word»
- •Лабораторна робота № 12 Тема: «Робота з com сервером Microsoft Excel»
- •Лабораторна робота № 13 Тема роботи: Створення довідкової системи та її інтеграція в програму
Лабораторна робота № 7 Тема: "Створення інформаційної системи за технологією файлового сервера"
Ціль роботи: одержати практичні навички по підключення графічного інтерфейсу до локальних СУБД, розміщених на файлових серверах
Хід роботи
1. Нехай ваш комп'ютер є файловим сервером. Для коректної роботи з ним необхідно:
визначити мережне ім'я комп'ютера;
визначити IP-адресу комп'ютера;
визначите максимальне число мережних підключень на даному комп'ютері;
зняти обмеження на кількість мережних підключень і переконатися, що обмеженя дійсно зняті.
Вказівки: Для виконання першого пункту необхідно виконати такі дії:
для визначення мережного імені в контекстному меню програми "Мій комп'ютер" виберіть команду "Властивості" і на вкладці "Ім'я комп'ютера" у рядку "Повне ім'я" прочитайте мережне ім'я вашого комп'ютера;
для визначення IP адреси виконайте команду Пуск – Виконати. У вікні введіть команду CMD і клацніть ОК. Відкриється вікно з командним рядком. У командному рядку введіть команду:
ipconfig
для перегляду максимальної кількості підключень на комп'ютері виконайте команду Пуск-Виконати, уведіть команду CMD і клацніть ОК. У результаті запуститься вікно з командним рядком. У командному рядку введіть команду:
net config server
і натисніть Enter. У результаті відобразитися інформація про параметри комп'ютера. У тому числі й максимальне число користувачів.
для зняття обмеження на число мережних підключень скачайте архів з файлами й розпакуйте його. Перезавантажте комп'ютер у безпечному режимі. Для цього на початку завантаження натисніть клавішу F8, у меню, що з'явиться, виберіть команду Безпечний режим і натисніть Enter. Після завантаження комп'ютера скопіюйте вміст архіву (теку System32) у теку Windows. Після цього перезавантажте комп'ютер ще раз, у командному рядку введіть команду
net config server
і переконайтеся, що обмеження зняті.
2. Створіть на комп'ютері загальну мережну теку.
Вказівки: Створіть нову теку з довільним ім'ям для зберігання БД. У контекстному меню теки виберіть команду Загальний доступ і безпека. Виберіть перемикач Відкрити загальний доступ до цієї теки. У полі Загальний ресурс уведіть ім'я Baza$ для створення схованої мережної теки. Клацніть на кнопці Дозволити й у стовпці Дозволити включіть прапорець Повний доступ.
Для перевірки доступу до теки запустіть програму Мій комп'ютер і в полі Адреса введіть команду:
\\ім'я_комп'ютера\baza$
і натисніть Enter.
3. У програмі Microsoft Access створити базу даних і зберегти її в загальну теку. База даних має одну таблицю для зберігання даних про студентів. Кожен студент описується властивостями:
код;
прізвище;
ім'я;
по-батькові;
група;
дата народження.
Заповніть таблицю 5 довільними записами.
Захистіть створену базу даних паролем.
Вказівки: Запустіть програму Microsoft Access, при створенні нової бази даних укажіть для зберігання вашу загальну теку, а ім'я БД уведіть латинськими буквами.
При проектуванні таблиці імена полів також називайте латинською.
Для захисту бази даних паролем запустіть Microsoft Access, клацніть на кнопці "Відкрити", укажіть створений вами файл БД, клацніть на стрілці праворуч від кнопки "Відкрити" і виберіть команду "Монопольно".
Після відкриття БД у монопольному режимі виконайте команду Сервіс - Захист - Задати пароль бази даних. У вікні, що з'явилося, двічі введіть пароль для захисту.
Через програму Мій комп'ютер спробуйте відкрити створений файл БД і переконайтеся, що запитується пароль.
4. У середовищі Delphi створіть форму для роботи з базою даних. На формі повинна відображатися сітка з даними й панель із кнопками керування даними.
Вказівки:
Підключення до БД
Для підключення до бази даних нанесіть на форму компонент Adoconnection (ADO). Для компонента задайте властивості: Loginprompt=false, Connected=false, для властивості Connectionstring клацніть на кнопці Build, виберіть драйвер БД "Microsoft Jet. . ." і клацніть на кнопці "Далі". Уведіть повний мережний шлях до бази даних у форматі:
\\ім'я_комп'ютера\baza$\ім'я _файлу_БД.mdb
або
\\IP-адреса_комп'ютера\baza$\ім'я _файлу_БД.mdb
Перейдіть на закладку "Усі", клацніть два рази на рядку "Jet OLEDB: Database Password" і введіть пароль, зазначений вами для захисту бази даних.
Поверніться на закладку "Підключення", клацніть на кнопці "Перевірити підключення" і переконайтеся, що зв'язок із БД установлюється коректно.
Підключення таблиці
Додайте на форму компонент Adotable (ADO). Для компонента задайте властивості: Connection=Adoconnection1, Tablename=ім'я таблиці з вашої БД.
Для коректного підключення таблиці при відкритті форми в події Oncreate форми вставте код:
procedure Tform1.Formcreate(Sender: Tobject);
begin
adotable1.Active:=true;
end;
При видаленні форми з пам'яті повинне виконуватися відключення від таблиці. Для цього в події Ondestroy форми вставте команду:
procedure Tform1.Formdestroy(Sender: Tobject);
begin
adotable1.Active:=false;
end;
Відображення даних із БД на формі
Нанесіть на форму компонент Datasource (Dataacces). Задайте властивості: Dataset=Adotable1.
Нанесіть на форму компонент Dbnavigator (Datacontrols) і задайте властивості: Align=albottom, Datasource=Datasource1.
Нанесіть на форму компонент Dbgrid (Datacontrols) і задайте властивості: Align=alclient, Datasource=Datasource1.
Запустіть вашу програму й переконайтеся, що дані з таблиць відображаються на формі. При цьому працюють усі кнопки панелі керування даними.
5. Шлях до бази даних повинен зберігатися в INI файлі. Якщо INI файлу немає або запис у файлі вказує на неіснуючий файл, то програма повинна відкривати вікно діалогу вибору файлу БД і зберігати шлях в INI файлі.
Вказівки: Підключіть модуль для роботи з INI файлом і модуль виклику Winapi функцій:
inifiles, shellapi
Для динамічного настроювання параметрів підключення до БД скопіюйте в буфер обміну значення властивості Connectionstring компонента Adoconnection.
У події Oncreate форми перед командою підключення таблиці введіть код настроювання параметрів підключення до БД через шлях з INI файлу
procedure Tform1.Formcreate(Sender: Tobject);
//описуємо змінну для роботи з INI файлом
var ini:tinifile;
//описуємо змінну для зберігання шляху до БД
baza:string;
//описуємо змінну для створення файлу, якщо його не буде
f:file;
begin
//якщо INI файл не існує
if not fileexists(extractfilepath(application.exename)+'settings.ini') then
begin
//то створюємо його на диску
assignfile(f,extractfilepath(application.exename)+'settings.ini');
rewrite(f);
closefile(f);
end;
//спочатку шлях до файлу БД не відомий
baza:='';
//створюємо змінну для роботи з INI файлом
ini:=tinifile.Create(extractfilepath(application.exename)+'settings.ini');
//якщо по записаному в INI файл шляху до БД є файл
if fileexists(ini.Readstring('Baza','Name',''))=true then
//то зчитуємо цей шлях і записуємо його в змінну
baza:=ini.Readstring('Baza','Name','')
//інакше
else
begin
//видаємо діалог відкриття файлу БД
//якщо зазначений у діалозі файл БД існує
if (opendialog1.execute=true) and (fileexists(opendialog1.filename)=true) then
begin
//записуємо шлях до файлу БД у змінну
baza:= opendialog1.filename;
//зберігаємо шлях до файлу БД в INI файл
ini.Writestring('Baza','name',baza);
end;
end;
//видаляємо з пам'яті змінну для роботи з INI файлом
ini.free;
//якщо шлях до файлу БД залишився не відомий
if baza='' then
//завершуємо роботу програми
exitprocess(0);
//настроюємо параметри підключення до БД
//зпочатку від'єднуємося від БД
Adoconnection1.Connected:=false;
//скопіюйте в буфер обміну вміст властивості Connectionstring
//між лапками вставте вміст буфера обміну
//знайдіть у тексті параметр, що задає пароль до БД, і вилучіть всі наступні параметри
// замість мережного шляху до файлу БД підставте значення змінної baza
//у вигляді: '+baza+'
Adoconnection1.Connectionstring:='тут потрібно вставити текст (див.вище)';
//відображаємо вікно форми поверх усіх вікон
Setwindowpos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
//знімаємо у форми ознаку відображення поверх усіх вікон
Setwindowpos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
Запустіть програму, переконайтеся, що при першому запуску запитується шлях до БД і створюється INI файл settings.ini. Запустіть програму ще раз і переконайтеся, що шлях більше не запитується, а читається з файлу.
Спробуйте перейменувати БД і запустити програму. Змінити шлях в INI файлі й запустити програму. Вилучити INI файл і запустити програму. У всіх випадках повинен запитуватися шлях до БД.
6. Скопіюйте папку із програмою й реалізуйте в копії зберігання шляху до БД через реєстр.
Вказівки: Відкрийте проект зі скопійованої папки.
Підключіть модуль для роботи з реєстром і модуль виклику Winapi функцій:
registry, shellapi
Для динамічного настроювання параметрів підключення до БД скопіюйте в буфер обміну значення властивості Connectionstring компонента Adoconnection.
У події Oncreate форми перед командою підключення таблиці введіть код настроювання параметрів підключення до БД через шлях з реєстру:
procedure Tform1.Formcreate(Sender: Tobject);
//описуємо змінну для роботи з реєстром
var reg:tregistry;
//описуємо змінну для зберігання шляху до БД
baza:string;
begin
//створюємо змінну для роботи з реєстром
reg:=tregistry.Create;
//указуємо розділ реєстру для роботи
reg.Rootkey:=hkey_local_machine;
//відкриваємо або створюємо гілку в реєстрі
reg.Openkey('software\dbase',true);
//спочатку шлях до файлу БД не відомий
baza:='';
//якщо запис про шлях до файлу БД є в реєстрі
//і файл БД, зазначений у цьому записі, існує
if (reg.Valueexists('name')=true) and (fileexists(reg.Readstring('name'))=true) then
//зчитуємо цей запис і записуємо його в змінну
baza:=reg.Readstring('name')
//інакше
else
//відкриваємо діалог вибору файлу БД
//якщо зазначений у діалозі файл БД існує
if (opendialog1.execute=true) and (fileexists(opendialog1.Filename)=true) then
begin
//записуємо шлях до цього файлу в змінну
baza:= opendialog1.filename;
//зберігаємо цей шлях у реєстрі
reg.Writestring('name',baza);
end;
//видаляємо з пам'яті змінну для роботи з реєстром
reg.free;
//якщо шлях до файлу БД залишився не відомим
if baza='' then
//завершуємо роботу програми
exitprocess(0);
//настроюємо параметри підключення до БД
//зпочатку від'єднуємося від БД
Adoconnection1.Connected:=false;
//скопіюйте в буфер обміну вміст властивості Connectionstring
//між лапками вставте вміст буфера обміну
//знайдіть у тексті параметр, що задає пароль до БД, і вилучіть всі наступні параметри
// замість мережного шляху до файлу БД підставте значення змінної baza
// у вигляді: '+baza+'
Adoconnection1.Connectionstring:='тут потрібно вставити текст (див.вище)';
//відображаємо форму програми поверх усіх вікон
Setwindowpos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
//знімаємо у форми ознаку відображення поверх усіх вікон
Setwindowpos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
Запустіть програму, переконайтеся, що при першому запуску запитується шлях до БД. Запустіть програму ще раз і переконайтеся, що шлях більше не запитується, а читається з реєстру.
Спробуйте перейменувати БД і запустити програму. Змінити шлях до БД у реєстрі й запустити програму. Вилучити параметр із реєстру й запустити програму. У всіх випадках повинен запитуватися шлях до БД.