Разработка приложения для базы данных - Разработка Windows-приложений в среде Borland Delphi

Цель Работы: Получить навыки создания приложения для базы данных.

Пояснения к работе

Для работы с базами в Delphi есть несколько наборов компонент, каждый из них подходит для решения определенного круга задач и использует разные технологии доступа к данным, отличаются по возможностям.

Краткий обзор средств доступа к базам данных

Вкладка

Data Access

Содержит основные компоненты доступа к данным, они общие для всех и могут использоваться совместно с другими группами компонентов

Вкладка

Data Controls

Содержит компоненты для отображения и редактирования данных в таблицах, они используются вне зависимости от используемой технологии доступа к данным.

Вкладка

BDE

Содержит компоненты, позволяющие получать доступ к базам данных по технологии BDE (Borland Database Engine, разработана фирмой Borland). Эта технология хорошо работает с устаревшими типами баз данных: Paradox, dBase, FoxPro, в настоящее время фирма Borland ее не поддерживает.

Вкладка DBEXpress

Содержит компоненты, поддерживающие технологию DBEXpress, которая хорошо подходит для программирования клиент-серверных приложений, использующих базы данных Oracle, DB2, MySQL

Вкладка

ADO

Содержит компоненты, поддерживающие технологию ADO (Active Data Objects),разработанную Microsoft. Их желательно использовать при работе с базами данныхMS Access и MS SQL Server.

Компоненты вкладки BDE

Table

Обеспечивает доступ к таблицам БД, создает набор данных, который передает все данные из физической таблицы БД с помощью BDE

Query

Предназначен для формирования набора данных их физической таблицы в соответствии с определенным запросом на языке SQL

StopedProc

Делает доступными процедуры, хранимые на сервере

Database

Устанавливает связь с БД

BatchMove

Для групповых операций переноса данных из одного набора в другой

Session

Текущий сеанс работы с БД, для общего управления связью приложения с БД. Генерируется автоматически

Компоненты вкладки Data Access

DataSource

Источник данных, предназначен для связи компонентов типа Table и Query с компонентами отображения данных. Этот компонент исполняет роль посредника между элементами интерфейса приложения и наборами данных.

Остальные компоненты служат для связи с XML-документами, кеширования и работы с пакетами

Компоненты вкладки Data Controls

DBGrid

Сетка - для вывода таблицы с данными БД

DBNavigator

Навигатор - для управления работой БД

DBText

Надпись - для вывода строкового значения из поля таблицы БД

DBEDIT

Однострочный редактор - для вывода и редактирования строкового значения поля

DBMemo

Многострочный редактор - для вывода значения поля типа Memo

DBImage

Для вывода значения графического образа

DBListBox

Простой список - для вывода списка строковых значений поля

DBComboBox

Комбинированный список - для вывода списка строковых значений поля

DBCheckBox

Независимый переключатель - для вывода значения поля типа CheckBox

DBRadioGroup

Группа зависимых переключателей

DBLookupListBox

Простой список, формируемый по полю набора данных

DBRichEdit

Полнофункциональный текстовый редактор

DBCtrlGrid

Модифицированная сетка

DBChart

Диаграмма - для вывода графиков по данным БД

Компоненты ADO

ADOConnection

Для управления соединением с базой данных и передачи запросов поставщику данных

ADOCommand

Для управления информацией о запросе к базе или команде

ADORecordset

Содержит таблицу, которая является результатом запроса к базе данных

ADOField

Содержит описание поля в таблице, возращенной поставщиком данных.

Модуль данных (data modul) - это объект класса TDataModule, который, как и обычная форма, предназначен для размещения компонентов. Отличие состоит в том, что в них размещаются невизуальные компоненты. Это удобно для централизованного хранения в проекте компонентов Table и др. компонентов, используемых для организации доступа к базам данных.

Постановка задачи

В СУБД Access создана база данных "Телефонный справочник" (файл db_Telefon. mdb). База данных содержит одну таблицу, структура таблицы представлена на рисунке.

Используя технологию ADO, разработать приложение, которое будет работать с этой базой.

Порядок выполнения

    1 часть 1. Создать новый проект, с вкладки DbGo поместить на форму компонент TADOConnection; 2. Настроить соединение с сервером:
      - Дважды щелкнуть по компоненту ADOConnection - В окне выбрать переключатель Use Connection String и щелкнуть Build (вызов мастера) - На вкладке Поставщик Данных выбрать драйвер доступа к данным Microsoft Jet 4.0OLE DB Provider и нажать Далее; - На вкладке Подключение в строке Выберите Или Введите Имя Базы Данных введите имя Db_Telefon. mdb

Примечание: Если База И Исполняемый Файл Будут Хранится В Одной Папке, Путь Указывать Необязательно

    - Щелкнуть по кнопке Проверить Подключение. Если все указано верно, то выводится сообщение. Нажмите ОК. - Закройте окно создания строки подключения Ок, закрыть редактор строки подключения ОК. 3. Продолжить настройку приложения:
      - Для компонента ADOConnection отключить свойство LoginPromt - False(для того, чтобы при обращении к базе не запрашивался пароль) - Для свойства Connected задать значение True, чтобы произошло соединение с базой
    4. Для получения доступа к таблице базы:
      - Установить на форме компонент ADOTable, изменить имя на BookTable - Для свойства Connection из списка выбрать ADOConnection1 - В свойстве TableName выбрать имя таблицы - Для свойства Active установить значение True
    5. Для отображения данных из таблицы:
      - Установить на форму компонент DataSource (вкладка Data Access),для свойства DataSet выбрать BookTable (указали какую таблицу отображать) - Установит компонент DBGrid (вкладка Data Controls), для свойства DataSource Выбрать DataSource1.
    6. Приложение готово. Запустите его, добавьте новые строки, отредактируйте существующие строки, удалите что-нибудь (Ctrl/Del). Для вставки строки используйте Ins.

Управление отображением данных

    2 часть 7. Модифицировать таблицу в базе данных, добавив еще два поля Дата и Мобильник (файл взять у преподавателя). 8. Перенести компоненты доступа к базе в специальное окно:
      - Выделить компоненты ADOConnection1, DataSource1 И BookTable и вырезать в буфер обмена (Edit /Cut) - Выбрать в меню File/New/Other, выбрать категорию Delphi Files, выбрать Data Module, выполнить Edit/Paste - Сохранить новый модуль под именем DataModuleUnit
    9. Отобразить на экране менеджер проектов New / Project Manager 10. Вернитесь на главную форму, обратите внимание, что данных в сетке нет, т. к. потеряна связь с компонентами доступа к базе. Восстановим связь:
      - Выбрать в меню File / Use Unit, выбрать в окне DataModuleUnit, Ок. - Проверьте теперь в редакторе кода после слова Implementation появилась запись Uses DataModuleUnit - Для компонента DBGrid1 изменить свойство DataSource, выбрав DataSource1.
    11. Перейти в модуль DataModuleUnit и настроить отображение данных:
      - Дважды щелкнуть по BookTable, отобразиться окно для редактирования полей базы, пока оно пустое - Щелкните в окне правой кнопкой мыши и выберите Add All Field - Выделить поле Key1 и убрать у него видимость, перейдите на главную форму, убедитесь, что поле не отображается - Отредактировать ширину колонок: выделить поле Фамилия, свойству DisplayWidth дать значение 15, сократите ширину для поля Имя. - Выделите поле Дата, для свойства DisplayLabel укажите значение Дата Рождения (имя поля не меняется, только подпись), для свойства DisplayFormat указать Dddddd, для свойства EditMask указать маску ввода 99/99/99. - Выделите поле Мобильник, для свойства DisplayValues указать значение Да;Нет
    12. Просмотрите, как изменилось отображение данных.

Поисковые поля

    3 часть 13. В поле Город отображается числовое значение (номер города), а пользователю нужно показывать название города. Создадим отдельную таблицу Справочник Городов в нашей базе, включив в нее поля: Key1 (счетчик, ключевое поле) и Название Города (текстовое поле размер 30). Базу данных взять у преподавателя. 14. В модуль DataModuleUnit добавитькомпонент DataSource (назвать TownSource) и ADOTable (назвать TownTable), у компонента TownSource в свойстве DataSet указать TownTable. 15. Настроить отображение справочника городов:
      - В свойстве Connection указать компонент ADOConnection1 - В свойстве TableName указать таблицу Справочник Городов - Для свойства Active значение True - Дважды щелкнуть по TownTable, добавить все поля, поле Key1 сделать невидимым.
    16. Создать новую форму (name - TownBookForm )для редактирования справочника, сохранить ее в модуле под именем TownBookUntil 17. Подключить к новой форме модуль DataModuleUnit, выполнив File / Use Unit, выбрать DataModuleUnit, Ок 18. Добавить на форму сетку DBGrid, в свойстве DataSource указать таблицу Справочник Городов - DataModule1.TownSource. 19. Доработать интерфейс формы Справочник городов:
      - Добавить меню

Редактирование Назад

Сохранить

Добавить

Удалить

- Для пункта Добавить ввести код

DataModule1.TownTable. Insert;

DbGrid1.SetFocus;

- Для пункта Сохранить ввести код

If DataModule1.TownTable. Modified Then

DataModule1.TownTable. Post;

- Для пункта Удалить ввести код

DataModule1.TownTable. Delete

20. Перейти на главную форму, создать меню:

Файл Редактирование Справочники Выход Справочник городов

21. Для пункта Справочник городов ввести код:

TownBookForm. ShowModal;

    22. Загрузить программу, вызвать Справочник Городов и добавить несколько строк. Закрыть программу. 23. Для компонента DBGrid1 на главной форме для свойства Options / DgEditing установить значение False (редактирование данных запрещено). 24. В пункт меню Редактирование добавить подпункты: Добавить Запись, Редактировать Запись, Удалить Запись 25. Создать панель с кнопками для быстрого доступа к пунктам меню 26. Создать новую форму для редактирования каждой записи, изменить свойства:

Name - EditFormUnit,

BorderStyle - bsSingle,

Position - poMainFormCenter

Форму сохранить по именем EditFormUnit.

    27. Подключить к новой форме модуль с данными 28. Привести форму в соответствие с образцом:
      - Поля для ввода брать на вкладке Data Control. - Чтобы компонент видел данные из нужного поля, указать у него в свойстве DataSource нужную таблицу (DataModule1.DataSource1, также как это делали с сеткой редактирования), в свойстве DataField указать поле, которое надо редактировать (самостоятельно). - Для выбора города добавить компонент DBLookupComboBox, для свойства DataSource указать основную таблицу DataModule1.DataSource1, в свойстве DataField указать поле Город, в свойстве ListSource указать DataModule1.TownSource, свойстве ListField указать Название Города, в свойстве KeyField указать поле Key1.
    29. Для кнопки Сохранить ввести код:

If DataModule1.BookTable. Modified Then

DataModule1.BookTable. Post;

30. Для кнопки Отмена ввести код:

DataModule1.BookTable. Cancel

31. Перейти на главную форму и для пункта меню Добавить запись ввести код:

DataModule1.BookTable. Insert;

EditRecordForm. ShowModal;

32. Для пункта меню Редактировать запись ввести код:

EditRecordForm. ShowModal;

    33. Загрузить программу, создать новую запись, в поле Город выбрав какое-нибудь значение из справочника, нажмите Сохранить. Просмотрите сетку. 34. Результат показать преподавателю 35. Для пункта меню Удалить запись ввести код:

If Application. MessageBox(PChar('Вы действительно хотите удалить'+DataModule1.BookTableDSDesigner. AsString), 'Внимание!!!', MB_OkCancel)=id_Ok then DataModule1.BookTable. Delete;

Примечание:

DataModule1 имя модуля

BookTableDSDesigner имя поля с фамилией (Дважды Щелкнуть По BookTable И Смотреть Свойство Поля Фамилия, Если Имя Отличается, Скорректировать Код)

AsString метод, возвращающий значение в виде строки

    36. В сетке на главной форме город отображается в виде индекса строки в справочнике городов, исправим недостаток, для этого:
      - Перейти в модуль DataModule1, выделить компонент - Сделать его неактивным (Active False)и дважды по нему щелкнуть - Создать новое поле: щелкнуть в окне, выбрать New Field - В окне заполнить поля следующим образом:

Name - Town, Type - String,

FieldType - Lookup (поисковое поле),

KeyField - Город,

DataSet - TownTable (таблица, где нужно искать)

Lookup Keys - Key1 (по этому полю надо искать),

Result Field - Название города, нажать Ок

    - Появилось новое поле, перетащить его ближе к полю Город - Сделать таблицу BookTable вновь активной загрузить программу, просмотреть результат. 37. Сделать поле Город невидимым, чтобы не видеть числа, а над полем Town написать надпись Город (самостоятельно)

Сортировка и фильтрация данных

4 часть

Поиск данных и сортировка выполняются по индексным полям. В телефонном справочнике чаще ищут информацию по номеру телефона или фамилии. В таблице Справочник для полей Фамилия И Телефон свойство Индексированное Поле имеет значение Да(допускаются Совпадения).

    38. Добавить в меню пункт Сортировка и подпункты По Телефону, По Фамилии 39. для подпунктов ввести соответствующий код:

DataModule1.BookTable. IndexFieldMNames:='Фамилия';

DataModule1.BookTable. IndexFieldMNames:='Телефон';

    40. Реализовать функцию поиска данных, для этого:
      - добавить на форму панель, на нее метку Найти и TEdit с именем FindEdit - ввести следующий код:

Procedure TForm1.FindEditChange(Sender:TObject);

Begin

If Length(FindEdit. Text)>0 then

DataModule1.BookTable. Filtered:=true

Else DataModule1.BookTable. Filtered:=false;

DataModule1.BookTable. Filter:='Фамилия>'''+FindEdit. Text+'''';

End;

41. Проверить работу программы.

Фильтры в ADO работают плохо, но в Delphi можно расширить возможности фильтрации.

42. Перейти в модуль DataModule1, для компонента BookTable выбрать событие OnFilterRecord и ввести код:

Accept:=false;

If copy(BookTableDSDesigner. AsString,1,Length(Form1.FindEdit. Text))=Form1.FINDedit. Text then

Accept:=true; {строка соответствует фильтру, ее можно отображать}

End;

43. Проверить работу программы.

ИНДИВИДУАЛЬНЫЕ ПРОЕКТЫ

Общие рекомендации по разработке

Разработка индивидуального проекта может быть одним из вариантов завершения изучения темы "Программирование в среде Delphi".

Цель- овладение умением обобщить и систематизировать теоретический курс по "Основам алгоритмизации и программирования" и умение применить его практически.

Работа над проектом ведется студентом самостоятельно и состоит из нескольких этапов:

Первый Этап - подготовительный - имеет цели:

    - самостоятельный выбор темы проекта, ознакомление с общими требованиями по разработке; - утверждение варианта темы преподавателем в ходе собеседования; - сбор исходных данных в соответствии с темой проекта, работа с литературой;

Второй Этап - проектирование приложения.

Проектирование приложения включает в себя:

    - разработку алгоритма; - проектирование интерфейса приложения; - программную реализацию; - тестирование и отладку.

Третий Этап - итоговый - предполагающий оформление отчета и защиту проекта.

Отчет должен включать:

    - титульный лист и содержание; - постановку задачи; - описание интерфейса приложения; - инструкцию пользователю; - листинг программного кода с комментариями. - заключение (дать характеристику разработанному приложению, указать возможную сферу применения). - список использованной литературы;

На защиту индивидуального проекта представляется отчет, подготовленный с помощью текстового редактора и напечатанного на принтере, и электронная версия приложения.

Примерные темы индивидуальных проектов

Приложение "Морской Бой"

Постановка Задачи: Разработать приложение, реализующее алгоритм игры "Морской бой". Играют два игрока - пользователя. Каждый игрок выполняет расстановку своих кораблей: два трехпалубных, три двухпалубных, четыре однопалубных корабля. После проверки правильности расстановки кораблей, изображение кораблей "прячется" от противника. Разыгрывается право первого хода. Активный игрок выполняет ход, указывая координаты корабля противника. Переход ход происходит в случае "стрельба мимо". Выигрывает тот, кто первый "подобьет" корабли противника.

Приложение "Как Стать Миллионером"

Постановка Задачи: Разработать приложение, реализующее алгоритм игры "Кто хочет стать миллионером?". Подготовить внешний файл, содержащий 14 вопросов и 4 варианта ответов на каждый из них. Приложение должно выводить очередной вопрос и варианты ответов. Переход к следующему вопросу происходит только в случае верного ответа. Реализовать возможность трех подсказок: 50 на 50, "помощь зала", звонок другу. Игрок имеет право на три несгораемых суммы.

Приложение "Арканоид"

Постановка Задачи: Разработать приложение, реализующее алгоритм игры "Арканоид". На игровом поле расположена "кирпичная стенка". Игрок, управляя "лаптой", должен отбивать постоянно движущийся шарик и выбивать "кирпичи" в стенке. Если шарик не отбит лаптой, игрок теряет свои очки. Игрок выигрывает, если все "кирпичи" стали невидимы.

Приложение "Клавиатурный Тренажер"

Постановка Задачи: Разработать приложение, позволяющее тренировать навыки работы с клавиатурой. Предусмотреть несколько уровней сложности тренажера. Приложение должно сохранять лучшие результаты игроков.

Приложение "Крестики - Нолики"

Постановка Задачи: Разработать приложение, реализующее алгоритм игры "Крестики-нолики". В игре участвуют два игрока: пользователь и компьютер. В начале игры разыгрывается право первого хода. Выигрывает тот, кто первый построит линию из своих знаков.

Приложение "Будильник"

Постановка Задачи: Разработать приложение, позволяющее имитировать работу будильника с двумя стрелками: часовой и минутной. Будильник должен показывать текущее время. Предусмотреть возможность настройки циферблата будильника (цвет, шрифт) и звуковой сигнал на определенное пользователем время.

Приложение "Шифрование Текста"

Постановка Задачи: Разработка приложения, реализующего алгоритмы различных способов шифрования и дешифрования текстовой информации.

Приложение "Построение Графика Функции"

Постановка Задачи: Разработать приложение, позволяющее исследовать графики различных математических функций. Предусмотреть возможность масштабирования графика и выбор тип линий.

Приложение "Обучающая Программа По Английскому Языку"

Постановка Задачи: Разработать приложение, позволяющее пользователю воспроизводить произношение некоторых английских слов и их перевод.

Приложение "Файловый Менеджер"

Постановка Задачи: Разработать приложение, позволяющее пользователю работать с файловой системой используемого компьютера:

    - просмотр содержимого внешних носителей информации; - просмотр дерева каталогов диска; - просмотр содержимого выбранного каталога; - удаление и переименование файла; - определение объема свободной памяти диска.

Похожие статьи




Разработка приложения для базы данных - Разработка Windows-приложений в среде Borland Delphi

Предыдущая | Следующая