|
|
Реалізація зв'язків між таблицями
|
|
|
В системі Delphi зв'язки між таблицями реалізовуються за допомогою полів підставлення, тобто дані з підпорядкованої таблиці підставляються в головну таблицю, якщо у них співпадає певне ключове поле.
Наприклад, якщо розглянути таблиці Gosp та Jyteli, то їх зв'язок буде реалізовуватися підставленням у запис таблиці Gosp поля PIB з таблиці Jyteli того запису, в якому поле kod_jytelia співпадає з полем kod_jytelia в таблиці Gosp.
Даний механізм реалізується в програмі двома способами:
1. Використання Lookup-полів (при відображенні зв'язаних даних у компоненті DBGrid).
2. Використання компонент DBLookupComboBox та DBLookupListBox (При введенні даних).
Розглянемо створення Lookup-поля на прикладі таблиць Gosp та Jyteli (за них відповідають відповідно компоненти Table1 і Table2). Необхідно створити поле "Прізвище власника" з назвою Vlasnyk.
Для цього викликаємо редактор полів компоненти Table1 і в його контекстному меню обираємо пункт "New Field..." (створити нове поле), що викличе діалогове вікно створення поля.
Мал. 5
В полі Name необхідно ввести назву нового поля (Vlasnyk). В полі Component автоматично сформується ім'я поля, під яким воно буде доступне в програмі (Table1Vlasnyk). В списку Type обираємо тип даних, які знаходяться у полі (в даному випадку String), в полі Size встановлюємо довжину поля, якщо це необхідно.
Для створення Lookup-поля в групі Field Type необхідно встановити прапорець Lookup, який зробить доступною групу Lookup definition.
В полі Key Fields встановлюється поле головної таблиці, по якому буде проводитися підстановка (поле kod_jytelia таблиці Gosp, за яку відповідає компонента Table1), в полі Dataset встановлюється підпорядкована таблиця (Table2 - відповідає за таблицю Jyteli). В списку Lookup Keys обирається поле підпорядкованої таблиці (тобто тої, з якої будуть братися дані) по якому проводитиметься підстановка (kod_jytelia з таблиці Jyteli). В списку Result Field встановлюємо поле підпорядкованої таблиці, яке буде відображатися на екрані (PIB).
Після натиснення кнопки "OK" буде створено нове поле, яке буде відображатися на екрані і з якого можна програмно зчитати дані, але, слід зазначити, зміна цього поля як програмна, так і інтерактивна, призведе до помилки, за чим варто слідкувати при програмуванні та проектуванні форми.
Для редагування даних найчастіше використовується компонента DBLookupComboBox, яка реалізує список, що дозволяє підставляти значення з однієї таблиці, зв'язане по коду, з іншої таблиці. Після розташування її на формі, необхідно змінити наступні властивості (в наступній таблиці поле "значення" вказує на ті значення, які необхідно встановити при зв'язуванні таблиць Gosp та Jyteli).
Властивість | Пояснення | Значення |
DataSource | Основне джерело даних, з якою працює компонента, тобто джерело даних, яке відповідає за компоненту Table головної таблиці (в яку здійснюється підстановка). | DataSource1 |
ListSource | Джерело даних, яке відповідає за компоненту Table, що обробляє підпорядковану таблицю (ту, з якої беруться дані для підстановки). | DataSource2 |
DataField | Поле в головній таблиці, у яке буде підставлятися значення з підпорядкованої таблиці. | kod_jytelia |
KeyField | Поле в підпорядкованій таблиці, значення якого буде підставлятися в DataField | kod_jytelia |
ListField | Поле в підпорядкованій таблиці, яке буде відображатися у списку | PIB |
Примітка: Компоненти DataSource1 та DataSource2 пов'язані відповідно з компонентами Table1 і Table2.
|
|
Книга Фріланс на західному ринку
|
|