Этапы создания БД в Delphi используя СУБД Access

Автор работы: Пользователь скрыл имя, 27 Декабря 2013 в 11:46, курсовая работа

Краткое описание

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

Содержание

I. Введение 4
II. Этапы создания БД в Delphi используя СУБД Access. 5
Создание таблиц. 5
Создание приложения. 8
Создание меню 11
Создание формы 14
Сортировка 17
Поиск записей при помощи языка SQL 18
Метод Locate 21
Фильтрация 23
Отчеты 24
Вычисляемые поля 26
III. Этапы создания БД в Delphi используя Paradox 28
Работа с Database Desktop 28
Понятие псевдонима. 30
Создание приложения 31
Создание связи 32
Создание формы для добавления нового товара 34
Обработка записи 37
Создание БД 40
Справочник 41
Создание формы 41
Вычисляемое поле. 43
Поиск данных 44
Увеличение оклада 45
Другие методы поиска 45
Отчет связанных таблиц 47
Фильтрация 47
Сортировка 47
IV. Список литературы 48

Вложенные файлы: 1 файл

Этапы создания БД в Delphi используя СУБД Access.doc

— 1.06 Мб (Скачать файл)

s:=0;

progressbar1.Max:=table1.RecordCount;

table1.DisableControls;

table1.First;

while not table1.Eof do begin

     s:=s+form1.Table1.fieldbyname('P_Salary').AsFloat;

     // без этого вызова не будет обрабатываться нажатие кнопки Прервать

     application.ProcessMessages;

     progressbar1.Position:=table1.RecNo;

     label2.Caption:=inttostr(round(progressbar1.Position/progressbar1.Max*100))+'%';

     if  workbreak then goto 10;

     table1.Next;

                         end;

label3.Caption:='Итого '+floattostr(s);

10:

table1.EnableControls;

progressbar1.Position:=0;

label2.Caption:='';

start.Enabled:=true;

break.Enabled:=false;

workbreak:=false;

 

переменные S, и метку 10 опишите в разделе описания переменных этой процедуры.

 

Напишите обработчик события кнопки Прервать.

 

workbreak:=true;

 

Запустите программу  и проверьте результат.

 

 

Замечание

Нужно в поле P_Salary внести около 200 записей чтобы увидеть результат.

 

Цикл обработки запускается  при нажатии кнопки Начать. Перед началом цикла определяется максимальное значение индикатора Progressbar , переменная Workbreak устанавливается в False., а визуальные компоненты отключаются от набора данных Table. В цикле происходит подсчет суммы, а также отображение хода выполнения работ в поле индикатора Progressbar1 и надписи Label2. ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание БД

А теперь попробуем создать  БД содержащую сведения о сотрудниках. БД будет содержать две таблицы: Основная с полями key,Фамилия, Имя, Должность, Оклад и Подчиненная с полями key,key1 –для связи ,Дата_рождения, семейное_положение, Адрес, Телефон.

Связь между таблицами  один - к – одному. Т.е. одной записи в Основной таблице соответствует  одна запись Подчиненной таблицы.

Теперь запустите DatabaseDesktop и создайте структуру Основной таблицы сохранив ее под именем Sotr, и вторую под названием Dop.

Структура  двух таблиц представлена на рисунках 13 и 14 соответственно.

 

рис 13. Структура Основной таблицы.

 

рис 14. Структура Подчиненной  таблицы.

 

Запустите Делфи и  подсоедините БД.

 

Table1 и Table2 переименуйте соответственно  Sotr и Dop. Также переименуйте DataSource1 и DataSource2 в SotrSource и DopSource соответственно.

 

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

Справочник

 Для поля Должность  создадим справочник. Для этого  запустите DatabaseDesktop и создайте структуру справочника (см рис 16):

 

 

рис 16. Структура таблицы  Справочник.

 

Теперь создайте меню Справочник. На форме разместите компоненты Table – переименуйте его в Sprav, DataSource – SpravSource. Создайте новую форму разместите на ней DBGrid и DBNavigator. Свяжите формы и подсоедините компоненты друг с другом.

Запустите программу и попробуйте заполнить справочник.

Создание формы

Выйдите из программы  добавьте новую форму разместите на ней следующие компоненты (см рис 17):

 

dbedit


dblookupcombobox 
рис 17. Форма Редактирование записей.


 

Как настроить компоненты DBEdit вы знаете. Настроим компонент DBLookupComboBox. Выделите его и настройте свойства в соответствии с таблицей 3.

                                  Таблица 3.

DataSource

SotrSource

DataField

Dolgnost

ListSource

SpravSource

ListField

Dolgnost

KeyField

Key1


 

Теперь сделаем следующее. А теперь самостоятельно пропишите  кнопки меню Редактировать запись, Удалить запись.

 

 

 

 

Запустите программу  и проверьте результат. Вы видите что в поле должность отображается только номер поля в котором «сидит»  данная запись. Чтобы этого избежать нужно создать дополнительное поле т.н. динамическое, которое работает только при запуске программы. Для этого выделите набор данных Sotr. Свойстве Active выставьте в False. Теперь два раза щелкните по набору данных и в открывшемся окне редактора щелкните правой кнопкой мыши и выберите пункт New Field (Создать поле). И заполните открывшееся окно в соответствии с рисунком 18.

 

рис 18. Создание поля.

 

После создания поля щелкните по кнопке ОК и новое поле появится в редакторе. Переместите его поближе к полю Dolgnost. Теперь выделите поле Dolgnost и скройте его. Тоже самое проделайте с DBGrid. Активизируйте набор данных. Запустите программу. Вы видите что поле в Должность  отображаются именно записи а не их числовые номера. Вот для этого  и служат справочники.

Вычисляемое поле.

 

Часто в БД нужно делать некоторые расчеты. Например просчитать заработную плату за год. Это можно  сделать автоматически. Т .е. в БД добавим поле Годовой_оклад. Для этого выделите набор данных Sotr, закройте его (Active=false). Создайте в нем поле в соответствии с рисунком 19.

рис 19. Создание поля.

 

Теперь активизируйте  набор данных. Выделите его, перейдите  на вкладку Events(События). Найдите событие OnCalcField и напишите следующее:

 

sotrgod_oklad.Value:=sotroklad.Value*12;

 

Запустите программу  и проверьте результат.

 

Теперь мы можем спокойно добавлять, редактировать и удалять  записи, работать со справочником, у  нас автоматически вычисляется  поле Годовой_оклад. Неудобно одно, поле Дата_рождения. Создадим для этого поля шаблон. Как это делать вы должны помнить из предыдущего материала.

Давайте поменяем названия заголовков столбцов на русские названия. Для этого два раза щелкните по  DBGrid выделите поле Familia, и поменяйте свойство Caption в соответствии с рис 20.

рис 20. Изменение названия поля.

 

 

Поиск данных

 

А теперь осуществим поиск  записей таким образом. Добавьте к проекту новую форму свяжите ее с главной формой. Разместите на форме следующие компоненты Query, DataSource, Edit, DBGrid.

Настройте их следующим образом:

Qurey1

DatabaseName=здесь нужно выбрать ваш псевдоним

SQL/string/=select * from sort

Active=true

 

DataSource1

DataSet=Query1

 

Теперь выделите Edit1 найдите событие OnKeyUp и напишите следующий код:

 

form4.Query1.SQL.Text:='Select Familia, Ima, Oklad From  sotr Where (Familia Like "'+Edit1.Text + '%" )';

form4.DBGrid1.DataSource:=datasource1;

form4.Query1.Active:=true;

 

Теперь перейдите на главную форму создайте меню Поиск с подпунктом По фамилии. И в обработчике напишите:

 

form4.showmodal;

 

Запустите программу и проверьте результат. Очень удобный поиск не правда ли.

Увеличение оклада

Во многих предприятиях бывает, что нужно увеличить оклад  сотрудникам на определенную сумму или процент. Давайте попробуем продемонстрировать это в нашей программе. Для этого добавьте пункт меню Увеличение оклада, а также компоненты Edit и Button. У обоих компонентов в свойстве Visible установите false. А в обработчике меню напишите такой код, чтобы при нажатии меню эти компоненты становились бы видимыми. Теперь напишем обработчик кнопки Рассчитать.

 

  k:=strtoint(edit1.text);

  sotr.First;

  while not sotr.Eof do begin

    x:=form1.sotr.fieldbyname('oklad').AsInteger;

    x:=x+k;

    sotr.Edit;

    sotr.FieldByName('oklad').AsInteger:=x;

    sotr.Post;

    sotr.Next;

    end;

 

переменные х и к опишите.

 

Запустите программу  и проверьте результат.

 

Другие методы поиска

Рассмотрим еще несколько  методов поиска.

Метод Lookup

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

Добавьте в меню Поиск пункт Метод lookup

Разместите на форме 2 компонента Edit и 1 Button. Сделайте так чтобы при нажатии пункта меню Метод lookup эти компоненты появлялись. А теперь напишем обработчик кнопки:

 

a:=sotr.Lookup('Familia;Ima',vararrayof([edit2.Text,edit3.text]),'Dolg');

  b:=sotr.Lookup('Familia;Ima',vararrayof([edit2.Text,edit3.text]),'oklad');

 

  if (a<>null) and (b<>null)then

  showmessage('Dolg= '+string(a)+#13+

               'Oklad= '+string(b));

 

переменные а и b опишите как переменные типа Variant.

 

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

 

 

 

Метод поиска по диапазону

 

Добавьте пункт меню. 2 компонента Edit и 2 Button. Первую кнопку назовите Применить а вторую – Отмена. Напишем обработчик кнопки Применить:

 

with sotr do begin

// установка верхней  границы диапазона

SetRangeStart;

fieldbyname('Oklad').AsInteger:=strtoint(Edit4.Text);

// установка нижней  границы диапазона

SetRangeEnd;

fieldbyname('Oklad').AsInteger:=strtoint(Edit5.Text);

// включение поиска

ApplyRange

end;

 

обработчик кнопки Отмена

 

sotr.CancelRange;

 

теперь нужно чтобы  поле оклад было индексным. Для этого  перейдите в Database Desktop откройте таблицу Sotr в окне Table Properties выберите пункт Secondary Indexes. Теперь нажмите кнопку Define, в появившемся окне выделите поле Oklad и нажмите кнопку со стрелкой вправо, поле автоматически перейдет в соседнее окно. Нажмите ОК. дайте название. Нажмите ОК. Затем Save. Вернитесь в Дельфи. Выделите набор данных Sotr, найдите свойство Indexname и выберите из выпадающего списка ваш индекс. Запустите программу.

Отчет связанных таблиц

 

Фильтрация

Попробуйте сами отфильтровать  записи По должности.

Сортировка

Отсортируйте записи По фамилии, По кладу.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IV. Список литературы

 

  1. Бобровский С.И. Delphi 7: Учебный курс. – СПб.:Питер,2003.
  2. Гофман В.Э., Хомоненко А.Д. Delphi 6. – СПб.:БХВ – Санкт – Петербург. 2002.
  3. Домалевский С.С. Программирование в Delphi. 2 ч.Кокшетау 2004.
  4. Епанешников А.,Епанешников В. Программирование в среде Delphi: Упособие: в 4 х ч. Ч. 4. Работа с Базами данных. М.:ДИАЛОГ-МИФИ, 1998.
  5. Жуков А. Изучаем Delphi. – СПб.:Питер, 2002.
  6. Культин Н.Б. Delphi 7. СПб.:БХВ – Санкт-Петербург, 2002.
  7. Фаронов В.В., Шумаков П.В. Руководство разработчика: 2 т. Разработка компонентов и программирование баз данных.. –Вильямс, 2000.



Информация о работе Этапы создания БД в Delphi используя СУБД Access