Разработка приложения для базы данных - Разработка 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, чтобы произошло соединение с базой
- - Установить на форме компонент ADOTable, изменить имя на BookTable - Для свойства Connection из списка выбрать ADOConnection1 - В свойстве TableName выбрать имя таблицы - Для свойства Active установить значение True
- - Установить на форму компонент DataSource (вкладка Data Access),для свойства DataSet выбрать BookTable (указали какую таблицу отображать) - Установит компонент DBGrid (вкладка Data Controls), для свойства DataSource Выбрать DataSource1.
Управление отображением данных
- 2 часть 7. Модифицировать таблицу в базе данных, добавив еще два поля Дата и Мобильник (файл взять у преподавателя). 8. Перенести компоненты доступа к базе в специальное окно:
- - Выделить компоненты ADOConnection1, DataSource1 И BookTable и вырезать в буфер обмена (Edit /Cut) - Выбрать в меню File/New/Other, выбрать категорию Delphi Files, выбрать Data Module, выполнить Edit/Paste - Сохранить новый модуль под именем DataModuleUnit
- - Выбрать в меню File / Use Unit, выбрать в окне DataModuleUnit, Ок. - Проверьте теперь в редакторе кода после слова Implementation появилась запись Uses DataModuleUnit - Для компонента DBGrid1 изменить свойство DataSource, выбрав DataSource1.
- - Дважды щелкнуть по BookTable, отобразиться окно для редактирования полей базы, пока оно пустое - Щелкните в окне правой кнопкой мыши и выберите Add All Field - Выделить поле Key1 и убрать у него видимость, перейдите на главную форму, убедитесь, что поле не отображается - Отредактировать ширину колонок: выделить поле Фамилия, свойству DisplayWidth дать значение 15, сократите ширину для поля Имя. - Выделите поле Дата, для свойства DisplayLabel укажите значение Дата Рождения (имя поля не меняется, только подпись), для свойства DisplayFormat указать Dddddd, для свойства EditMask указать маску ввода 99/99/99. - Выделите поле Мобильник, для свойства DisplayValues указать значение Да;Нет
Поисковые поля
- 3 часть 13. В поле Город отображается числовое значение (номер города), а пользователю нужно показывать название города. Создадим отдельную таблицу Справочник Городов в нашей базе, включив в нее поля: Key1 (счетчик, ключевое поле) и Название Города (текстовое поле размер 30). Базу данных взять у преподавателя. 14. В модуль DataModuleUnit добавитькомпонент DataSource (назвать TownSource) и ADOTable (назвать TownTable), у компонента TownSource в свойстве DataSet указать TownTable. 15. Настроить отображение справочника городов:
- - В свойстве Connection указать компонент ADOConnection1 - В свойстве TableName указать таблицу Справочник Городов - Для свойства Active значение True - Дважды щелкнуть по TownTable, добавить все поля, поле Key1 сделать невидимым.
- - Добавить меню
Редактирование Назад
Сохранить
Добавить
Удалить
- Для пункта Добавить ввести код
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.
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
Цель Работы: Получить навыки использования компонента WebBrowser. Пояснения к работе Начиная с пятой версии Delphi появился компонент WebBrowser который...
-
Элементы пользовательского интерфейса - Разработка Windows-приложений в среде Borland Delphi
Цель Работы: Закрепить навыки проектирования интерфейса приложения, получить навыки использования стандартных диалоговых окон и буфера обмена. Пояснения...
-
Массивы - Разработка Windows-приложений в среде Borland Delphi
Цель работы Изучить различные алгоритмы сортировки списка. Закрепить навыки использования массивов данных и массивов объектов. Пояснения к работе...
-
Проектирование многооконных приложений - Разработка Windows-приложений в среде Borland Delphi
Цель Работы: Получить навыки добавления новых форм к проекту. Пояснения к работе Проект приложения, включающий несколько окон, создается поэтапно. Шаги...
-
Цель работы: Получить навыки эффективного использования интегрированной среды Delphi. Пояснения к работе Borland Delphi - это объектно-ориентированная...
-
Базовые компоненты Delphi. - Разработка Windows-приложений в среде Borland Delphi
Цель работы: Получить навыки использования в программе базовых компонентов Delphi. Пояснения к работе В форме практически любого приложения есть...
-
Программный интерфейс для базы данных я разрабатывал в объектно-ориентрованной среде Delphi, с помощью Embarcadero RAD Studio. Конструктор форм Delphi в...
-
Анимация - Разработка Windows-приложений в среде Borland Delphi
Цель Работы: Получить навыки использования анимационных компонентов. Пояснения к работе Компонент Animate расположен на вкладке Win32 и позволяет...
-
Использование звука и видео в приложениях. - Разработка Windows-приложений в среде Borland Delphi
Цель Работы Получить навыки использования медиаплеера при проектировании приложений. Пояснения к работе Компонент MediaPlayer (рис.1), значок которого...
-
Графические возможности Delphi - Разработка Windows-приложений в среде Borland Delphi
Цель Работы: Получить навыки использования в приложении битовых образов. Пояснения к работе Эффект перемещения сложной картинки может быть создан путем...
-
ВВЕДЕНИЕ - Разработка Windows-приложений в среде Borland Delphi
Целью учебного пособия является формирование практических навыков разработки и отладки Windows-приложений в среде Borland Delphi. Учебное пособие состоит...
-
Компонент TPanel является несущей конструкцией для размещения на ней других элементов управления, являясь в этом случае родителем для размещенных на ней...
-
- установить свойство Align в значение AlBottom ; - выбрать свойство Panels и с помощью кнопки в левом верхнем углу разбить панель на две части (рисунок...
-
Разработка тестового приложения. - Разработка Windows-приложений в среде Borland Delphi
Цель Работы: Закрепить навыки программирования в Delphi. Постановка задачи: Текстовый файл содержит несколько вопросов и 4 варианта ответа, из которых...
-
Среда объектно-ориентированного программирования Delphi Delphi - это комбинация нескольких важнейших технологий, высокопроизводительный компилятор в...
-
Общие требования Прежде чем начинать формулировать требования к пользовательскому интерфейсу, было принято решение, что необходимо ознакомиться с...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
Рекурсивные графические построения - Разработка Windows-приложений в среде Borland Delphi
Цель Работы: Получить навыки использования рекурсии. Пояснения к работе Рекурсивным называется объект, частично состоящий или определяемый с помощью...
-
Хранилище данных, Рассмотрение источников данных - Разработка аналитического приложения
Рассмотрение источников данных Данные для работы были взяты с сайта Международного валютного фонда (МВФ). МВФ - это организация, которая состоит из 189...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Основные конструкции для разработки базы данных - База данных "Кинотеатр"
База данных - это организованная структура, предназначенная для хранения информации. Систему управления базой данных (СУБД) можно определить, как...
-
Данное методическое руководство является фактически введением в предмет создания приложений с помощью Delphi / C++Builder и тем более...
-
Реальный проект состоит из многих (часто десятков) форм (окон), каждое из которых активируется в виде реакции на некоторое событие (нажатие кнопки...
-
Технические требования Конфигурация компьютера, на котором разрабатывалось программное приложение: - процессор Athlon64 X2 3800+ 2000MHz; -...
-
Трансформация данных, Выводы - Разработка аналитического приложения
Процесс трансофрмации в целом соответствует ETL процессу. ETL расшифровывается как "Extract, Transform, Load", что переводится на русский примерно как...
-
В связи с увеличением числа сотрудников, работающих в компании, а также с расширением рабочего проекта, возникла проблема, связанная с версионностью...
-
Инструментарий технологии программирования - программные продукты поддержки (обеспечения) технологии программирования. В рамках этого направления...
-
Реализация базы данных - Разработка мобильного приложения расчета и учета оплаты коммунальных услуг
Для создания таблиц базы данных, структура которой представлена на рис. 21 в программе использовались следующие запросы: CREATE TABLE tariffs ( Tariff_id...
-
В настоящее время биометрия входит в состав наиболее распространенных технологий и средств защиты информации. Отпечатки пальцев являются самой широко...
-
Хранилище данных - Разработка аналитического приложения
Как система управления базами данных (СУБД) был выбран Microsoft SQL Management Studio. Данная СУБД обладает понятным интерфейсом, она проста в...
-
Структура входной информации должна соответствовать структуре данных, определенной на этапе проектирования базы данных, если речь идет о заполнении...
-
Организация данных - Разработка программного приложения "Калькулятор коммунальных услуг"
Исходя из анализа предметной области, сделан выбор в пользу реляционной модели данных, формой представления которой является таблица, имеющая строки и...
-
Разработка базы данных мониторинга окружающей среды
ВВЕДЕНИЕ Информация о состоянии окружающей природной среды, об изменениях этого состояния давно используется человеком для планирования своей...
-
Предлагаемая библиотека хранит все данные в отдельных таблицах, таким образом он не обязан использовать ту же СУБД, что и основное приложение. В качестве...
-
Алгоритм работы. В результате работы АИС генерируются три xml документа - два со структурой сравниваемых баз данных и один с результатами сравнения. В...
-
В рамках выпускной квалификационной работы была разработана автоматизированная информационная система, предназначенная как для автоматического, так и для...
-
SimpleXML. В PHP версии 5.0 и выше появилось расширение для работы с xml структурой. Библитека SimpleXML содержит большое количество методов для работы с...
-
Тестируемый программный продукт является высокопроизводительным приложением, которое предоставляет возможность создания и настройки сетей беспроводного...
-
"WWWSQLDesigner" позиционируется как абсолютно бесплатный, доступный для пользователей, универсальный веб-редактор, значительно упрощающий процесс...
-
Поскольку клиентская часть представляет собой приложение на базе операционной системы Android, то для ее разработки был выбран рекомендуемый...
Разработка приложения для базы данных - Разработка Windows-приложений в среде Borland Delphi