Автор работы: Пользователь скрыл имя, 11 Июня 2014 в 20:57, курсовая работа
В настоящем проекте делается попытка проектирования такой АИС, которая бы способствовала повышению эффективности управления объектом, автоматизации труда работников, повышению их производительности, сокращению затрат на производственные расходы, и, как следствие этого, повышение прибыли, увеличение размеров уставного фонда, то есть достижение главных целей, которые предприятие ставит перед собой.
Объекты БД в 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-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер. [4]
Вот она - масштабируемость на практике - одно и то же приложение можно использовать как для локального, так и для более серьезного клиент-серверного вариантов.
При создании программы была использована технология использования баз данных. Любое приложение баз данных имеет в своем составе или использует сторонний механизм доступа к данным, который берет на себя подавляющее большинство стандартных низкоуровневых операций работы с базами данных. Например, любое такое приложение при открытии таблицы БД должно выполнить примерно одинаковый набор операций.
Взаимодействие приложения, созданного в среде разработки Delphi, и базы данных обеспечивает процессор баз данных Borland Database Engin. Он представляет собой набор динамических библиотек, функции которых позволяют не только обращаться к данным, но и эффективно управлять ими на стороне приложения.
BDE представляет собой набор
динамических библиотек, которые "умеют"
передавать запросы на
Для успешного доступа к данным приложение и BDE должны обладать информацией о местоположении файлов требуемой базы данных. Задание маршрута входит в обязанности разработчика.
Самый простой способ заключается в явном задании полного пути к каталогу, в котором хранятся файлы БД. Но в случае изменения пути, что случается не так уж редко (например, при переносе готового приложения на компьютер заказчика), разработчик должен перекомпилировать проект с учетом будущего местонахождения БД или предусмотреть специальные элементы управления, в которых можно задать путь к БД.
Для решения такого рода проблем разработчик может использовать псевдоним базы данных, который представляет собой именованную структуру, содержащую путь к файлам БД и некоторые дополнительные параметры. Помимо маршрута к файлам базы данных, псевдоним BDE обязательно содержит информацию о драйвере БД, который используется для доступа к данным. Наличие других параметров зависит от типа драйвера, а значит от типа СУБД.
Для управления псевдонимами баз данных, настройки стандартных и дополнительных драйверов в составе BDE имеется специальная утилита -BDE Administrator (исполняемый файл BDEADMIN.EXE). После создания папки в которой будут храниться таблицы баз данных мы создаем в BDE Administrator псевдоним с помощью команды New. После этого даем имя псевдониму и указываем путь к папке с таблицами. После этого сохраняем псевдоним командой Apply.
Среда разработки Delphi ориентирована на создание самых разнообразных приложений баз данных. Это и небольшие локальные программы, и многоуровневые распределенные системы, использующие новейшие технологии. Но, несмотря на сложность приложения, в его основе всегда лежит базовый механизм обеспечения доступа к данным. Он создается триадой компонентов:
- компонент Набора данных (TTable, TQuery, TStoredProc);
- компонент TDataSource;
- один или несколько
Компоненты доступа к данным расположены на странице Data Access Палитры компонентов. Компоненты отображения данных расположены на странице Data Controls Палитры компонентов. В целом, благодаря компонентному подходу, разработка простого приложения баз данных оказывается ничуть не сложнее создания обычного приложения. Достаточно разместить на форме несколько компонентов, настроить их свойства и мы получаем работающее приложение баз данных. [5]
Компонент доступа к данным является основой приложения баз данных. На основе выбранной таблицы БД он создает набор данных и позволяет эффективно управлять им. В процессе работы такой компонент тесно взаимодействует с BDE. Все компоненты доступа к данным являются не визуальными.
Обычно приложение баз данных для организации взаимодействия с пользователем использует обычные формы. Поэтому в качестве основы проекта такого приложения подойдет проект обычного приложения.
Для создания нового проекта достаточно выбрать команду New Application из меню File или воспользоваться Репозиторием объектов, который открывается командой New из меню File.
Затем на форму нового проекта необходимо перенести компонент отображения данных (например, TTable) и выполнить следующие действия:
- Подключить к компоненту базу данных. Для этого используется свойство DatabaseName, доступное в Инспекторе объектов. В нем необходимо указать зарегистрированный в BDE псевдоним базы данных или полный путь к файлам БД. Псевдоним можно выбрать из списка этого свойства в Инспекторе объектов.
- Подключить к компоненту таблицу БД. Для этого используется свойство TableName, доступное в Инспекторе объектов. После выполнения действий первого этапа в списке этого свойства должны появиться имена всех доступных в подключенной базе данных таблиц. Содержимое списка может изменяться в зависимости от значения свойства TableType, которое определяет тип доступных таблиц. При значении ttDefault для локальных СУБД в списке приводятся имена файлов всех таблиц вместе с расширением. Для серверов БД всегда доступны только имена. Другие значения свойства TableType определяют типы локальных СУБД: (ttAscii, ttDBase, ttparadox, ttFoxpro). После выбора имени таблицы в свойстве TableName компонент оказывается связанным с ней.
- Переименовать компонент. Это не обязательное действие. Тем не менее, в любом случае желательно присваивать компонентам доступа к данным осмысленные имена, соответствующие названиям подключенных таблиц. Обычно название компонента полностью копирует название таблицы или комбинирует его со словом Table (например, orders или OrdTable).
- Активизировать связь между
компонентом и таблицей БД. Для
этого используется свойство Active.
Если в инспекторе объектов
присвоить этому свойству
На втором этапе разработки приложения баз данных необходимо перенести на форму и настроить компонент TDataSource. Он обеспечивает взаимодействие набора данных с компонентами отображения данных. Чаще всего одному набору данных соответствует один компонент TDataSource, хотя их может быть и несколько.
Для настройки свойств компонента необходимо выполнить следующие действия:
На третьем этапе создания приложения баз данных необходимо разработать пользовательский интерфейс на основе компонентов отображения данных.
Эти компоненты предназначены специально для решения задач просмотра и редактирования данных. Внешне большинство этих компонентов ничем не отличаются от стандартных элементов управления. Более того, многие из компонентов отображения данных являются наследниками стандартных компонентов — элементов управления.
Компоненты отображения данных должны быть связаны с компонентом TDataSource и через него с компонентом набора данных. Для этого используется свойство DataSource. Оно присутствует во всех компонентах отображения данных.
Большинство компонентов предназначены для представления данных из одного-единственного поля. В таких компонентах имеется еще одно свойство DataField, которое определяет поле связанного набора данных, отображаемое в компоненте.
Особое значение для приложений баз данных играет компонент TDBGrid, который представляет данные в виде таблицы. В столбцах таблицы размещаются поля набора данных, а в строках — записи. Для этого компонента не имеет смысла определять конкретное поле.
Таким образом, для каждого компонента отображения данных необходимо выполнить следующие операции:
Отдельное место среди компонентов отображения данных занимает компонент TDBNavigator. Он предназначен для перемещения по записям набора данных. Обычно он используется в паре с компонентом TDBGrid.
Любое приложение баз данных должно уметь выполнять как минимум две операции. Во-первых, иметь информацию о местонахождении базы данных, подключаться к ней и считывать имеющуюся в таблицах БД информацию. Приложения баз данных Delphi используют для этих целей возможности процессора БД BDE.
Во-вторых, обеспечивать представление и использование полученных данных. Множество записей одной или нескольких таблиц, переданные в приложение в результате выполнения запроса, будем называть набором данных. Понятно, что в объектно-ориентированной среде для представления какой-либо группы записей приложение должно использовать возможности некоторого класса. Этот класс должен инкапсулировать набор данных и обладать методами для управления записями и полями.
Таким образом, сам набор данных и класс набора данных является той осью, вокруг которой вращается любая деятельность приложения. Пользователь просматривает на экране данные — это результат использования набора данных. Пользователь решил изменить какую-то цифру — он изменит содержимое ячейки набора данных.
При закрытии приложение сохраняет все изменения — это набор данных приложения передается в базу данных для сохранения. Поэтому не удивительно, что разработчики VCL уделили особое внимание созданию максимально эффективной иерархии классов, обеспечивающих использование наборов данных.
Класс TDataSet является базовым классом иерархии, он инкапсулирует абстрактный набор данных и реализует максимально общие методы работы с ним. В него можно передать записи из таблицы базы данных или строки из обычного текстового файла — набор данных будет функционировать одинаково хорошо.
Класс TBDEDataSet обеспечивает использование функций BDE при работе с набором данных. Именно этот класс наполняет реальным содержанием методы, реализующие операции управления записями набора данных как частью базы данных.
Класс TDBDataSet обеспечивает доступ к таблицам БД через BDE, получение и передачу данных.
Как известно, набор данных представляет собой двумерную таблицу данных. Строки соответствуют записям, столбцы — полям таблицы БД. При этом поля составляют структуру данных таблицы и играют важнейшую роль в работе набора данных.
Для представления полей в наборе данных используется очень важное свойство Fields. Именно к этому свойству обращается разработчик при необходимости прочитать или записать значение какого-либо поля. Это переменная объектного типа. Для инкапсуляции списка полей набора данных предназначен специальный класс TFieid.
Для каждого поля в наборе данных хранится текущее значение, так как ввиду больших размеров таблиц БД размещение в адресном пространстве всей информации из таблицы не представляется возможным. Для хранения текущих значений полей используется специальный буфер. Все текущие значения полей составляют текущую запись набора данных.
Каждому полю соответствует специальный объект TFieidDef, в котором содержится описание основных параметров поля.
Механизм редактирования данных использует описанный выше буфер текущих значений полей и ряд методов, выполняющих основные операции с текущими значениями полей и текущей записью целиком.
Для отдельного поля значение можно изменить, обнулить или восстановить.
Записи можно добавлять в конец набора данных, вставлять на место текущей записи (при этом старая запись смешается на одну позицию к концу набора данных), удалять.