Создание базы данных "Телефонный справочник"

Автор работы: Пользователь скрыл имя, 09 Апреля 2013 в 09:01, курсовая работа

Описание работы

С начала 60-70хх началось бурное развитие компьютеризации всех крупных промышленных центров. Ближе к 80-ым, компьютеры стали появляться и в учебных заведениях, предмету «Информатика» стали уделять огромное внимание. Стали появляться языки программирования высокого уровня такие, как Delphi, C++.
Borland Delphi появляется в конце 1993 г. и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования.

Содержание работы

Введение...................................................................................................................3
1. Общие сведения о языке программирования Delphi........................................6
1.1. Главное меню..........................................................................................7
1.1.1. Пиктографические кнопки...............................................................10
1.1.2. Настройки окон..................................................................................11
1.1.3. Палитра компонентов.......................................................................11
1.2. Окно формы..........................................................................................12
1.3. Окно кода программы..........................................................................13
2.Создание Базы данных «Телефонный справочник».......................................17
2.1. Delphi и базы данных..............................................................................17
2.2. Как создавать и использовать базы данных Access.......................17
2.3. Пример работы с базами данных.........................................................20
2.4. Создание Data Module.................................................................23
2.5. Создание таблицы: Справочник городов...........................................26
2.6. Создание окна: Редактирования........................................................29
2.7. Улучшенный пример с поисковыми полями......................................32
2.8. Сортировка...............................................................................................33
2.9. Язык запросов SQL.................................................................................34
2.10. Связанные таблицы...............................................................................35
Заключение.............................................................................................................39
Список используемой литературы.......................................................................40
Приложение Листинг программы........................................................................41

Файлы: 1 файл

Создание БД справочник.doc

— 896.50 Кб (Скачать файл)
  1. Key1 — счётчик (ключевое поле);
  2. Название города - текстовое поле размером в 30 символов.

 

Рисунок 19 Таблица «Справочник городов»

 

Сохрани новую  таблицу под именем «Справочник городов». Теперь база данных  состоит из двух таблиц:

  1. Справочник;
  2. Справочник городов.

 

 

Рисунок 20 Обновлённый  вид базы данных

 

Теперь откроем прошлый проект и модуль Data Module Unit. Добавим сюда компонент Data Source (переименуем его Town Source) и ADO Table (а его назовём Town Table). После этого у компонента Town Source в свойстве Data Set укажем таблицу Town Table.

Теперь необходимо настроим Town Table на отображение справочника городов. Для этого:

1. В   свойстве    Connection   укажем   компонент   ADO Connection1,   который указывает на нашу базу данных.

2. В свойстве Table Name укажем таблицу Справочник городов.

3. Установим свойство Active в True, чтобы активизировать таблицу.

Войдем в редактор полей таблицы Town Table и добавим все поля  Поле Key1 нужно сделать невидимым, потому что этот счётчик пользователю не нужен.

Рисунок 21 Редактор полей таблицы

Теперь создадим новую  форму, для редактирования справочника  и сохраним форму в модуле под именем Town Book Unit. Саму форму назовём Town Book Form. Подключим к новой форме модуль Data Module Unit, чтобы отсюда можно было получить доступ к компонентам для работы с базами данных.

Установим на форму сетку DB Grid, и в свойстве Data Source укажем таблицу справочника городов – Data Module1.Town Source. И добавим кнопку ОК, для закрытия окна справочника. Моё окно редактора справочника городов выглядит как на рисунке 22.

 

 

Рисунок 22 Окно справочника городов

 

По нажатию кнопки «Добавить» напишем следующий код:

 

procedure TTownBookForm.BitBtn1Click(Sender: TObject);

begin

DataModule1.TownTable.Insert;

DBGrid1.SetFocus;

end;

 

По нажатию кнопки «Сохранить» напишем следующий код:

 

procedure TTownBookForm.BitBtn2Click(Sender: TObject);

begin

if DataModule1.TownTable.Modified Then

DataModule1.TownTable.Post;

end;

 

По нажатию кнопки «Удалить» напишем следующий код:

 

procedure TTownBookForm.BitBtn3Click(Sender: TObject);

begin

DataModule1.TownTable.Delete;

end;

 

Всё, макияж для «Справочника городов» закончен. Теперь перейди к главной форме и создай меню, для вызова справочника городов.

 

 

Рисунок 23 Меню вызова справочника городов

 

По событию OnClick от меню пишем код вызова окна справочника городов:

 

procedure TForm1.TownBookMenuItemClick(Sender: TObject);

begin

TownBookForm.ShowModal;

end;

 

2.6. Создание окна: Редактирования

 

Теперь редактирование данных в сетке невозможно, поэтому  мы сделаем для этого отдельные окна. В главном меню создадим пункт «Редактирование» со следующими подпунктами:

1.  Добавить запись;

  1. Редактировать запись;
  2. Удалить запись.

На рисунке 24 ты можешь увидеть результат этого меню.

 

 

Рисунок 24 Меню «Редактирование»

 

Теперь создадим новую  форму, которая будет использоваться для редактирования данных каждой записи. Создадим форму и сохраним её под именем Edit Form Unit. Саму же форму назовём Edit Record Form. Теперь изменим у формы следующие свойства:

BorderStyle - bsSingle

Position — poMainFormCenter.

 

 

Рисунок 25 Окно редактирования данных

 

В этом окне у  меня я установил несколько компонентов для украшения вида (картинка, панель серого цвета), но это не особо важно. Главное установить кнопку сохранить, надписи и компоненты доступа к данным.

Напротив  надписей Фамилия, Имя, Телефон, e-mail и Дата рождения находятся компоненты DB Edit с закладки Data Controls. Эти компоненты представляют собой простые строки ввода типа TEdit, только они умеют автоматически редактировать указанные поля в базе данных. Чтобы компонент видел данные из нужного поля нужно указать у него в свойстве Data Source нужную таблицу (Data Module1.Data Source1), а в свойстве Data Field нужно указать поле, которое надо редактировать.

Для свойства «Мобильник» лучше использовать компонент DBCheckBox. У него также надо указать поле в таблице, как и у компонентов DBEdit.

Названия городов у нас хранятся в отдельном справочнике, а в основной таблице должны храниться только числа - номера строк из справочника городов. Допустим, что у выделенной записи нужно указать город «Астана», который идёт под номером 2 (поле Key1 для этой строки в справочнике городов равно 2). В этом случае, в основном справочнике в поле «Город» нужно указать только цифру 2, а название города в любой момент можно найти в справочнике городов, по полю Key1. Так как оно уникально (счётчик), то проблем не возникнет.

Чтобы всё  это сделать необходимо установить компонент DBLookupComboBox с закладки Data Controls. Теперь нужно указать у него в свойстве DataSource основную таблицу (DataModule1. DataSource1) которая будет редактироваться, а в свойстве DataField указать поле, которое надо редактировать - «Город».

Компонент DBLookupComboBox выглядит как выпадающий список. В качестве элементов выпадающего списка можно указать таблицу. В свойстве ListSource нужно указать таблицу, из которой будут браться элементы для выпадающего списка. Укажем наш справочник городов - DataModule1. TownSource. В свойстве ListField укажем поле из этой таблицы, которое будет использоваться для заполнения выпадающего списка - «Название города». В свойстве KeyField нужно указать поле, значение которого будет вноситься в указанное поле основной таблицы - Key1.

По нажатию  кнопки «Сохранить» напишем:

 

procedure TEditRecordForm.BitBtn1Click(Sender: TObject);

begin

If DataModule1.TelephonTable.Modified then

DataModule1.TelephonTable.Post;

Close;

end;

 

По нажатию кнопки «Выйти» напишем:

 

procedure TEditRecordForm.BitBtn2Click(Sender: TObject);

begin

DataModule1.TelephonTable.Cancel;

Close;

end;

 

Так же я добавил  кнопки для удобства Добавить, Редактировать  и Удалить.

Теперь перейдем в основную форму и по нажатию пункта меню «Добавить запись» напиши следующее:

DataModule1.BookTable.Insert; EditRecordForm.ShowModal;

В поле город я выбрал «Кокшетау». После нажатия кнопки «Сохранить» окно закроется. Это значит, что в справочнике городов есть запись со значением в поле Key1 равным 1 и в поле «Название города» указано название, которое мы выбрали. Если открыть таблицу в Access то она будет выглядит как показано на Рисунке 26:

 

 

Рисунок 26 Таблица открытая с Access

 

2.7. Улучшенный пример с поисковыми полями

 

Так же я добавил меню «Удалить   запись».    По   этому   событию   нужно   вывести   запрос   на подтверждения удаления и если ответ утвердительный, то можно удалять. Создадим такой обработчик и напиши в нём следующее:

begin

if Application.MessageBox(PChar('Ты действительно хочешь удалить ' +DataModule1.BookTableDSDesigner.AsString), 'Внимание!!!', MB_OKCANCEL)=id_OK then DataModule1 .BookTable. Delete; end;

Здесь будет выводиться сообщение уже знакомой функцией MessageBox. В первом параметре будет текст 'Ты действительно хочешь удалить ' плюс значение поля «Фамилия» выделенной строки - DataModule1.BookTableDSDesigner.AsString. Самое сложное здесь - DataModule1.BookTableDSDesigner.AsString. Посмотрим в объектном инспекторе имя этого поля, оно должно быть так BookTableDSDesigner.

Проверить можно,  поднявшись в раздел type модуля DataModule1 и убедиться, что внутри объекта TDataModule1 есть объявление свойства BookTableDSDesigner типа TWideStringField.

После можно без затруднения  удалять строки с помощью вызова метода Delete таблицы - DataModule1.BookTable.Delete.

Перейдем в модуль Data Module1, и выделим компонент BookTable. Сделай его неактивным - в свойстве Active установи false. Теперь дважды щёлкни по этому компоненту и перед тобой откроется редактор полей. Давай создадим новое поле, которое будет содержать текстовое название города для строк таблицы. Для этого щёлкнем внутри окна редактора и в появившемся меню выбери пункт New Field. И должно открыться окно, как на рисунке 27.

 

 

Рисунок 27 Окно создания нового поля

 

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

Заполни поля этого окна следующим образом:

В поле Name введем «Town»

В поле Type укажим тип String — строка.

В поле FieldType выберем Lookup - поисковое поле.

В поле KeyField выберем поле «Город». Это поле основной таблицы, по значению которого надо будет искать текст в другой таблице.

В поле DataSet надо указать TownTable — это таблица-справочник городов, где нужно искать.

В поле Lookup Keys укажем Key1 - это поле в таблице справочнике, по которому надо искать.

В поле Result Field укажем поле «Название города» - это поле, текст которого будет подставляться.

И в конце нажми ОК.

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

 

 

Рисунок 28. Результат работы программы

 

2.8. Сортировка

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

Улучшим нашу форму. Для  этого добавь в меню нашей программы  пункт «Сортировка» и два его подпункта «По фамилии» и «По телефону» (рисунок 29).

 

 

 

Рисунок 29. Улучшенная форма нашей программы

 

По нажатию  пункта меню «По фамилии» напиши следующий код:

procedure TForm1.N8Click(Sender: TObject); begin

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

 

По нажатию  пункта меню «По телефону» напиши следующий код:

procedure TForm1.N8Click(Sender: TObject);

begin

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

 

В  обоих  случаях я  присваиваю  свойству IndexFieldNames  таблицы ВоокТаЫе значение поля, по которому нужно сортировать записи.

 

2.9. Язык запросов SQL

 

SQL переводят на русский как Структурированный Язык Запросов . С помощью SQL-запросов можно создавать и работать с реляционными базами данных.

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

SQL может быть двух типов: интерактивный и вложенный. Интерактивный - это отдельный язык, он сам выполняет запросы и сразу показывает результат работы. Второй - это когда SQL язык вложен в другой, как например в С++ или Delphi.

Для отправки запросов базе данных используется компонент ТADOQuery с закладки ADO палитры компонентов. Работа этого компонента схожа с таблицей TADOTable и у них даже много схожих полей. В ТADOQuery также необходимо выбрать строку подключения (свойство ConnectionString) или связываться с компонентом TADOConnection через свойство Connection.

 Откроем наш телефонный справочник и дополним его новыми возможностями.

Открой модуль данный DataModule, где у нас расположены все компоненты доступа к базе данных. Добавим сюда компонента TADOQuery (назовём его FindQuery) и компонент TDataSource (назовём его FindSource). Теперь надо связать эти компоненты, указав у компонента FindSource в свойстве DataSet компонент FindQuery.

 

 

Рисунок 30. Модуль DataModule

 

Теперь выделим компонент FindQuery, здесь необходимо указать в свойстве Connection компонент подключения к базе данных ADOConnection1.

 

2.10. Связанные таблицы

 

В справочнике  есть все описанные  поля общих сведений о владельце телефона. Во второй таблице «Телефоны» у нас четыре поля: счётчик, LinkKey, телефон и мобильник. Поля телефон (строковое поле, хранящее реальный номер телефона) и мобильник (логическое поле) выполняют ту же роль, что и раньше одноимённые поля в основной таблице «Справочник». В основной таблице теперь этих полей нет.

Key1 - уникальное поле, по которому мы точно можем его найти. LinkKey 1 — связующее поле и будет хранить ссылки на поле Key1.

Слева на рисунке  показана таблица «Справочник», а справа таблица «Телефоны». Если посмотреть на данные, то поле Key1 постоянно увеличивается на единицу, потому что это счётчик. Теперь давай посмотрим на этом примере, как происходит связь через поля Key1 таблицы «Справочник» и «LinkKey» таблицы «Телефоны».

В левой таблице  у нас первая запись принадлежит Рахимданову Еркину. Во второй таблице ищем записи, у которых в поле Link стоит цифра 1. Такая запись только одна и она первая.

Информация о работе Создание базы данных "Телефонный справочник"