ГоловнаКаталогБлогРейтингЕ-Пошта 
 
 
Зробити домашньою у вибране  

  Реалізація зв'язків між таблицями  
В системі 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Поле в підпорядкованій таблиці, значення якого буде підставлятися в DataFieldkod_jytelia
ListFieldПоле в підпорядкованій таблиці, яке буде відображатися у спискуPIB

Примітка: Компоненти DataSource1 та DataSource2 пов'язані відповідно з компонентами Table1 і Table2.



  Логін:
  Пароль:
Книга Фріланс на західному ринку
Книга Фріланс на західному ринку

APServer | SiMan CMS | Лічильник відвідувань | Тека сайтів | Рейтинг | Форум | Download | Шаблони сторінок | Посібник Smarty | Підручник PHP | Статті/Огляди