В этом примере рассматривается работа с компонентом TADOConnection, SQL запросами с параметрами и трансакциями.
Создадим приложение из следующих компонентов
Connect типа TADOConnection
MasterSQL и DetailSQL типа TADODataSet
MasterDS и DetailDS типа TDataSource
MasterGrid и DetailGrid типа TDBGrid
Рис 10. Master-detail форма на этапе дизайна
Связываем MasterGrid, MasterDS, MasterSQL и DetailGrid, DetailDS, DetailSQL аналогично предыдущему примеру, за исключением того, что вместо типа TADOTable используется тип TADODataSet.
Привязываем Connect к базе данных. Для этого в редакторе свойства ConnectionString выбираем ту же базу данных, что и в предыдущем примере.
Для ввода SQL запросов необходимо отредактировать свойство CommandText
компонентах MasterSQL
и DetailSQL. После нажатия на кнопку «…» появится редактор компонент, который выглядит следующим образом
Рис. 10
Кнопка «Add Table to SQL» добавляет в текст SQL запроса таблицу, выбранную в списке «Tables», а «Add Field to SQL» поле таблицы, выбранное в списке «Fields».
Запрос для MasterSQL
select VendorNo, VendorName, Country, City, State, Preferred from vendors |
Запрос в DetailSQL должен выбирать только те детали, поставщик которых является текущим в MasterSQL. Для этого установим свойство DataSource компонента DetailSQL в значение MasterDS.
Запрос для DetailSQL следующий:
select PartNo, OnOrder, OnHand, ListPrice, Description, Cost from parts where VendorNo = :VendorNo |
:VendorNo в части where – параметр запроса. Параметры при установленном DataSource берутся из него.
Активизируем MasterSQL и DetailSQL аналогично предыдущему примеру.
Приложение можно запускать. Этот пример можно найти в директории MasterDetail.