32 Урока Borland Delphi



             

Урок 21 - часть 8


В свойстве SQL наберите текст запроса:

select * from Orders where CustNo = :CustNo

В свойстве DatabaseName для Query1 укажите DBDEMOS.

В свойстве DataSource для Query1 укажите DataSource1.

Поставьте Active = True и запустите программу.

Рис.4: Программа LINKQRY - связанные курсоры с помощью SQL
 
 

  • Выполнение соединения нескольких таблиц.
  • Вы видели что таблицы CUSTOMERS и ORDERS связаны в отношении один-ко-многим, основанному на поле CustNo. Таблицы ORDERS и ITEMS также связаны отношении один-ко-многим, только через поле OrderNo.

    Более конкретно, каждый заказ который существует в таблице ORDERS будет иметь несколько записей в таблице ITEMS, связанных с этим заказом. Записи из таблицы ITEMS определяют тип и количество изделий, связанных с этим заказом.

    Пример.

    Некто Иванов Ф.П. 1 мая 1995г. заказал следующее:

    1. Гайка 4х-угольная - 50 штук
    2. Вентиль - 1 штука
    А некто Сидорчук Ю.Г. 8 декабря 1994г. заказал:
    1. М/схема КР580 ИК80 - 10 штук
    2. Транзистор КТ315 - 15 штук
    3. Моток провода - 1 штука
    В ситуации подобной этой, иногда проще всего "соединить" данные из таблиц ORDERS и ITEMS так, чтобы результирующий DataSet содержал информацию из обеих таблиц:

    Иванов Ф.П. 1 мая 1995г Гайка 4х-угольная 50 штук

    Иванов Ф.П. 1 мая 1995г Вентиль 1 штука

    Сидорчук Ю.Г. 8 декабря 1994г М/схема КР580 ИК80 10 штук

    Сидорчук Ю.Г. 8 декабря 1994г Транзистор КТ315 15 штук

    Сидорчук Ю.Г. 8 декабря 1994г Моток провода 1 штука

    Слияние этих двух таблиц называется "соединение" и это одно из фундаментальных действий, которые Вы можете выполнить на наборе двух или больше таблиц.

    Взяв таблицы ORDERS и ITEMS из подкаталога DEMOS\DATA, их можно соединить их таким путем, что поля CustNo, OrderNo и SaleDate из таблицы ORDERS будут “слиты” с полями PartNo и Qty из таблицы ITEMS и сформируют новый DataSet, содержащий все пять полей. Grid содержащий результирующий DataSet показан на рис.5
     
     

    Рис.5: Соединение таблиц ORDERS и ITEMS может быть сделано так, что формируется новый DataSet содержащий поля из каждой таблицы.




    Содержание  Назад  Вперед