Добавление происходит следующим образом. Пользователь выбирает механика и машину из соответствующих списков, вводит дату и стоимость ремонта и нажимает на кнопку добавить. Таким образом, в таблицу может быть добавлен только ремонт уже существующей в базе данных машины существующим в базе данных механиком.
Функция Click кнопки “Добавить” (form_q11.Command1):
dimension arrval[4]
arrval[1] = val(form_add_repair.ListCars.value)
arrval[2] = val(form_add_repair.ListMechs.value)
arrval[3] = val(form_add_repair.TextCost.text)
arrval[4] = date(val(form_add_repair.TextYear.text), val(form_add_repair.TextMonth.text),val(form_add_repair.TextDay.text))
select * from repairs into cursor cur where ;
car_id = arrval[1] and cost = arrval[3] and ;
repairs.date = arrval[4] and mech_id = arrval[2]
if reccount() > 0
if MessageBox("Такой ремонт уже существует. Продолжить?",4+32)=7
else
insert into repairs from array arrval
MessageBox("Ремонт успешно добавлен")
endif
else
insert into repairs from array arrval
MessageBox("Ремонт успешно добавлен")
Endif
Добавление ремонта происходит по тому же алгоритму, что и добавление механика и автомобиля.
Просмотр сведений об имеющихся в базе данных ремонтах осуществляется с помощью процедуры, вызываемой непосредственно из меню:
select cars.variety as Марка_машины, car_types.car_type as Тип_машины, mechanics.name as ФИО_механика,;
repair_types.rep_type as Вид_ремонта, repairs.date as Дата_ремонта, repairs.cost as Цена_ремонта from;
repairs inner join (mechanics inner join repair_types on mechanics.rep_id=repair_types.rep_id);
on repairs.mech_id=mechanics.mech_id;
inner join (cars inner join car_types on cars.car_type_id = car_types.car_type_id);
on repairs.car_id=cars.car_id order by repairs.data
Данный запрос объединяет все таблицы базы данных в одну и выводит некоторые поля полученной таблицы. В нем используются вложенные inner join, результаты которых являются аргументами для других inner join.
Результат запроса представлен на рис. 33.
Рис. 33. Результат запроса на просмотр сведений о ремонтах
В результате данной работы была создана база данных AutoDB, содержащая сведения о машинах, их ремонте и механиках. Доступ пользователя к базе данных осуществляется с помощью меню, которое содержит все необходимые команды. Были сделаны следующие выводы:
- Структура базы данных зависит от характера задач, которые она решает. При одном и том же задании необходимо определять дополнительные условия и требования для лучшей структуризации данных и для предотвращения повторения информации.
- Один и тот же запрос можно реализовать по-разному. В случае простых запросов вариантов возникает немного, но если запрос сложный, выбор усложняется. Зачастую сложный поиск данных, состоящий из нескольких запросов и использующий циклы и условия, можно упростить с помощью соотнесенных подзапросов, объединения запросов, группировки данных и т. д.
- Иногда достаточно сложно организовать вывод данных в таблицу. В этом случае удобно использовать встроенные средства среды программирования, такие как MessageBox.
- Использование меню позволяет определить диапазон действий, которые доступны пользователю. Формы помогают сделать работу с базой данных интуитивно понятной.
- Связывание элементов управления с таблицей позволяет выводить данные или структуру таблицы в списках и других элементах управления, что облегчает взаимодействие пользователя с базой данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.