Встановлення зв’язку між таблицями на рівні програми використовуючи компонент IBQuery

Зв’язок між таблицями на рівні програми встановлюється від індексного поля чи групи полів підлеглої таблиці (по цим полям повинен бути побудований індекс) до довільного поля (групи полів) головної таблиці.

Таким чином, на рівні програми можна реалізувати зв’язки видів:

  1. 1:1 (коли значення ключів зв’язку підлеглої та головної таблиць — унікальні).
  2. 1:N (коли значення ключа зв’язку підлеглої таблиці — не унікальні, а ключа зв’язку головної таблиці — унікальні).
  3. M:N (коли значення ключів зв’язку підлеглої та головної таблиць — не унікальні).

Давайте на прикладі продемонструємо, як в одній формі можна зв’язати два набори даних (головний — підлеглий) так, щоб в підлеглому наборі завжди відображались лише ті записи, які відповідають біжучому запису головного набору даних.

Розмістимо на формі компоненти: DataSource1, IBQuery1, IBDatabase1, IBTransaction1, DBGrid1, DBNavigator1. З допомогою компонента IBDatabase1 налаштуємо з'єднання з базою даних autobazar. Далі зв’яжемо компоненти IBDatabase1 та IBTransaction1 один з одним: для властивості DefaultDatabase компонента IBTransaction1 присвоємо значення IBDatabase1; для властивості DefaultTransaction компонента IBDatabase1 присвоємо значення IBTransaction1.

Пов'яжемо компонент IBQuery1 з компонентами IBTransaction1 та IBDatabase1, і для властивості SQL запишемо наступний SQL-запит: SELECT * FROM Vendors.

Читати повністю