Этапы создания БД в 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 Мб (Скачать файл)

Здесь сообщение выводится  функцией  MessageBox. В первом параметре (текст сообщения) пишем текст «Ты действительно хочешь удалить запись» плюс значение поля «Фамилия» выделенной строки - mainform.SotrTableFamilia.AsString. самое сложное здесь это mainform.SotrTableFamiliar.AsString . Чтобы понять эту конструкцию перейдем на главную форму. Здесь дважды щелкнем по компоненту SotrTable, и затем по полю «Фамилия». Посмотрим в Инспекторе Объектов имя этого поля (св-во Name) оно должно быть SotrTableFamilia.

 

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

Сортировка

Теперь займемся сортировкой  наших записей. Зайдите в меню Сортировка/По фамилии/По возрастанию и щелкните мышью (рис 19.)

 

 рис 19. Меню Сортировка.

 

В окне кода программы  напишите следующий код:

 

mainform.SotrTable.IndexFieldNames:='Familia ASC'

 

Далее щелкните по пункту По убыванию и напишите следующий код:

 

mainform.SotrTable.IndexFieldNames:='Familia DESC'

 

Теперь запустите программу  и проверьте, если вы все сделали  правильно то ваше поле «Фамилия»  будет сортироваться По возрастанию  и По убыванию.

 

Ту же самую процедуру  проделайте для всех пунктов меню Сортировка.

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

Поиск записей при помощи языка  SQL

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

 

В первую очередь разместите на форме  компонент ADOQuery c вкладки ADO палитры компонентов. Выделите его и назовите его FindQuery (св-во Name). Теперь найдите свойство Connection и справа от него в выпадающем списке выберите единственный пункт ADOConnection. Затем найдите свойство SQL и справа от него нажмите по кнопке с тремя точками, перед вами откроется окно редактора запросов и впишите туда следующее (рис 20):

 

рис 20. Окно редактора запросов.

 

Теперь перейдите в свойство Parameters и щелкните справа от него два раза перед вами выйдет следующее окно (рис 21):

 

 рис 21.

 

Выделите ваш параметр fam перейдите в Инспектор Объектов и в свойстве DataType укажите тип переменной. В нашем случае это будет ftString. Закройте окно редактора. Выделите наш FindQuery и в свойстве Active установите True.

 

Теперь разместите на форме компонент DataSource назовите его FindSource. Затем в свойстве DataSet выберите пункт FindQuery.

 

Теперь добавим к проекту  новую форму для этого дайте  команду File(Файл)/New(Создать)/Form(Форма).

 

Назовите форму Resultform (св-во Name) и измените заголовок формы на Результат поиска. Теперь свяжем  Главную форму с формой Результат поиска. Для этого перейдите на главную форму и дайте команду File(Файл)/Use Unit(использовать модуль) перед вами откроется окно (рис 21.)

рис 21. окно связи.

 

Выделите все пункты и нажмите кнопку ОК. Теперь перейдите  на форму «Результат поиска» и проделайте то же самое. Всё мы связали наши формы. Теперь перейдите на форму «Результат поиска». Разместите на форме компонент DBGrid (вкладка DataControls). Здесь будет отображаться результат поиска. Выделите DBGrid1, перейдите в Инспектор Объектов найдите свойство Datasource и справа от него в выпадающем списке выберите пункт FindSource.

Теперь перейдем на главную  форму. Разместите на форме компонент Edit – для ввода фамилии и BitBtn – по нажатию которой отобразится наша форма «Результат поиска» с результатом, а также метку Label – в свойстве Caption напишите «Введите фамилию» (рис 22):

 

 рис 22. Размещение  компонентов.

 

 

 

 

Выделите каждый компонент  и поменяйте у них свойство Visible на False. Это нужно для того чтобы при запуске программы эти компоненты не были видны, а по нажатию пункта меню Поиск/По фамилии эти компоненты отображались.

Теперь щелкните по пункту меню По фамилии и напишите следующий код:

 

Label1.Visible:=true;

edit1.Visible:=true;

bitbtn1.Visible:=true;

 

Теперь дважды щелкните по кнопке Поиск и в окне кода напишите следующее:

 

MainForm.FindQuery.Active:=false;

MainForm.FindQuery.Parameters.ParamByName('fam').Value:=edit1.Text;

MainForm.FindQuery.Active:=true;

Resultform.ShowModal;

 

Первая строка означает, что запрос в самом начале становится неактивным.

Вторая строка означает, что в поле Edit1 вводится новый параметр поиска и после этого запрос опять становится активным. И в самом конце показывается форма с результатом поиска.

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

Метод Locate

Теперь продемонстрируем вид поиска Locate на примере поиска «По имени». Разместите на форме компоненты Label,Edit,BitBtn. Назовите их соответственно (рис 23):

 

 

рис 23. Размещение компонентов.

 

 

Выделите эти компоненты поочередно и поменяйте их свойство Visible на False. Теперь щелкните по пункту меню Поиск/По имени и в окне кода напишите следующее:

 

 

Lаbel2.Visible:=true;

   Edit2.Visible:=true;

   bitbtn2.Visible:=true;

 

Теперь щелкните два раза по кнопке и напишите следующее:

 

If  not  SotrTable.Locate('Ima',edit2.Text,  [loCaseInsensitive, loPartialKey])

  then

showMessage('Запись не найдена');

 

этот код означает, что если введенное имя не найдено  то выходит сообщение об этом. Параметр – Имя означает что поиск идет по полю «Ima», edit2.text – в это поле вводится имя. Параметры LoCaseInsensitive, LoPartialkey – регистр букв не учитывается и поиск идет на неточное соответствие.

 

Метод Locate устанавливает курсор на найденную запись. Запустите программу и проверьте ее.

 

Давайте попробуем осуществить  поиск и при этом, чтобы найденная запись выделялась другим цветом. Для этого выделите DBGrid1 перейдите на вкладку Events (события) найдите событие OnDrowColumnCell щелкните два раза мышью справа от него и в открывшемся окне кода напишите следующее:

 

if  (SotrTable.FieldByName('Familia').Value=edit3.Text) then

if  edit3.Text<>'' then begin

with  DBGrid1.Canvas   do  begin

Brush.Color:=clGreen;

Font.Color:=clWhite;

fillrect (Rect);

textout (Rect.Left+2, Rect.Top+2,Column.Field.Text);

end;

end

else

 

Теперь разместите на форме компоненты Edit,Label, Bitbtn и и поменяйте их свойства на ваше усмотрение. Свойство Visible у всех компонентов поменяйте на False. Зайдите в меню поиск/поиск по Фамилии нажмите и в окне кода добавьте следующее:

 

label3.Visible:=true;

edit3.Visible:=true;

bitbtn3.Visible:=true;

 

Нажмите на кнопке BitBtn два раза и в открывшемся окне кода напишите:

 

If   not  SotrTable.Locate('Familia',edit3.Text,  [loCaseInsensitive, loPartialKey])

  then

showMessage('Запись не найдена');

 

Попробуйте поэксперементировать с методами поиска.

 

 

 

 

Фильтрация

 

Продемонстрируем методы фильтрации. Отфильтруем записи по Фамилии. Для этого разместите на форме компоненты и измените их свойства в соответствии со следующей таблицей:

 

Наименование компонента

Свойств Caption

 

Старое значение

Новое значение

Label

Label4

Введите фамилию 

BitBtn

BitBtn4

Фильтрация

Edit

   

Таблица 1. Изменение свойств компонента.

 

А у компонента Edit очистите свойство Text. Свойство Visible у всех компонентов поменяйте на False. Зайдите в меню Фильтрация/По фамилии и в окне кода напишите следующее:

 

    LAbel4.Visible:=true;

   Edit4.Visible:=true;

   bitbtn4.Visible:=true;

 

Теперь в обработчике кнопки Фильтровать (два раза щелкнуть по кнопке Фильтровать) напишите следующий код:

 

With  mainform.SotrTable do begin

   sotrtable.Filter:='Familia='+''''+edit4.Text+'''';

   sotrtable.Filtered:=true;

end;

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отчеты

 

Для создания отчета необходимо добавить пункт меню Отчеты. Как это сделано на рисунке 24.

 

рис24. Добавление пункта меню Отчеты.

 

Теперь добавим к проекту  новую форму и переименуем  ее (св-во Name) на Report а заголовок (св-во Caption) на Отчет. Свяжем эту форму с главной формой и главную форму с этой. (file(файл)/use unit(использовать модуль)).

 

Теперь по нажатию подпункта  Главный отчет меню Отчеты нужно  написать следующий код:

 

report.ShowModal;

 

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

Найдите эту вкладку, найдите там компонент Quickrep и разместите его на созданной нами форме. Выделите его, и в свойстве DataSet  выберите пункт MainForm.Sotrtable. теперь найдите свойство Bands, раскройте его и в пункте HasTitle установите True. Автоматически на компоненте появился пункт Title. Это есть наш заголовок отчета. Найдите на этой же вкладке компонент  QRLabel и поместите его в секцию Title. Затем найдите свойство Caption  этого компонента и напишите там "Распечатка базы". Также при помощи свойства Font можно изменить размер, цвет шрифта. Теперь выделите весь компонент Quickrep найдите свойство Bands раскройте его и в свойстве HasColumnHeader установите значение True. Эта секция автоматически появится на форме. Теперь на вкладке QReport  найдите компонент QRLabel и поместите их в эту секцию ровно столько, сколько у вас полей в вашей БД. Выделите первый QRLabel и в свойстве Caption напишите Фамилия и так поступите со всеми QRLabel. У вас должно получиться примерно следующее (см рис 25.):

 

рис 25. Форма с отчетом после изменения.

 

Теперь выделите весь отчет,  в свойстве Bands в HasDetail  установите значение True. Эта секция автоматически появиться в отчете. Теперь разместите в этой секции 5 компонентов QRDBText. Выделите первый QRDBText, найдите свойство DataSet, справа от него выберите пункт MainForm.SotrTable. Затем в свойстве DataField   выберите пункт Familia. Затем выделите второй QRDBText установите свойство DataSet в MainForm.SotrTable, а в свойство DataField пункт Ima. Так поступите со всеми компонентами   QRDBText. Теперь запустите программу и проверьте результат. Теперь сделаем так чтобы в отчете отражалось  дата и время распечатки. Для этого разместите в секцию Title компонент QRSysData. Теперь в свойстве Data установите значение qrsDateTime. Теперь сделаем так чтобы подсчитывалось количество записей в отчете. Для этого выделите весь отчет в свойстве Bands в пункте HasSummary установите значение True. Теперь поместите компонент QRSysData в эту секцию. Затем в свойстве Data выберите пункт qrsDetailCount. Теперь перед этим компонентом поместите компонент QRLabel и в свойстве Caption напишите "Количество записей". Запустите программу и проверьте результат.

 

 

 

 

 

 

 

 

 

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

 

А теперь давайте сделаем  так чтобы у нас в базе автоматически вычислялся годовой оклад каждого сотрудника. Для этого нам необходимо добавить еще одно поле. Для этого выделим наш компонент SotrTable в свойстве Active установим значение False. Теперь дважды щелкнем по этому компоненту в результате чего откроется редактор полей (см рис 26):

 

рис 26. Редактор полей.

 

Щелкнем правой кнопкой  внутри этого поля выберем пункт New Field. Перед вами откроется окно вида (рис 27) и заполните его так как показано на рисунке.

рис 27. Окно создания нового поля.

 

После нажатия кнопки ОК выделите SotrTable и в свойстве Active установите true. Выделите DBGrid щелкните по нему два раза и перед вами откроется окно вида (рис 28):

рис 28. Редактор столбцов.


 

Щелкните по значку как  показано на рисунке,  после появления  сообщения нажмите кнопку Yes. Теперь выделите набор данных Sotrtable найдите событие OnCalcfield и напишите там:

 

sotrtablegod_oklad.Value:=sotrtableoklad.Value*12;

 

Запустите программу  и проверьте результат. Если ввести данные в поле Оклад, то в поле God_Oklad автоматически вычислиться оклад за год.

Теперь попробуем сделать  заставку на нашу программу. Для этого  дабавьте новую форму к проекту (File/new/form).

Поменяйте свойства этой формы в соответствии с таблицей 1.

 

Свойство

Значение

Align

alCustom

BorederStyle

bsNone

Position

poScreenCenter

Name

Zastavka

   

 

Поместите на форму компонент Image с вкладки Additional. Поменяйте свойство Align на alClient, Strech   на true. Теперь найдите свойство Picture справа от него два раза щелкните мышью нажмите команду Load найдите любой рисунок нажмите Открыть, затем ОК. Теперь  поместите на форму компонент Timer  с вкладки Win32. выделите его, найдите свойство Interval и напишите там 5000 что равно 5 секундам. Затем два раза щелкните на компоненте Timer и в открывшемся окне кода напишите :

 

Close;

 

Теперь перейдите на главную форму перейдите на вкладку Events(События) найдите событие onShow справа от него два раза щелкните два раза и в открывшемся окне кода напишите следующее:

 

zastavka.showmodal; // перед запуском программы сначала появится заставка

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