3. Методы решения задачи В программе данного курсового проекта применен способ изменения значения поля, связанного с ключевым полем. Если попробовать связать главную таблицу с подчиненной с помощью конструктора связей, а потом попытаться изменить значение поля A_s_id, то вместо смены значения движок базы данных выдает ошибку о том, что рекурсивные ссылки не поддерживаются. Поэтому в других программах реализуются так называемые подстановочные таблицы. Разработанная программа обходит проблему рекурсивной ссылки без использования подстановочных таблиц. В программе нет никаких связей заданных по умолчанию. Вместо этого на форме находится DBLookupComboBox, который связал поля s_id и a_s_id и в то же время ссылается на поле s_id. Если эти поля связать между собой в конструкторе связей, база данных будет выдавать ошибку, поскольку BDE полагает, что поле s_id связано само с собой. А если не связать, то программа не будет отображать отдельно записи абитуриентов по разным специальностям, а будет отображать все подряд. Программой обрабатываются два события связанные с DBLookupComboBox. Это onEnter и onCloseUp. Когда пользователь начинает выбор специальности из списка, то происходит событие onEnter, программа выполняет программный разрыв связи между таблицами, и поэтому во время раскрытия списка в таблицах сетки отображаются все записи абитуриентов. Зато, благодаря отсутствию связи можно выбрать любую специальность из списка, а не только ту, абитуриенты которой отображаются в данный момент на экране (см. рис. 4). Рисунок 4. Начало выбора специальности из списка Второе событие - onCloseUp – происходит, когда пользователь выбрал нужную специальность из списка и список закрывается. В обработчике этого события восстанавливается связь между главной и подчиненной таблицами. И снова можно перемещаться по строкам таблицы специальностей и смотреть абитуриентов по каждой из них (см. рис. 5). Основной функционал приложения реализован с помощью sql запросов: 1) select s . s _ code , count ( a . a _ id ) total from abiturients a , specialities s where a . a _ s _ id = s . s _ id group by s . s _ id , s _ code – считает сколько абитуриентов поступает на каждую специальность. 2) Select a . a _ surname , sum ( a _ math + a _ physic + a _ composition ) summa , s . s _ code , s . s _ faculty from abiturients a , specialities s where a . a _ s _ id = s . s _ id group by s _ code , s _ faculty , a _ surname order by summa des – этот запрос выполняет сортировку абитуриентов по убыванию суммы баллов с группировкой по факультетам и специальностям. Рисунок 5. Выбрана специальность code2 Заключение В данном курсовом проекте были выполнены все поставленные задачи в соответствии с техническим заданием. Определены состав и структура данных в виде 2-х связанных таблиц. Определены методы решения задач, разработаны SQL-запросы для выборки данных из БД, разработана программа в средстве разработки Borland Delphi. Описаны компоненты, использовавшиеся для разработки программы. Документированы возможности программы, разработано руководство пользователя. Литература 1. Вейскас Д. Эффективная работа с MicrosoftAccess 97. /Вейскас Д. – С-Пб.: Питер, 1999. 2. Калверт Ч. BorlandC++ Builder / Калверт Ч., Рейсдорф К. – М.: Нолидж, 1998. 3. Фаронов В.В. Система программирования Delphi / В.В. Фаронов – М.: Нолидж, 2002. 4. Фаронов В.В. Системное программирование / В.В. Фаронов – М.: Нолидж, 2003. 5. Inprise Corporation. Delphi Help. / Borland Press, 2000. Приложение А Схема данных
Приложение Б Схема работы программы Приложение В Текст программы a.pas unit a; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, ExtCtrls, Db, DBTables, DBCtrls, StdCtrls; type Ta_f = class(TForm) Panel2: TPanel; Panel3: TPanel; DBGrid1: TDBGrid; DBGrid2: TDBGrid; DBNavigator1: TDBNavigator; Label1: TLabel; Panel1: TPanel; DBNavigator2: TDBNavigator; DBLookupComboBox1: TDBLookupComboBox; RadioGroup1: TRadioGroup; Label2:
Оценок: 1007 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов. © 2016 - 2022 BigEdu.ru
|