Разработка программного обеспечения по автоматизации учебного процесса в колледже
Разработка программного обеспечения по автоматизации учебного процесса в колледже
Федеральное агентство по образованию федеральное Государственное образовательное учреждение среднего профессионального образования Бежецкий промышленно-экономический колледж Задание на дипломное проектированиепо специальности: «Программное обеспечение вычислительной техники и автоматизированных систем»Студента группы: П - 411________________________Ф.И.О.Тема работы:__ Разработка программного обеспечения по автоматизации учебного процесса в колледже _Дата выдачи задания: « » 2008г.Срок выполнения: « » 2008г.Задание составил преподаватель: ___________Рассмотрено и одобренона заседании методической комиссии«Математика, информатикаи вычислительная техника»Протокол № ___ от «___» __________ 2008г.Председатель комиссии: _________ И.А. Кувина20081. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. 1.1. Анализ требований, предъявляемых к организации учебного процесса в ССУЗах, и способов решения поставленной задачи. 1.2. Обоснование и теоретический анализ выбранного способа решения задачи. Описание предметной области и модели исследуемого объекта.1.3. Описание процесса разработки программного обеспечения по автоматизации учебного процесса в колледже и готового программного продукта.1.4. Описание результатов исследования созданного программного обеспечения по автоматизации учебного процесса в колледже.1.5. Составление программной и эксплуатационной документации. Описание и оценка полученных результатов.2. ПРАКТИЧЕСКАЯ ЧАСТЬ.2.1. Разработка программного обеспечения для организации учебного процесса в колледже, в котором необходимо:- Спроектировать логическую модель базы данных- Спроектировать физическую модель базы данных- Организовать ввод оценки за каждый месяц по каждой специальности, группе, студенту, предмету- Предусмотреть возможность корректировки данных- Организовать возможность подведения итогов успеваемости по каждой группе, специальности и в целом по колледжу (процентное содержание успеваемости и качественной успеваемости)- Предусмотреть возможность сравнения итоговых данных с итогами предыдущего месяца- Обеспечить формирование списков неуспевающих и успевающих на оценку «отлично»- Обеспечить формирование отчета (см приложение)СОДЕРЖАНИЕВведение1 Постановка задачи2 Описание предметной области2.1 Работа с базами данных в Delphi2.2 Компоненты доступа к данным в среде Delphi2.3 Компоненты для работы с данными2.4 Способы доступа к данным2.5 Язык запросов SQL3 База данных в Microsoft Access3.1 Этапы проектирования баз данных4 Этапы разработка программного продукта5 Описание результатов исследований6 Программная и эксплуатационная документацияЗаключениеCписок использованной литературыВВЕДЕНИЕВ настоящее время обработка и хранение информации не является чисто умозрительной задачей. Потеря информации или ее несвоевременное получение могут обернуться потерей денег. Именно этим обстоятельством можно объяснить столь бурный рост компьютерной техники и стремительное развитие электронных таблиц и систем управления базами данных (СУБД) в нашей стране и за рубежом. Для оперативного, гибкого и эффективного управления предприятиями, фирмами и организациями различных форм собственности, телекоммуникационными средствами гражданского и военного назначения, информационно - вычислительными, экологическими, радиолокационными системами широко внедряются системы автоматизированного управления, ядром которых являются базы данных (БД). При большом объеме информации и сложности, производимых с ней операций проблема эффективности средств организации хранения, доступа и обработки данных приобретет особое значение. Учитывая важность и значимость баз данных в современной жизни, весьма серьезные требования предъявляются к квалификации специалистов, создающих приложения на их основе.Приложение баз данных, как следует уже из его названия, предназначено для взаимодействия с некоторым источником данных -- базой данных (БД). Взаимодействие подразумевает получение данных, их представление в определенном формате для просмотра пользователем, редактирование в соответствии с реализованными в программе бизнес- алгоритмами и возврат обработанных данных обратно в базу данных. В качестве источника данных могут выступать как собственно базы данных, так и обычные файлы -- текстовые, электронные таблицы и т. д. Базы данных обслуживаются специальными программами -- системами управления базами данных (СУБД), которые делятся на локальные, преимущественно однопользовательские, предназначенные для настольных приложений, и серверные -- сетевые (часто удаленные), многопользовательские, функционирующие на выделенных компьютерах -- серверах. Механизм внутреннего представления данных является ядром приложения баз данных. Он обеспечивает хранение полученных данных в приложении и предоставляет их по запросу других частей приложения. Пользовательский интерфейс обеспечивает просмотр и редактирование данных, а также управление данными и приложением в целом. Бизнес-логика приложения представляет собой набор реализованных в программе алгоритмов обработки данных. Между приложением и собственно базой данных находится специальное программное обеспечение (ПО), связывающее программу и источник данных и управляющее процессом обмена данными. Это ПО может быть реализовано самыми разнообразными способами, в зависимости от объема базы данных, решаемых системой задач, числа пользователей, способами соединения приложения и базы данных. 1 ПОСТАНОВКА ЗАДАЧИПрограмма «Учет успеваемости» предназначена для облегчения работы по учету успеваемости студентов, которая на данный момент ведется вручную. Данная программа должна осуществлять контроль за оценками. Подводить итоги, сравнивать показатели, выводить итоги в электронную таблицу Excel. Программа должна позволять корректировку введенных данных.Колледжу для работы с программой необходимо ввести студентов из имеющихся табелей и корректировать данные для правильного вывода отчета. Программа должна быть простой и понятной для пользователя в эксплуатации и обслуживании.2 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ Данная программа необходима для колледжа, так как с ее помощью можно следить за успеваемостью студентов. данная программа будет написана на языке программирования Delphi, с использованием базы данных, созданных а MS ACSESS. Язык программирования Delphi - это комбинация нескольких важнейших технологий: - Высокопроизводительный компилятор в машинный код; - Объектно-ориентированная модель компонент; - Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов; -Масштабируемые средства для построения баз данных.[2] Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на С или ручного написания кода (хотя это возможно). В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. В Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.[2] Основной упор в модели Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые можно создать. В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, стоит просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих фирм в настоящее время превышает число 250. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста. Среда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Однако, разработки других фирм, а также свободно распространяемые программистами freeware-компоненты уже восполнили этот недостаток.[2] Соответствующий стандарт компонент назывался VBX. И этот стандарт так же поддерживается в Delphi. Однако, визуальные компоненты в Delphi обладают большей гибкостью. В Delphi визуальные компоненты пишутся на объектном паскале, на том же паскале, на котором пишется алгоритмическая часть приложения. И визуальные компоненты Delphi получаются открытыми для надстройки и переписывания. Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в офлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера), может использовать для хранения информации файлы формата .dbf (как в dBase или Clipper) или .db (Paradox). Если же он будет использовать локальный InterBase for Windows 4.0 (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер. Одно и то же приложение можно использовать как для локального, так и для более серьезного клиент-серверного вариантов.[10] Выпущены две версии Delphi - одна (Delphi Client-Server) адресована для разработчиков приложений в архитектуре “клиент-сервер”, а другая (Delphi for Windows) предназначена для остальных программистов. Приложения, разработанные при помощи Delphi, можно использовать без выплаты royalty-процентов и без оплаты runtime- лицензий. Она адресована корпоративным разработчикам, желающим разрабатывать высокопроизводительные приложения для рабочих групп и корпоративного применения. Клиент-серверная версия включает в себя следующие особенности: - SQL Links: специально написанные драйвера для доступа к Oracle, Sybase, Informix, InterBase; - Локальный сервер InterBase: SQL-сервер для Windows. СУБД для разработки в корпоративных приложений на компьютере, не подключенном к локальной сети; - ReportSmith Client/server Edition: генератор отчетов для SQL-серверов; - Team Development Support: предоставляет версионный контроль при помощи PVCS компании Intersolve (приобретается отдельно) или при помощи других программных продуктов версионного контроля; - Visual Query Builder - это средство визуального построения SQL-запросов; - лицензия на право распространения приложений в архитектуре клиент-сервер, изготовленных при помощи Delphi; - исходные тексты всех визуальных компонент. Delphi for Windows представляет из себя подмножество Delphi Client-Server и предназначен для разработчиков высокопроизводительных персональных приложений, работающих с локальными СУБД типа dBase и Paradox.Delphi Desktop Edition предлагает такую же среду для быстрой разработки и первоклассный компилятор как и клиент-серверная версия (Client/Server Edition). Эта среда позволяет разработчику быстро изготавливать персональные приложения, работающие с персональными СУБД типа dBase и Paradox. Delphi позволяет также создавать разработчику DLL, которая может быть вызвана из Paradox, dBase, C++ или каких-нибудь других готовых программ: - компилятор Object Pascal (этот язык является расширением языка Borland Pascal 7.0); - генератор отчетов ReportSmith 2.5; - среда визуального построителя приложений; - библиотека визуальных компонент; - Локальный сервер InterBase. В продукт, выпущенный компанией Borland для Delphi в RAD Pack for Delphi входит набор полезных дополнений, которые помогут разработчику при освоении и использовании Delphi. Это учебник по объектному паскалю, интерактивный отладчик самой последней версии, Borland Visual Solutions Pack (набор VBX для реализации редакторов, электронных таблиц, коммуникационные VBX, VBX с деловой графикой и т.п.), Resource WorkShop для работы с ресурсами Borland Pascal 7.0, а также эксперт для преобразования ресурсов BP 7.0 в формы Delphi. В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Некоторые продукты, предназначенные для скоростной разработки приложений (RAD - rapid application development) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное.[10] Delphi предназначен не только для программистов-профессионалов. Руководители предприятий, планирующие выделение средств на приобретение программных продуктов, должны быть уверены в том, что планируемые инвестиции окупятся. Программист на паскале способен практически сразу профессионально освоить Delphi. Специалисту, ранее использовавшему другие программные продукты, придется труднее, однако самое первое работающее приложение он сможет написать в течение первого же часа работы на Delphi. Открытая технология Delphi является мощным гарантом того, что инвестиции, сделанные в Delphi, будут сохранены в течение многих лет.[3] Локальный сервер InterBase - это инструмент предназначен только для автономной отладки приложений. В действительности он представляет из себя сокращенный вариант обработчика SQL-запросов InterBase, в который не включены некоторые возможности настоящего сервера InterBase. Отсутствие этих возможностей с лихвой компенсируется преимуществом автономной отладки программ. Team Development Support - средство поддержки разработки проекта в группе. Позволяет существенно облегчить управление крупными проектами. Это сделано в виде возможности подключения такого продукта как Intersolve PVCS 5.1 непосредственно к среде Delphi. Высокопроизводительный компилятор в машинный код - в отличие от большинства Паскаль - компиляторов, транслирующих в p-код, в Delphi программный текст компилируется непосредственно в машинный код, в результате чего Delphi- приложения исполняются в 10-20 раз быстрее (особенно приложения, использующие математические функции). Готовое приложение может быть изготовлено либо в виде исполняемого модуля, либо в виде динамической библиотеки, которую можно использовать в приложениях, написанных на других языках программирования. Благодаря такой архитектуре приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Delphi поддерживает использование уже существующих объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные при помощи Delphi. Delphi имеет полностью объектную ориентацию, разработчики могут создавать свои повторно используемые объекты для того, чтобы уменьшить затраты на разработку. Delphi предлагает разработчикам - как в составе команды, так и индивидуальным - открытую архитектуру, позволяющую добавлять компоненты, где бы они ни были изготовлены, и оперировать этими вновь введенными компонентами в визуальном построителе. Разработчики могут добавлять CASE-инструменты, кодовые генераторы, а также авторские help'ы, доступные через меню Delphi. Two-way tools - однозначное соответствие между визуальным проектированием и классическим написанием текста программы. Это означает, что разработчик всегда может видеть код, соответствующий тому, что он построил при помощи визуальных инструментов и наоборот. Визуальный построитель интерфейсов (Visual User-interface builder) дает возможность быстро создавать клиент-серверные приложения визуально, просто выбирая компоненты из соответствующей палитры. Библиотека объектов включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Delphi использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с выразительную мощь и простоту программирования, характерную для языков 4GL, и эффективность языка 3GL. Программисты немедленно могут начать производить работающие приложения, и им не придется для этого изучать особенности программирования событий в Windows. Delphi полностью поддерживает передовые программные концепции включая инкапсуляцию, наследование, полиморфизм и управление событиями.[3] Это очень важная особенность для разработчиков в среде Windows, поскольку в уже существующие Windows-приложения программист может интегрировать то, что разработает при помощи Delphi.[2] 2.1 Работа с базами данных в Delphi Общая характеристика технологии ADO В Delphi имеется ряд компонентов, которые предназначены только для работы с MS Access, эти компоненты находятся в ADO. Чтобы обрабатывать некоторую структуру данных для неё должна быть написана программа, поставщик этих данных в соответствии с системными требованиями, такая программа называется OLE DB Provider. Такие поставщики сегодня реализованы для разных структур данных и разных СУБД. С помощью технологии OLE DB можно однотипным образом обрабатывать сложную и специфическую информацию. Однако работа с OLE DB достаточно сложна, поэтому фирма Microsoft разработала новую технологию ADO, представляющая собой набор простых компонентов. Если планируется создать новое приложение, ориентированную на работу с данными и независящая не от конкретной СУБД и не от способа хранения информации, то лучше использовать технологию ADO.[5] Технология Microsoft ActiveX Data Objects (ADO) обеспечивает универсальный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB. Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к источникам данных различных типов (Рис. 1). Например, приложение, использующее ADO, может применять одинаково сложные операции и к данным, хранящимся на корпоративном сервере SQL, и к электронным таблицам, и локальным СУБД. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.[5] За серверы БД беспокоиться не стоит, обработка запросов SQL -- это их основная обязанностью. OLE DB представляет собой набор специализированных объектов СОМ, стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами. Согласно терминологии ADO, любой источник данных (база данных, электронная таблица, файл) называется хранилищем данных, с которым при помощи провайдера данных взаимодействует приложение. Минимальный набор компонентов приложения может включать объект соединения, объект набора данных, объект процессора запросов. Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных различных типов. Провайдеры ADO обеспечивают соединение приложения, использующего данные через ADO, с источником данных (сервером SQL, локальной СУБД и файловой системой. Для каждого типа хранилища данных должен существовать провайдер ADO. Провайдер «знает» о местоположении хранилища данных и его содержании, умеет обращаться к данным с запросами и интерпретировать возвращаемую служебную информацию и результаты запросов с целью их передачи приложению.[5] Механизм доступа к данным через ADO и многочисленные объекты, и интерфейсы реализованы в VCL Delphi в виде набора компонентов, расположенных на странице ADO. Все необходимые интерфейсы, обеспечивающие работу компонентов, объявлены и описаны в файлах OleDB.pas и ADODB.pas. Такая архитектура позволяет сделать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответствующий провайдер может быть создан для любого хранилища данных без внесения изменений в исходную структуру ADO. Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек. Компоненты ADO. На закладке ADO расположены компоненты: а) Компоненты соединения: - ADOConnection; - ADOCommand; б) Стандартные компоненты: - ADODataSet - универсальный набор данных; - ADOTable - таблица БД; - ADOQuery - запрос SQL; - ADOStoredProc - хранимая процедура. На странице ADO Палитры компонентов Delphi, кроме компонентов соединения есть стандартные компоненты, обозначающие набор данных и адаптированные для работы с хранилищем данных ADO. Компонент ADOConnection вобрал возможности перечислителя, источника данных и сессии с возможностями обслуживания транзакций. Текстовые команды ADO реализованы в компоненте ADOCommand. Наборы рядов можно получить при помощи компонентов ADOTable, ADOQuery, AOostoredProc. Каждый из них реализует способ доступа к конкретному типу представления данных в хранилище. Применительно к компонентам Delphi, совокупность возвращаемых из хранилища данных строк будем называть набором записей. Набор свойств и методов компонентов ADO обеспечивает реализацию всех необходимых приложению БД функций. Способы использования компонентов ADO немногим отличаются от стандартных компонентов VCL доступа к данным. Однако при необходимости разработчик может использовать все возможности интерфейсов ADO, обращаясь к ним через соответствующие объекты ADO. Ссылки на объекты имеются в компонентах.[10] Настройка соединения база данных с ADO. Перед созданием соединения необходимо определить его параметры. Для этого, как уже говорилось, предназначено свойство ConnectionString. Набор параметров изменяется в зависимости от типа используемого провайдера и может настраиваться как вручную, так и с помощью редактора. Для того чтобы вызывать редактор соединений, необходимо дважды щелкнуть на компоненте TADOConnection. В результате будет активировано диалоговое окно, показанное на рис. 2. В этом окне можно настроить соединение, используя поле Use Connection String, или загрузить параметры соединения из файла в разделе Use Data Link File. Параметры соединения хранятся в файлах UDL, представляющих собой обычные текстовые файлы, содержащие параметры соединения. Для того чтобы настроить соединение сданным провайдером, необходимо нажать на кнопку Build. Появится окно, в котором будет опубликован список доступных провайдеров. На вкладке Provider можно выбрать подходящий провайдер данных OLE DB для конкретного источника данных. В списке провайдеров также присутствуют провайдеры, предназначенные для доступа к конкретным службам операционной системы. На вкладке Connection необходимо указать путь к базе данных или сервер. Вкладка Advanced предназначена для указания режима доступа, аналогично свойству Mode. Вкладка АН предназначена для более «тонкой» настройки специфичных свойств провайдера. Для дальнейшей работы нужно выбрать провайдер Microsoft Jet 4.0 OLE DB Provider. Затем нужно перейти на вкладку Connection. В появившемся окне необходимо указать путь к базе данных. В поле Select or enter a database name нужно указать путь к демонстрационной базе dbdemos.mdb. После указания пути к базе данных и задания остальных необходимых параметров нужно проверить созданное соединение при помощи кнопки Test Connection. Если параметры соединения указаны верно, появится сообщение Test connection succeeded. После закрытия этого окна в строке соединения будет отображена информация, с помощью которой провайдер сможет получить доступ к данным. Компонент TADOQuery TADOQuery позволяет выполнять SQL-запросы при работе с данными через ADO. Соединение с хранилищем данных осуществляется стандартным методом. Текст запроса содержится в свойстве SQL. Параметры запроса содержатся в свойстве Parameters. В случае, если компонент возвращает набор данных, его следует открывать методом Open или присвоить свойству Active значение True. Если запрос не должен возвращать набор данных (операторы INSERT, UPDATE, DELETE и CREATE TABLE), то запрос следует выполнять вызовом метода ExecSQL. Метод возвращает число обработанных запросом записей. Свойство RowsAffected содержит число записей, которые затронул последний выполнявшийся запрос. Компонент TADOTable используется для доступа к хранилищам данных ADO и представления информации из них в табличном виде. Компонент предоставляет прямой доступ к каждой записи и ее полям, наследуя свойства и методы класса TCustomADODataSet. Компонент связывается с базой данных через свойства Connection или ConnectionString. Имя таблицы указывается в свойстве TableName. Свойство TableDirect указывает, каким образом набор данных связывается с хранилищем данных. Так как не все провайдеры поддерживают прямое соединение с набором данных, то в некоторых случаях для связи с хранилищем данных приходится использовать SQL-операторы. При установке свойству значения True компонент использует фоновые SQL-запросы для доступа к данным. Используя свойство Readonly, можно установить ограничение «только для чтения» на данную таблицу, запретив, таким образом, возможность изменять данные. В свойстве MasterSource указывается компонент TDataSource, используемый для создания отношения ссылочной целостности Master-Detail. Метод GetlndexNames возвращает список индексов, доступных компоненту в качестве списка. Компонент TDataSource - этот компонент связывается с набором данных. Эта связь осуществляется через свойство DataSet, которое содержит информацию о текущем состоянии набора данных. У этого компонента существует набор свойств и методов, которые облегчают работу с ним. Свойство AutoEdit автоматически переводит набор данных в состояние редактирования, если имеет значение True, когда связанный элемент ввода получает фокус. Метод Edit переводит связанный набор данных в состояние редактирования. Метод-обработчик OnDataChange вызывается при редактировании данных в связанном визуальном компоненте. Метод-обработчик события OnUpdateData вызывается перед тем, как измененные данные будут сохранены в наборе данных. Обработчик вызывается перед выполнением метода Post. Метод-обработчик события OnStateChange вызывается, когда изменяется состояние связанного набора данных. Набор данных - массив записей, полученный приложением по собственному запросу, называется набором данных. Набор данных как объект ведет свое начало от класса TDataSet и наследует его свойства.[10] 2.2 Компоненты доступа к данным в среде Delphi Особенности компонентов доступа к данным. Компоненты доступа к данным являются невизуальными компонентами. Таблицы БД располагаются на диске и являются физическими объектами. Для операций с данными, содержащимися в таблицах, используются наборы данных. В терминах системы Delphi набор данных представляет собой совокупность записей, взятых из одной или нескольких таблиц БД. Записи, входящие в набор данных, отбираются по определенным правилам, при этом в частных случаях набор данных может включать в себя все записи из связанной с ним таблицы или не содержать ни одной записи. Набор данных является логической таблицей, с которой можно работать при выполнении приложения. Взаимодействие таблицы и набора данных напоминает взаимодействие физического файла и файловой переменной.[5] В Delphi для работы с наборами данных служат компоненты DBTable и ADOTable, DBQuery и ADOQuery, DataAccess, DataControl, DecisionQuery и StoredProc. Компонент StoredProc используется для вызова хранимых процедур при организации взаимодействия с удаленными БД, а компонент UpDateSQL обеспечивает работу с кэшированными изменениями в записях. Компонент DecisionQuery применяется при построении систем принятия решений. Наиболее универсальными и, соответственно, часто используемыми являются компоненты Table и Query, задающие наборы данных.[5] Компонент доступа к данным DataSet. Базовые возможности доступа к БД обеспечивает класс DataSet, представляющий наборы данных в виде совокупности строк и столбцов (записей и полей). Этот класс предоставляет основные средства навигации и редактирования наборов данных. Компонент DataSet предназначен для представления набора данных из хранилища данных ADO. Он прост в использовании, имея только несколько собственных свойств и методов. Это единственный компонент ADO, инкапсулирующий набор данных, для которого опубликованы свойства, позволяющие управлять командой ADO. В результате компонент представляет собой гибкий инструмент, который позволяет (в зависимости от типа команды и ее текста) получать данные из таблиц, запросов SQL, хранимых процедур, файлов и т. д.[5] Компоненты доступа к данным Table и Query. Компоненты Table и Query являются производными от класса ADODataSet потомка класса DataSet. Они демонстрируют схожие с базовыми классами характеристики и поведение, но каждый них имеет и свои особенности. Компонент АDOTаblе обеспечивает использование в приложениях Delphi таблиц БД, подключенных через провайдеры OLE DB. По своим функциональным возможностям и применению он подобен стандартному табличному компоненту. В основе компонента лежит использование команды ADO, но ее свойства настроены заранее и изменению не подлежат. Другие свойства и методы компонента обеспечивают применение индексов. Так как не все провайдеры ADO обеспечивают прямое использование таблиц БД, то для доступа к ним может понадобиться запрос SQL. Компонент Table представляет собой набор данных, который в некоторый момент времени может быть связан только с одной таблицей БД. Этот набор данных формируется на базе навигационного способа доступа к данным, поэтому компонент Table рекомендуется использовать для локальных БД, таких как dBase и Paradox. При работе с удаленными БД следует использовать компонент Query. Связь между таблицей и компонентом Table устанавливается через его свойства TableName, которое задает имя таблицы. При задании значения свойства TableName указывается имя файла и расширение имя файла. На этапе разработки приложения имена всех таблиц доступны в раскрывающемся списке Инспектора объектов. В этот список попадают таблицы, файлы которых расположены в каталоге, указанном в свойстве TableName. Компонент ADOQuery обеспечивает применение запросов SQL при работе с данными через ADO. По своей функциональности он подобен стандартному компоненту запроса. Компонент Query представляет собой набор данных, записи которого формируются в результате выполнения SQL-запроса и основаны на реляционном способе доступа к данным. При работе с удаленными БД рекомендуется использовать набор данных Query. При работе с удаленными базами данных следует обращаться к средствам языка SQL. Это относится и к таким операциям, как перемещение по набору данных или вставка в него записей. Если же для компонента Query используются методы типа Next и Insert, то вместо реляционного способа доступа к данным будет применён навигационный. В результате набора данных Query будет мало чем отличаться от набора данных Table. В отличие от компонента Table. Набор данных Query может включать в себя записи более чем одной таблицы БД. Текст запроса, на основании которого в набор данных отбираются записи, содержится в свойстве SQL типа Strings. Запрос включает в себя команды на языке SQL и выполняется при открытии набора данных. Запрос SQL иногда называется SQL-программой. SQL-запрос можно формировать и изменять динамически, внося изменения в его текст непосредственно при выполнении приложения.[5] 2.3 Компоненты для работы с данными Понятие и особенности визуальных компонентов в среде Delphi. Визуальные компоненты для работы с данными расположены на странице DataControls Палитры компонентов и предназначены для построения интерфейсной части приложения. Они используются для навигации по набору данных, а также для отображения и редактирования записей. Часто эти компоненты называются элементами, чувствительные к данным.[5] Одни визуальные компоненты для работы с данными предназначены для выполнения операций с полями отдельной записи, они отображают и позволяют редактировать значение поля текущей записи. К таким компонентам относятся, например, однострочный редактор Edit и графический обзор Image. Другие компоненты служат для отображения и редактирования сразу нескольких записей. Примерами таких компонентов являются сетки DBGrid и DBCtrlGrid, выводящие записи набора данных в табличном виде. Визуальные компоненты для работы с данными похожи на соответствующие компоненты страниц Standard и Additional и отличаются, в основном, тем, что ориентированны на работу с БД и имеют дополнительные свойства DataSource и Datafield. Первое из них указывает на источник данных, а второе - на поле набора данных, с которым связан визуальный компонент. Например, Edit отображает строковое значение, позволяя пользователю изменять его. Для всех визуальных компонентов, предназначенных для отображения и редактирования значений полей, при изменении пользователем их содержимого набор данных автоматически переводится в режим редактирования. Произведённые с помощью этих компонентов изменения автоматически сохраняются в связанных с ними полях при наступлении определённых событий. При программном изменении содержимого эти визуальных компонентов набор данных автоматически в режим редактирования не переводится. Для этой цели в коде должен предварительно вызываться метод Edit набора. Чтобы сохранить изменения в поле (полях) текущей записи, мы должны также предусмотреть соответствующие действия, например, вызов метода Post или переход к другой записи набора данных.[5] Общая характеристика визуальных компонентов. В библиотеке визуальных компонентов для всех компонентов, в том числе и предназначенных для работы с данными, базовым является классу Control. Он обеспечивает основные функциональные атрибуты такие, как положение и размеры элемента, его заголовок, цвет и другие параметры. Класс Control включает в себя общие для визуальных компонентов свойства, события и методы. В целом визуальные компоненты можно разделить на две группы: оконные и неоконные. Оконный элемент управления представляет собой специализированное окно, предназначенное для решения конкретной задачи. К таким элементам относятся, например, поля редактирования, командные кнопки, полосы прокрутки. Такие компоненты, как Edit, DBEdit, Memo или DBMemo при получении фокуса ввода отображают в своей области курсор редактирования. Компоненты, не связанные с редактированием информации, получение фокуса ввода обычно отображают с помощью с помощью пунктирного черного прямоугольника. К неоконным элементам управления базовым является класс GraphiControl, производимый непосредственно от класса Control. Неоконные элементы управления на могут получать фокус ввода. Их достоинством является менее расходования ресурсов. Свойства и события визуальных компонентов для работы с данными. Свойства позволяют управлять внешним видом и поведением компонентов при проектировании и при выполнении приложения. Обычно установка значений большинства свойств компонентов выполняется на этапе проектирования с помощью инспектора объектов. Свойство Name указывает на имя компонента, которое используется для управления компонентов во время выполнения приложения. Каждый новый компонент, помещаемый на форму, получает имя по умолчанию, автоматически образуемое путем добавления к названию компонента его номера в порядке помещения на форму. На этапе разработки приложения мы можем изменять имя компонента на более осмысленное и соответствующее назначению компонента.
Страницы: 1, 2, 3
|