Автор: Пользователь скрыл имя, 04 Февраля 2013 в 10:01, лабораторная работа
Данная лабораторная работа предназначена для знакомства с основами работы с реляционными базами данных. Условно можно считать, что реляционная база данных состоит из набора таблиц, которые в свою очередь состоят из однотипных записей с несколькими полями. Обычно записи в таблицах представляют в виде горизонтальных рядов, а в колонках - значения соответствующих полей.
В левой верхней части формы необходимо разместить компоненты, позволяющие фильтровать записи в таблице в соответствии с некоторым критерием. Нам необходимо сделать три варианта: все книги, книги заданного типа и книги, находящиеся у заданного пользователя. Для извлечения данных из таблиц в соответствии с некоторым критерием в Delphi возможны несколько вариантов.
Один из вариантов
заключается в задании
Другой вариант заключается в создании связки таблиц «главная-подчиненная» (master-detail) по некоторым полям. Тогда при выборе записи в главной таблице в подчиненной таблице будут отображаться только те, код связи которых совпадает с текущей записью в главной. Эта связка аналогична той, что используется в подстановочных полях: там главной таблицей являлась TableBooks, а подчиненными - справочники ТаblеТуреs и TableUsers.
В данном случае необходимо, чтобы, наоборот, таблицы ТаидеТурез и TableUsers были главными, a TableBooks - подчиненной. При выборе типа книги или пользователя в таблице книг должны выбираться только определенные записи. Для организации такой связи в подчиненной таблице необходимо указать три свойства, краткое описание которых приведено в табл. 24.
Таблица 24. Свойства компонентов типа ТТаЫе для организации связи с главной таблицей в режиме подчиненной | ||
Свойство |
Тип |
Комментарий |
MasterSource |
TDataSource |
Источник данных с главной таблицей |
IndexFieldNames |
String |
Имя индексированного поля подчиненной таблицы, по которому осуществляется связь |
MasterFields |
String |
Имя поля главной таблицы, текущее значение которого используется для фильтрации записей в подчиненной |
Итак, вернемся к нашему приложению. В левой верхней части главной формы следует разместить три радио-кнопки, при выборе которых необходимо динамически менять свойства MasterSource, IndexFieldNames и MasterFields компонента TableBooks. Для выбора типа книг или пользователя для фильтрации необходимо разместить около радио-кнопок компоненты типа TDBLookupComboBox. при раскрытии которых в ниспадающем списке будут отображаться записи таблиц ТаblеТуреs и TableUsers. Для этого нужно у компонентов TDBLookupComboBox установить свойства ListSource в значение DataSourceType (или DataSourceUsers); ListField равным «BookType» (или «UserName») и свойство KeyField равным «ID».