На этом шаге мы рассмотрим использование компонента TQuery.
НД из нескольких таблиц, формируется с помощью компонента TQuery.
Создайте новое приложение. Расположите на форме компоненты TQuery, TDataSource и TDBGrid.
Установите в свойство DatabaseName компонента Query1 значение FIRMA.
Свяжите компонент DataSource1 с Query1, а DBGrid1 с DataSource1.
Раскройте редактор свойства SQL компонента Query1 и введите такой текст SQL-запроса:
SELECT Na.*, N.NSklad FROM Naim N, Nalich Na WHERE N.Naim = Na.Naim;
Закройте редактор кнопкой OK.
Как видно из текста запроса, НД собирается из двух таблиц Naim и Nalich (FROM Naim N, Nalich Na),
причем для создания более компактного запроса, таблица Naim обозначается через N, а Nalich через Na.
Предложение SELECT текста запроса определяет выбираемые поля, Na.* означает, что выбраны все
поля таблицы Nalich. Предложение WHERE фильтрует результат, возвращаемый оператором
SELECT, (WHERE N.Naim = Na.Naim ) - собираются записи, имеющие одинаковые значения поля Naim.
Чтобы выполнить запрос, установите в свойстве Active компонента Query1 значение True (рисунок 1).
Рис.1. НД, сформированный из нескольких таблиц
Если вы запустите программу, то обнаружите, что изменить каким-либо образом отображаемые в DBGrid1 данные
нельзя, так как они получены объединением данных из двух таблиц. Изменять данные можно с помощью
SQL-запросов, либо можно пойти на небольшую хитрость: отображать данные с помощью компонента
TQuery, а редактировать - с помощью компонента TTable. При изменении данных компонент
TQuery не отображает эти изменения. Для того чтобы увидеть произведенные изменения, необходимо
"перезапустить" TQuery:
Query1.Active:=False; Query1.Active:=True;
Созданное приложение можно взять здесь.
На следующем шаге мы рассмотрим работу с полями.