Компонент DBGrid (страница DataControls палитры компонентов) представляет данные в виде таблицы. В столбцах таблицы размещаются поля набора данных, а в строках – записи. Связь с набором данных устанавливается значением DataSource1 (2, 3 или 4) для свойства DataSource. Итак, надо установить четыре таких компонента.
Поместим в окно формы четыре компонента DBNavigator (страница DataControls палитры компонентов) для перемещения по записям каждого из наборов данных. Связь с набором данных устанавливается значением DataSource1 (2, 3 или 4) для свойства DataSource.
Наконец, поместим в окно формы компонент ADODataSet1, который обеспечит ввод значений внешнего ключа в подчиненную таблицу из списка значений первичного ключа главной таблицы. Установим в значение ADOConnection1 для свойства Connection.
Заметим, что при выполнении проекта в окне приложения из перечисленных выше компонентов будут видны только DBGrid и DBNavigator.
3. Ввод информации в таблицы, не содержащие внешних ключей. Запустим проект на выполнение и с помощью кнопок компонента DBNavigator занесем пять записей в таблицу Клиенты и восемь записей в таблицу Товары (см. рис. 34). Завершим выполнение проекта и убедимся в СУБД Access, что вся информация, введенная при выполнении проекта СП Delphi, занесена в таблицы БД.
4. Создание процедур для ввода значений внешних ключей. В нашей базе данных три внешних ключа:
1) поле КодКл в таблице Заказы – значения этого поля должны выбираться из поля КодКл таблицы Клиенты;
2) поле НомЗак в таблице СтрокиЗаказов – значения этого поля должны выбираться из поля НомЗак таблицы Заказы;
3) поле КодТов в таблице СтрокиЗаказов – значения этого поля должны выбираться из поля КодТов таблицы Товары.
Рисунок 35 – Описание процедуры в интерфейсной части модуля
Рисунок 36 – Процедура обновления списков для внешних ключей
1) при активации формы;
2) при изменении значений поля КодКл в таблице Клиенты – в этом случае надо после обновления списка обновить содержимое таблицы Заказы;
3) при изменении значений поля КодТов в таблице Товары – в этом случае надо после обновления списка обновить содержимое таблицы СтрокиЗаказов;
4) при изменении значений поля НомЗак в таблице Заказы – в этом случае надо после обновления списка обновить содержимое таблицы СтрокиЗаказов.
Таким образом, необходимо создать следующие три процедуры:
1) процедуру Form1Activate, вызываемую при активации формы;
2) процедуру ADOTable1AfterDelete, вызываемую при удалении (AfterDelete) или после редактирования (AfterPost) информации в таблице Клиенты (ADOTable1);
3) процедуру ADOTable2AfterDelete, вызываемую при удалении (AfterDelete) или после редактирования (AfterPost) информации в таблице Товары (ADOTable2), а также при аналогичных действиях в таблице Заказы (ADOTable3).
Рисунок 37 – Процедуры, вызывающие обновление списков для внешних ключей
5. Ввод информации в таблицы, содержащие внешние ключи. Запустим проект на выполнение и заполним таблицы Заказы и СтрокиЗаказов информацией с придуманных пяти заказов, в каждом из которых содержится от одной до трех строк с наименованиями товаров и их количеством. При заполнении полей внешних ключей будем использовать раскрывающиеся списки с соответствующими значениями ключей главных таблиц. Окно приложения в процессе заполнения с отображением списков значений первичных ключей приведено на рис.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.