Технікум промислової автоматики 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Технікум промислової автоматики



ТЕХНІКУМ ПРОМИСЛОВОЇ АВТОМАТИКИ

ОДЕСЬКОЇ НАЦІОНАЛЬНОЇ АКАДЕМІЇ ХАРЧОВИХ ТЕХНОЛОГІЙ

 

РОБОЧИЙ ЗОШИТ

до виконання практичних робіт з навчальної дисципліни

«ОРГАНІЗАЦІЯ БАЗ ДАНИХ ТА ЗНАНЬ»

Частина ІІ

Студент __ ІІІ курсу групи ________

________________________________________________________________________________________________________________

 

 

М. Одеса

Практична робота №7

Тема: «Підключення бази даних, створеної в СКБД Microsoft Access, до середовища Delphi. Додавання, модифікація та знищення даних з бази даних»

Мета: навчитися здійснювати підключення бази даних, створеної в СКБД Microsoft Access, до середовища Delphi за допомогою компонента ADOConnectionз закладки ADO палітри компонентів; навчитися здійснювати налаштування з’єднання з сервером; дізнатися призначення компонентів ADOTable, DataSource та DBGrid з закладки ADO. Навчитися створювати модуль даних в середовищі Delphi, здійснювати роботу з менеджером проектів, керувати відображенням даних.

Обладнання: комп’ютер.

Програмне забезпечення: СКБД Microsoft Access, середовище розробки Delphi.

Хід заняття

Короткі теоретичні відомості

Для роботи з базами в Delphi є декілька наборів компонент. Кожен набір дуже добре підходить для вирішення визначеного колу задач. Всі вони використовують різні технології доступу до даних та відрізняються за можливостями.

На закладці Data Access розташовані головні компоненти доступу до даних. Ці компоненти загальні для всіх та можуть використовуватися сумісно з іншими групами компонентів.

На закладці Data Controls розташовані компоненти для відображення та редагування даних в таблицях. Ці компоненти також використовуються в незалежності від технології доступу до даних, яка використовується.

Закладка BDE містить компоненти, які дозволяють отримати доступ до БД за технологією, яка розроблена фірмою Borland під назвою Borland Database Engine. Ця технологія дуже застаріла та поставляється лише для сумісності зі старими версіями. Не дивлячись на це, вона добре працює зі старими типами БД, такими як Paradox та dBase.

DBExpress – це нова технологія доступу до даних фірми Borland. Вона відрізняється більшою гнучкістю та добре підходить для програмування клієнт-серверних додатків, які використовують БД. Компоненти з цієї закладки радять використовувати з БД побудованих за серверною технологією, наприклад, Oracle, DB2 або MySQL.

ADO (Active Data Objects) – технологія доступу до даних, яка розроблена корпорацієї Microsoft. Дуже добра бібліотека, але радять її використовувати лише з БД Microsoft, а саме MS Access або MS SQL Server. Її також можна використовувати, якщо специфічний сервер БД, який може працювати лише через ODBC.

Робота з БД Access здійснюється через спеціальну надстройку DAO, яка може встановлюватися на комп’ютер разом з програмою Office або йти як окрема установка. Так якщо програма не буде працювати на комп’ютері клієнта, то треба потурбуватися про встановлення DAO на комп’ютер.

 

Виконати завдання

§ Створити базу даних в СКБД Access за темою «Телефонний довідник».

§ Створити таблиці, які буде містити БД за темою «Телефонний довідник».

§ Встановити зв'язок між таблицями та забезпечити цілісність БД.

§ Здійснити підключення створеної БД до середовища Delphi за допомогою компонента ADOConnection.

§ Зробити поля таблиці, які є первинними ключами, невидимими та навчитися здійснювати керування даними.

§ Зробити додавання, знищення та модифікацію даних таблиць створеної БД (за допомогою меню та кнопок).

Виконання завдання

 

1. Створіть базу даних в СКБД Access з іменем «Телефонний довідник.mdb».

2. Створіть таблиці «Довідник» та «Довідник міст» в СКБД Access в режимі конструктора таблиць:

 

Таблиця «Довідник» повинна мати такі поля:

§ Ім’я поля - Key1. Тип - Лічильник. Це буде ключ. Розмір поля – Довге ціле. Індексоване поле – Да (Співпадання не допускаються).

§ Ім’я поля – Прізвище. Тип - Текстовий. Розмір поля - 50. Індексоване поле – Да (Співпадання допускаються).

§ Ім’я поля – Ім’я. Тип - Текстовий. Розмір поля - 50. Індексоване поле – Да (Співпадання допускаються).

§ Ім’я поля – Телефон. Тип - Текстовий. Розмір поля - 20. Індексоване поле – Да (Співпадання допускаються).

§ Ім’я поля – Ел_адреса. Тип - Текстовий. Розмір поля - 30. Індексоване поле – Да (Співпадання допускаються).

§ Ім’я поля – Місто. Тип - Числовой. Розмір поля - Довге ціле. Індексоване поле – Ні.

§ Ім’я поля – Дата. Тип - Дата/час.

§ Ім’я поля – Мобільний_телефон. Тип – Логічний.

Таблиця «Довідник міст» повинна мати такі поля:

§ Ім’я поля – Key1 – Лічильник (ключове поле);

§ Ім’я поля – Назва_міста – Тип - Текстовий. Розмір поля - 30.

 

3. Встановіть зв'язок між таблицями та забезпечте цілісність БД.

 

 

4. Заповніть таблиці даними.

5. Створіть новий проект в середовищі Delphi.

6. Розмістіть на формі компонент ADOConnection з закладки ADO палітри

компонентів.

7. Налаштуйте з’єднання з сервером, яке повинне бути прописане в

властивості «ConnectionString». Для цього треба двічі натиснути по рядку «ConnectionString» та обрати в вікні другий пункт, а саме «Use Connection String», тобто «Використовувати рядок підключення». Далі натиснути по кнопці «Build». В вікні, якевідчинеться, на закладці Provider перелічені всі припустимі ADO драйвери доступу до БД. Якщо якогось з драйверів немає, то можна спробувати обраний за умовчуванням «Microsoft OLE DB Provider for ODBC Drivers». Цей драйвер дозволяє отримати доступ до БД через ODBC драйвер, який є на більшості існуючих БД. В нашому випадку, для доступу до баз даних MS Access використовується драйвер «Microsoft Jet OLE DB Provider». Такий драйвер обов’язково встановлюється на машину разом з MS Office, а в останніх версіях Windows він встановлюється за умовчуванням. Після цього натиснути кнопку «Next», або перейти на закладку «Connection». Вид закладки «Connection» залежить від обраного драйверу. Першою справою, в цьому вікні треба ввести ім’я (якщо треба то й шлях) бази даних в рядку «Select or enter a database name». Якщо БД буде розташовуватися в тій самій директорії, що й запускний файл, то шлях вказувати не треба (взагалі краще зберігати бази в одній директорії з запускними файлами). Якщо тримати файли окремо від запускного, то необхідно буде вказувати повний шлях, а це може визвати проблеми при перенесені програми на інший комп’ютер, тому що програма буде шукати базу за вказаним шляхом, який може змінитися. Якщо бажаєте тримати файли в іншій директорії, то треба вказувати відносний шлях відносно поточної директорії. Щоб легше було обирати файл бази даних, треба натиснути по кнопці з крапками праворуч від рядка введення.

Окрім цього треба заповнити наступні поля:

· Ім’я користувача (User name), можна залишити за умовчуванням, якщо не задане інше при створенні бази в MS Access.

· Пароль (Password) – якщо база має пароль, то його необхідно вказати;

· Пустий пароль (Blank password) – якщо пароль не потрібний, то бажано було б поставити галочку.

· Дозволяти зберігати пароль (Allow saving password). Якщо тут поставити галочку, то пароль може бути збережений.

 

Після обрання бази даних, треба натиснути кнопку «Test Connection», для того, щоб протестувати з’єднання. Якщо все вказане правильно, то повинне з’явитися повідомлення «Test connection succeeded». Все, можна натискати ОК, щоб зачинити вікно створення рядка підключення та ще раз «ОК», для того щоб зачинити вікно редактору рядка підключення.

8. Налаштуйте компонент ADOConnection: для цьогов властивостяхтреба

відключити властивість «LoginPrompt», встановивши її в «False». Це треба для того, щоб при кожному звертанні до бази не з’являлося вікно введення паролю; виставіть властивість «Connected» в «True», щоб відбулось з’єднання з базою.

9. Для отримання доступу до створеної таблиці бази даних треба розмістити

на формі компонент ADOTable з закладки ADO палітри компонентів. Одразу ж треба змінити його властивість «Name» на ім’я таблиці, яке було вказане при створенні таблиці.

10. Налаштуйте компонент ADOTable: в ньому також є властивість

ConnectionString та її також можна налаштовувати. Чому «можна»? Тому що, для того щоб це не робити був поставлений на форму компонент ADOConnection. Зараз можна вказати в таблиців властивості Connection, створений компонент з’єднання з базою даних. Натиснути по випадаючому списку в властивості Connection та обрати там єдиний пункт ADOConnection1. Тепер не треба заповнювати властивість ConnectionString. Після цього в властивості TableName треба обрати ім’я таблиці, яку треба відобразити. Все, таблиця та з’єднання вказані, можна підключатися. Для цього треба виставити властивість «Active» в «true».

11. Для відображення даних з таблиці треба ще встановити на форму

компонент «DataSource» з закладки «Data Access» палітри компонентів. Для нього треба вказати, яку саме таблицю він повинен відображати: в властивості «DataSet» треба з випадаючого списка обрати ім’я таблиці. Для реального відображення даних треба встановити компонент «DBGrid». Це компонент-сітка, який може відображати дані у вигляді таблиці. В цьому ж компоненті можна додавати, знищувати та редагувати рядки таблиці.

12. Останній етап створення додатку – пов’язування компонента сітки з

компонентом відображення таблиці. Для цього в властивості «DataSoиrce» компонента «DBGrid» треба вказати створений компонент «DataSource1».

13. Додаток готовий!!! Спробуйте запустити цей приклад та створити

декілька рядків, відредагувати вже існуючі та знищити що-небудь. Для вставки рядка треба використовувати клавишу Ins, а для знищення Ctrl+Del.

14. Створіть модуль даних (модуль даних – це спеціальне вікно, яке

підходить для зберігання компонентів доступу до БД) та перенесіть компоненти доступу до БД в окреме спеціальне вікно. Для цього треба виділити компоненти «ADOConnection1», «DataSource1» та «ТавleName1». Потім обрати з меню Edit пункт Cut, щоб ці компоненти скопіювалися в буфер обміну та одразу знищилися з форми. Після цього оберіть з меню File -> New -> Data Module. Наступним кроком оберіть з меню Edit пункт Paste, щоб вставити в це вікно вирізанні компоненти. Збережіть новий модуль під іменем «DataModuleUnit».

15. Відчиніть менеджер проектів (в меню View треба обрати Project

Manager) та розташуйте це вікно так, щоб до нього було зручно отримати доступ в будь-який момент часу. Менеджер проектів потрібен для того, щоб за його допомогою можна було б перейти з головної форми в модуль даних та навпаки. Для цього лише потрібно буде двічі натиснути по потрібній формі.

Перейдіть до головної форми. В сітці «DBGrid1» зникли дані, тому що вона загубила зв'язок з компонентами доступу до даних. Для того, щоб все повернути, треба виділити сітку та натиснути по властивості «DataSource». В списку, який відчинеться, не буде жодного пункту тому, що всі потрібні компоненти були перенесені в окрему форму, а головній формі про це нічого не відоме. Для того, щоб форма дізналася про існування компонентів їй треба вказати в розділі uses модуль DataModuleUnit. Це можна зробити власноруч або обрати з меню File пункт Use Unit (в цей момент повинне бути вибране вікно коду головної форми, тому що здійснюється підключення нового модулю саме до неї). В вікні, яке з’явиться, треба обрати ім’я нового модуля DataModuleUnit танатиснути ОК. Перевірте в редакторі коду, щоб після ключового слову implementation з’явилось « uses DataModuleUnit;»:

Implementation

uses DataModuleUnit;

{$R *.dfm}

16. Виділіть сітку «DBGrid1» та в властивості « DataSource» вкажіть

компонент «DataSource1», дані якого повинні бути відображені в сітці (DataModule1. DataSource1).

17. Перейдіть до модуля DataModule та налаштуйте відображення даних.

Двічі натисніть по компоненту ADOTable1 та додайте до вікна, яке відчинеться,всі поля БД. Для цього треба натиснути по ньому правою кнопкою миші та в меню, яке з’явиться, обрати пункт «Add All Field» («Додати всі поля»).

18. Зробіть поля, які є первинними ключами, невидимими. Для цього виділіть

цю властивість в об’єктному інспекторі та встановіть в властивості «Visible» значення «false».

19. Відредагуйте довжину відображення стовпців. Для цього виділіть

властивість, наприклад, «Прізвище». За ширину стовпців відповідає властивість «DisplayWidth ».

Є ще такі властивості:

· DefaultExpression – за допомогою цієї властивості можна вказати значення за умовчуванням;

· MaxValue – максимальне припустиме значення;

· MinValue – мінімальне припустиме значення;

· ReadOnly – поле лише для читання;

· Required – якщо вказане значення «true», то поле є обов’язковим для заповнення.

 

20. Для зміни тексту, який відображається в заголовках таблиці, використовується властивість поля «DisplayLabel ».

21. Для редагування формату відображення дати використовується

властивість «DisplayFormat», значення якого дорівнює «dddddd».

22. Для створення маски для введення дати використовуєтьсявластивість

« EditMask» зі значенням «99/99/9999».

23. Якщо треба, щоб в логічному полі відображалися значення на російській

мові «Да» або «Нет», а не «true» або « false », треба скористатися властивістю «DisplayValues» зі значенням « Да;Нет »

24. Відчиніть проект створений в попередній частині та модуль

DataModuleUnit.

Додайте сюди компонент DataSource (назвіть його TownSource) та ADOTable (назвіть його TownTable). Після цього у компонента TownSource в властивості DataSet вкажіть таблицю TownTable.

Налаштуйте TownTable на відображення «Довідника міст». Для цього:

§ В властивості «Connection » вкажіть компонент ADOConnection1, який вказує на БД.

§ В властивості «TableName » вкажіть таблицю «Довідник міст».

§ Встановіть властивість «Active » в «True», щоб активізувати таблицю.

 

Увійдіть в редактор полів таблиці TownTable та додайте всі поля. Зробіть поле Key1 невидимим, тому що це лічильник та користувачу він взагалі не потрібний.

25. Створіть нову форму для редагування «Довідника міст» та збережіть

форму в модулі з іменем TownTableUnit. Саму форму назвіть TownTableForm. Підключіть до нової форми модуль DataModuleUnit, щоб звідси можна було б отримати доступ до компонентів для роботи з БД. Для цього з меню File оберіть пункт Use Unit та в вікні, яке з’явиться, вкажіть модуль DataModuleUnit та натисніть ОК.

26. Помістіть на форму сітку DBGrid та в властивості «DataSource » вкажіть

таблицю «Довідник міст» - DataModule1.TownSource. Додати на форму кнопки «Додати», «Зберегти», «Знищити» та «Закрити» для додавання, знищення та збереження рядків довідника (рисунок 1):

 

Рисунок 1 -Форма довідника міст

При натисканні кнопки «Додати» треба написати наступний код:

procedure TTownTableForm.AddBtnClick(Sender: TObject);

Begin

DataModule1.TownTable.Insert;

DBGrid1.SetFocus;

end;

Метод Insert таблиці TownTable додає новий рядок. У другому рядку викликається метод SetFocus нашої сітки, щоб фокус введення перейшов на нього. Після натискання кнопки «Добавить» фокус потрапляє на неї, але після додавання нового рядка, логічним буде перенести фокус на сітку, тому що користувач буде вводити ім’я міста для нового рядка.

При натисканні кнопки «Зберегти» треба написати наступний код:

procedure TTownTableForm.SaveBtnClick(Sender: TObject);

Begin

Begin

DataModule1.TownTable.Delete;

end;

27. Прейдіть до головної форми та створіть меню або кнопку для виклику

«Довідника міст» (рисунок 2):

Рисунок 2 - Меню виклику «Довідника міст»

По події OnClick для меню напишіть код виклику вікна «Довідника міст»:

procedure TForm1.TownTableMenuItemClick(Sender: TObject);

Begin

TownTableForm.ShowModal;

end;

Якщо не був доданий модуль «Довідника міст» до головної форми та буде зроблена спроба відкомпілювати проект, то з’явиться наступний запит (рисунок 3):

Рисунок 3 – Вікно з повідомленням у випадку спроба відкомпілювати проект, якщо не був доданий відповідний модуль

Мова йде про те, що форма TownTableForm оголошена в модулі TownTableUnit та твоя форма не має ссилки на нього. Тобі пропонується додавати її автоматично. Оберіть «Yes» та модуль буде доданий автоматично, після цього можна знову компілювати проект, не роблячі жодних змін. Запустіть проект та перевірте роботу програми.

 

28. Запустіть програму, зробіть виклик «Довідник міст» та додайте туди

декілька рядків. Зараз в нас є «Довідник міст» та можна підв’язати його дані до головної таблиці. Але перед цим треба трохи покращити форму. Виділіть сітку DBGrid1 на головній формі та в властивості «Options » відключіть можливість редагування даних в сітці – в dgEditing треба вказати false. Зараз редагування даних в сітці неможливе, тому зробіть для цього окремі вікна.

В головному меню створіть пункт «Редагування» з наступними підпунктами:

1. Додати запис;

2. Редагувати запис;

3. Знищити запис.

Рисунок 4 - Меню «Редагування»

 

29. Створіть нову форму, яка буде використовуватися для редагування даних

кожного запису. Збережіть її під іменем EditFormUnit. Саму ж форму назовіть EditRecordForm. Змініть в формі наступні властивості:

· BorderStyle - bsSingle

· Position – poMainFormCenter.

 

30. підключить до нової форми модуль з даними, тому що необхідно буде

мати до них доступ. Для цього оберіть з меню File пункт Use Unit, в вікні, яке з’явиться, оберіть DataModuleUnit та натисніть ОК. Форма для редагування даних має вигляд (рисунок 5):

Рисунок 5 - Вікно редагування даних

Навпроти надписів «Прізвище», «Ім’я», «Телефон», «Ел_адреса» та «Дата» з находяться компоненти DBEdit з закладки «Data Controls ». Ці компоненти представляють собою прості рядки введення типу TEdit, лише вони вміють автоматично редагувати вказані поля в БД. Щоб компонент бачив дані з необхідного поля треба вказати у нього в властивості «DataSource » необхідну таблицю (DataModule1.DataSource1), а в властивості «DataField » вказати поле, яке треба редагувати.

Для властивості «Мобільний_телефон» краще було б використовувати компонент «DBCheckBox ». У нього також треба вказати поле в таблиці, як й у компонентів «DBEdit».

Саме цікаве – поле «Місто». Назви міст зберігаються в окремому довіднику, а в головній таблиці повинні зберігатися лише числа – номери рядків із довідника міст. Для реалізації зв’язка між двома таблицями треба поставити компонент «DBLookupComboBox» з закладки «Data Controls ». Тепер треба вказати в нього в властивості «DataSource » головну таблицю (DataModule1.DataSource1), яка буде редагуватися, а в властивості «DataField » вказати поле, яке треба редагувати – «Місто».

Компонент «DBLookupComboBox » виглядає як випадаючий список (схожий на TComboBox). В якості елементів випадаючого списка можна вказати таблицю. В властивості «ListSource » треба вказати таблицю, з якої будуть обиратися елементи для випадаючого списка. Вкажіть довідник міст - DataModule1.TownSource.

В властивості «ListField » вкажіть поле з цієї таблиці, яке буде використовуватися для заповнення випадаючого списка – «Назва_міста». В властивості «KeyField» треба вказати поле, значення якого буде заноситися в вказане поле головної таблиці - Key1.

 

По натисканню кнопки «Зберегти» напишіть:

procedure TEditRecordForm.BitBtn1Click(Sender: TObject);

Begin

Begin

if Application.MessageBox(PChar('Ти дійсно бажаєшь знищити'

+DataModule1. ADOTableDSDesigner.AsString), 'Увага!!!',

MB_OKCANCEL)=id_OK then

DataModule1. ADOTable.Delete;

end;

33. Єдиний недолік в створеному прикладі – в сітці перегляду даних замість

назви міста відображається індекс рядка в довіднику. Це дуже незручно, тому треба виправити цей недолік.

Перейдіть в модуль «DataModule1», та виділіть компонент «ADOTable». Зробіть його неактивним – в властивості Active встановіть false. Зараз двічі натисніть по цьому компоненту після чого відчинеться редактор полів. Створіть нове поле, яке буде містити текстову назву міста для рядків таблиці. Для цього натисніть всередині вікна редактору та в меню, яке з’явиться, оберіть пункт «New Field». Відчинеться вікно, яке зображене на рисунку 6:

Рисунок 6 -Вікно створення нового поля

Створення нового поля можливе лише при неактивній таблиці, тому виставляється в властивості Active значення false.

Заповніть поля цього вікна наступним чином:

В полі Name введіть «Town»

В полі Type вкажіть тип String – рядок.

В полі FieldType оберіть Lookup – пошукове поле.

В полі KeyField (ключеве поле) оберіть поле «Місто». Це поле головної таблиці, за значенням якого треба буде відшукувати текст в іншій таблиці.

В полі DataSet треба вказати TownTable – це таблиця-довідник міст, де треба шукати.

В полі Lookup Keys вкажіть Key1 – це поле в таблиці довіднику, за яким треба здійснювати пошук.

В полі Result Field вкажіть поле «Назва_міста» - це поле, текст якого буде підставлятися. Зараз нажміть ОК.

В вікні редактору полів з’явиться ново поле з іменем Town. В самій БД такого поля не буде, тому що воно динамічне та існує лише в пам’яті машини, коли програма є запущеною. Перетащіть його мишкою вище, ближче до поля Місто.

Зробіть таблицю ADOTable активною та спробуйте запустити програму. Подивитесь на поле Town, зараз там текстова назва міста (рисунок 7):

Рисунок 7 - Результат роботи програми

 

Зробіть поле «Місто» невидимим, для того щоб не бачити незрозумілі числа, а над полем Town напишіть надпис «Місто». Для цього двічі натисніть по компоненту ADOTable, виділіть поле «Місто» та встановіть в властивості «Visible » значенне «false». Тепер виділіть поле «Town» та в властивості «DisplayLabel» напишіть «Місто».

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

1. За допомогою якого компонента здійснюється з’єднання з сервером?

2. Які властивості компонента ADOConnection треба налаштувати, щоб здійснити з’єднання з сервером?

3. Який драйвер використовується для доступу до баз даних MS Access?

4. Для чого призначений компонент ADOTable?

5. Для чого призначений компонент DataSource?

6. Для чого призначений компонент DBGrid?

7. Які властивості треба використовувати для налаштування компонента ADOTable?

8. Які властивості треба використовувати для налаштування компонента DataSource?

9. Як здійснити виклик редактору полів для таблиці?

10. Що таке модуль даних?

11. Для чого призначений метод Post при написанні процедур?

12. Як зробити неможливим редагування даних в сітці DBGrid?

13. Для чого обирається значення poMainFormCenter властивості Position при роботі з формами в Delphi?

14. Які властивості треба налаштовувати для компонента DBEdit?

15. Які властивості треба налаштовувати для компонента DBCheckBox?

16. Які властивості треба налаштовувати для компонента DBLookupComboBox?

Відповіді на контрольні запитання:

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

Дата захисту ______________ Оцінка ____ ____________

Практична робота №8

Хід заняття

Виконати завдання

Створити поля, в яких будуть здійснюватися розрахунки, для таблиць за темою курсової роботи.

Виконання завдання

Розглянемо виконання цієї практичної роботи на прикладі БД, яка буде зберігати інформацію про товари. Реалізуємо можливість підрахунку загальної суми, яку повинен буде сплатити покупець за визначену кількість товарів.

1. Створіть нову базу даних з іменем «Товари.mdb», в якій буде таблиця з

полями:

Key1 – Лічильник;

Назва товару – Текстовий;

Кількість – Числовий;

Ціна – Числовий.

Збережіть таблицю з іменем «Товари». Заповніть таблицю даними.

2. Створіть новий проект в Delphi, і одразу ж додайте до нього модуль

DataModule. В цей модуль додайте компоненти ADOConnection, DataSource та ADOTable.

3. Здійсніть підключення до БД за допомогою компонента ADOConnection1:

у DataSource1 в властивості DataSet вкажіть таблицю ADOTable1. В таблиці ADOTable1 в властивості Connection вкажіть компонент ADOConnection1, в властивості TableName треба вказати таблицю «Товари». Після цього треба зробити таблицю активною (в властивості Active в казати true).

4. Натисніть двічі по компоненту ADOTable1 та в редакторі властивостей

додайте всі поля таблиці. Зробіть невидимим ключеве поле. Встановіть значення за умовчуванням для полів Кількість та Ціна. Ці поля будуть приймати участь в математичних розрахунках, тому в них обов’язково повинні бути будь-які значення. Якщо в одному з полів не буде даних, то програма під час розрахунків виведе помилку. Для поля Кількість вкажітьв властивості DefaultExpression (значення за умовчуванням) одиницю, а для поля Ціна в такій же властивості вказати ноль.

5. Створіть нове поле, яке буде зберігати підсумок розрахунків. Але перш

ніж це робити, потрібно зробити таблицю неактивної.

6. Натисніть правою кнопкою миші у вікні редактора властивостей і

вибіріть пункт New Field.

У вікні властивостей нового поля заповніть наступні поля:

Name (ім'я нового поля) – назвіть поле Sum.

Type (тип поля) – у нас буде числова сума, тому треба обрати тип Integer.

Field Type (тип поля) – оберіть Calculated, щоб створити обчислюване поле.

Рисунок 1 - Вікно створення нового поля

 

Як тільки поле буде створене, таблицю знов можна буде зробити активною.

 

7. виділіть компонент ADOTable1 та створіть обробник подій OnCalcFields.

Ця подія викликається кожен раз, коли треба перерахувати обчислювані поля. Воно викликатиметься для всіх видимих користувачеві записів. У цьому обробнику напишіть наступне:

procedure TDataModule1.ADOTable1CalcFields(DataSet: TDataSet);

Begin

ADOTable1Sum.Value:=ADOTable1DSDesigner2.AsInteger*

ADOTable1DSDesigner3.AsInteger;

end;

 

8. Перейдіть в головне вікно програми. Підключіть до нього модуль

DataМodule (File -> use Unit) і киньте на форму одну сітку DBGrid. У властивості DataSource сітки оберіть таблицю DataModule1.DataSource1.

До речі, поле підсумку не повинне змінюватися користувачем власноруч, тому що воно обчислюване. Саме тому навіть не можна туди ввести жодного значення. Delphi просто блокує будь-які такі спроби, хоча поле і не має ознаки «Только для чтения» (ReadОnly).

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

1. За допомогою якого компонента здійснюється з’єднання з сервером та які властивості він має?

2. Для чого призначений компонент ADOTable, DataSource та DBGrid?

3. Які властивості треба використовувати для налаштування компонента ADOTable?

4. Які властивості треба використовувати для налаштування компонента DataSource?

5. Як здійснити виклик редактору полів для таблиці?

6. Для чого призначена властивість DefaultExpression?

7. Як створити нове поле?

8. Для чого створюється обробник подій OnCalcFields?

Відповіді на контрольні запитання:

_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

Дата захисту ______________ Оцінка ____ ____________

Практична робота №9

Хід заняття

Виконати завдання

§ Створити запит на мові SQL до бази даних за темою «Телефонний

довідник», яка була створена в практичній роботі №7. Запит повинен здійснювати пошук людини в телефонному довіднику за номером її телефону. Запит повинен реалізовуватися при натисканні по кнопці «Знайти». Результат розташувати в компоненті-сітці в новій формі.

§ Створити пункт меню «Сортування» з двома підпункти «За прізвищем» та

«За телефоном», за якими можна буде здійснювати сортування даних в базі даних.

§ Створити поле, в якому при введенні хоча б одного символу прізвища

будуть виводитися в компоненті-сітці всі прізвища, які починаються на цей (або ці) символ (символи).

Виконання завдання

Для реалізації можливості пошуку записів за номером телефону в телефонному довіднику треба виконати такі дії:

1. Відкрийте проект, в якому реалізовувався телефонний довідник.

2. Відкрийте модуль даних DataModule, де розташовуються всі

компоненти доступу до БД. Додайте компонент ADOQuery (назвіть його FindQuery) та компонент DataSource (назвіть його FindSource).

3. Встановіть зв'язок між цими компонентами, вказавши у компонента

FindSource в властивості DataSet компонент FindQuery.

4. Виділіть компонент FindQuery, вкажіть в властивості Connection

компонент підключення до БД ADOConnection1.

5. Напишіть запит. Для цього двічі натисніть по властивості SQL. В вікні

редактору запитів, яке відчинеться, написати запит, наприклад, обрання всіх рядків та всіх стовпців з таблиці «Довідник» БД, до якої було створене підключення:

SELECT *

FROM Довідник;

6. Для виконання запиту треба його активізувати, тобто встановіть

властивість Active в true.

7. Перейдіть в головний модуль, де зберігається головне вікно. Двічі

натисніть по компоненту FindQuery. В вікні, яке з’явиться, натисніть правою кнопкою миші та оберіть пункт меню «Add all fields». В редакторі повинні відобразитися всі поля таблиці. Двічі натисніть по компоненту ADOTable1, щоб відобразити вікно властивостей вже налаштованої таблиці. Розташуйте обидва вікна одне поруч з іншим. Виділіть першу властивість в редакторі властивостей таблиці ADOTable1, запам’ятайте їх, перейдіть в редактор властивостей полів запитів та зробіть там такі ж самі налаштування (рисунок 1):



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 107; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.100.34 (0.2 с.)